#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;
}
- 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);
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);
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");
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 {