/*
* Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
*
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.tizenopensource.org/license
+ * http://floralicense.org/license/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include <provider.h>
#include <provider_buffer.h>
#include <Core/Util/Log.h>
+#include <Core/Util/Util.h>
#include "IRenderBuffer.h"
#include "RenderBuffer.h"
: m_bufferAddr(NULL)
, m_bufferInfo(NULL)
{
+ LogD("enter");
}
RenderBuffer::~RenderBuffer()
{
+ LogD("enter");
}
bool RenderBuffer::allocate()
m_bufferAddr = NULL;
}
- Ecore_Evas* ee =
- ecore_evas_buffer_allocfunc_new(
- getWidth(), getHeight(),
- allocateCallback, freeCallback,
+ Ecore_Evas* ee =
+ ecore_evas_buffer_allocfunc_new(
+ getWidth(), getHeight(),
+ allocateCallback, freeCallback,
this);
LogD("Using %s engine!", ecore_evas_engine_name_get(ee));
LogD("evas ecore setting");
- // alpha_set function access the canvas buffer directly,
+ // alpha_set function access the canvas buffer directly,
// without pre/post render callback.
provider_buffer_pre_render(m_bufferInfo);
ecore_evas_alpha_set(ee, EINA_TRUE);
LogD("Using %s engine!", ecore_evas_engine_name_get(ee));
Evas* e = ecore_evas_get(ee);
+ evas_image_cache_flush(e);
Evas_Object *eo = evas_object_rectangle_add(e);
evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_color_set(eo, 0, 0, 0, 0);
+ evas_object_color_set(eo, 0, 0, 0, 1);
evas_object_resize(eo, getWidth(), getHeight());
m_canvas = e;
EVAS_CALLBACK_RENDER_PRE,
preRenderCallback);
- evas_event_callback_del(
- m_canvas,
- EVAS_CALLBACK_RENDER_POST,
+ evas_event_callback_del(
+ m_canvas,
+ EVAS_CALLBACK_RENDER_POST,
postRenderCallback);
evas_event_callback_add(
EVAS_CALLBACK_RENDER_PRE,
preRenderCallback, this);
- evas_event_callback_add(
- m_canvas,
- EVAS_CALLBACK_RENDER_POST,
+ evas_event_callback_add(
+ m_canvas,
+ EVAS_CALLBACK_RENDER_POST,
postRenderCallback, this);
}
EVAS_CALLBACK_RENDER_PRE,
preRenderCallback);
- evas_event_callback_del(
- m_canvas,
- EVAS_CALLBACK_RENDER_POST,
+ evas_event_callback_del(
+ m_canvas,
+ EVAS_CALLBACK_RENDER_POST,
postRenderCallback);
}
void RenderBuffer::preRenderCallback(void* data, Evas* canvas, void *eventInfo)
{
LogD("enter");
+ UNUSED_PARAM(eventInfo);
+
RenderBuffer *buffer = static_cast<RenderBuffer*>(data);
if (!provider_buffer_pixmap_is_support_hw(buffer->m_bufferInfo)) {
LogD("not hw backend");
void RenderBuffer::postRenderCallback(void* data, Evas* canvas, void* eventInfo)
{
LogD("enter");
+
+ UNUSED_PARAM(canvas);
+ UNUSED_PARAM(eventInfo);
+
RenderBuffer* buffer = static_cast<RenderBuffer*>(data);
evas_data_argb_unpremul(static_cast<unsigned int*>(buffer->m_bufferAddr), buffer->getWidth() * buffer->getHeight());
}
}
#endif
+ LogD("/tmp/render-%dx%d.raw", buffer->getWidth(), buffer->getHeight());
if (!provider_buffer_pixmap_is_support_hw(buffer->m_bufferInfo)) {
provider_buffer_sync(buffer->m_bufferInfo);
provider_buffer_sync(m_bufferInfo);
updateBuffer();
} else {
- provider_buffer_pre_render(m_bufferInfo);
+ preRenderCallback(this, m_canvas, NULL);
memset(m_bufferAddr, color, getWidth() * getHeight() * 4);
- provider_buffer_post_render(m_bufferInfo);
- updateBuffer();
+ postRenderCallback(this, m_canvas, NULL);
}
}
void* RenderBuffer::allocateCallback(void* data, int size)
{
LogD("enter");
+ UNUSED_PARAM(size);
+
RenderBuffer* buffer = static_cast<RenderBuffer*>(data);
if (buffer->m_bufferInfo) {
if (!buffer->m_bufferInfo) {
return NULL;
}
-
+
// set buffer address
if (!provider_buffer_pixmap_is_support_hw(buffer->m_bufferInfo)) {
LogD("s/w evas backend");
buffer->m_bufferAddr = provider_buffer_pixmap_hw_addr(buffer->m_bufferInfo);
}
- buffer->paintColor(0xFFFFFFFF);
-
LogD("success to allocate buffer");
return buffer->m_bufferAddr;
}
void RenderBuffer::freeCallback(void* data, void *pix)
{
LogD("enter");
+ UNUSED_PARAM(pix);
+
RenderBuffer* buffer = static_cast<RenderBuffer*>(data);
-
+
// destroy buffer
if (!provider_buffer_pixmap_is_support_hw(buffer->m_bufferInfo)) {
provider_buffer_unref(buffer->m_bufferAddr);
evas_object_image_colorspace_set(snapshot, EVAS_COLORSPACE_ARGB8888);
evas_object_image_alpha_set(snapshot, EINA_TRUE);
evas_object_image_size_set(snapshot, getWidth(), getHeight());
-
+
tmpBuffer = malloc(getWidth() * getHeight() * sizeof(int));
if (tmpBuffer) {
memcpy(tmpBuffer, m_bufferAddr, getWidth() * getHeight() * sizeof(int));
evas_data_argb_premul(
- static_cast<unsigned int*>(tmpBuffer),
+ static_cast<unsigned int*>(tmpBuffer),
getWidth() * getHeight());
evas_object_image_data_set(snapshot, tmpBuffer);
} else {