gegl r2396 - in trunk: . gegl/buffer gegl/operation
- From: ok svn gnome org
- To: svn-commits-list gnome org
- Subject: gegl r2396 - in trunk: . gegl/buffer gegl/operation
- Date: Mon, 9 Jun 2008 01:04:06 +0000 (UTC)
Author: ok
Date: Mon Jun 9 01:04:06 2008
New Revision: 2396
URL: http://svn.gnome.org/viewvc/gegl?rev=2396&view=rev
Log:
* gegl/buffer/gegl-buffer-iterator.c:
(gegl_buffer_scan_compatible): improved test making more cases
succeed.
(gegl_buffer_iterator_add), (gegl_buffer_iterator_new):
* gegl/buffer/gegl-buffer-iterator.h: made the buffer iterator
construction functions take a const GeglRectangle * instead of passing
the rois by value.
* gegl/buffer/gegl-buffer-access.c: (gegl_buffer_copy):
* gegl/operation/gegl-operation-point-composer.c:
* gegl/operation/gegl-operation-point-filter.c:
* gegl/operation/gegl-operation-point-render.c: updated according to
API changes.
Modified:
trunk/ChangeLog
trunk/gegl/buffer/gegl-buffer-access.c
trunk/gegl/buffer/gegl-buffer-iterator.c
trunk/gegl/buffer/gegl-buffer-iterator.h
trunk/gegl/operation/gegl-operation-point-composer.c
trunk/gegl/operation/gegl-operation-point-filter.c
trunk/gegl/operation/gegl-operation-point-render.c
Modified: trunk/gegl/buffer/gegl-buffer-access.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-access.c (original)
+++ trunk/gegl/buffer/gegl-buffer-access.c Mon Jun 9 01:04:06 2008
@@ -1182,8 +1182,8 @@
dest_rect_r.width = src_rect->width;
dest_rect_r.height = src_rect->height;
- i = gegl_buffer_iterator_new (dst, dest_rect_r, dst->format, GEGL_BUFFER_WRITE);
- read = gegl_buffer_iterator_add (i, src, *src_rect, src->format, GEGL_BUFFER_READ);
+ i = gegl_buffer_iterator_new (dst, &dest_rect_r, dst->format, GEGL_BUFFER_WRITE);
+ read = gegl_buffer_iterator_add (i, src, src_rect, src->format, GEGL_BUFFER_READ);
while (gegl_buffer_iterator_next (i))
babl_process (fish, i->data[read], i->data[0], i->length);
}
Modified: trunk/gegl/buffer/gegl-buffer-iterator.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-iterator.c (original)
+++ trunk/gegl/buffer/gegl-buffer-iterator.c Mon Jun 9 01:04:06 2008
@@ -114,23 +114,11 @@
if (bufferA->tile_storage->tile_height !=
bufferB->tile_storage->tile_height)
return FALSE;
-
-
- /* FIXME: incorporate the shift with the difference below to
- * allow some more combinations to be considered scan compatible
- */
-
- if (bufferA->shift_x !=
- bufferB->shift_x)
+ if ( (abs((bufferA->shift_x+xA) - (bufferB->shift_x+xB))
+ % bufferA->tile_storage->tile_width) != 0)
return FALSE;
- if (bufferA->shift_y !=
- bufferB->shift_y)
- return FALSE;
- if (xA!=xB || yA!=yB)
- return FALSE;
- if ( (abs(xA - xB) % bufferA->tile_storage->tile_width) != 0)
- return FALSE;
- if ( (abs(yA - yB) % bufferA->tile_storage->tile_height) != 0)
+ if ( (abs((bufferA->shift_y+yA) - (bufferB->shift_y+yB))
+ % bufferA->tile_storage->tile_height) != 0)
return FALSE;
return TRUE;
}
@@ -161,10 +149,10 @@
GeglBuffer *buffer = i->buffer;
gint tile_width = buffer->tile_storage->tile_width;
gint tile_height = buffer->tile_storage->tile_height;
- gint buffer_shift_x = buffer->shift_x;
- gint buffer_shift_y = buffer->shift_y;
- gint buffer_x = buffer->extent.x + buffer_shift_x/* + i->roi.x*/;
- gint buffer_y = buffer->extent.y + buffer_shift_y/* + i->roi.y*/;
+ gint buffer_shift_x = buffer->shift_x /*+ i->roi.x*/;
+ gint buffer_shift_y = buffer->shift_y /*+ i->roi.y*/;
+ gint buffer_x = buffer->extent.x + buffer_shift_x;
+ gint buffer_y = buffer->extent.y + buffer_shift_y;
if (i->roi.width == 0 || i->roi.height == 0)
return FALSE;
@@ -243,7 +231,6 @@
{
goto gulp; /* return the first tile in the next row */
}
-
return FALSE;
}
return FALSE;
@@ -328,7 +315,7 @@
gint
gegl_buffer_iterator_add (GeglBufferIterator *iterator,
GeglBuffer *buffer,
- GeglRectangle roi,
+ const GeglRectangle *roi,
const Babl *format,
guint flags)
{
@@ -346,7 +333,8 @@
self = i->iterators++;
- i->rect[self]=roi;
+ /* FIXME: handle roi == NULL, by copying from where it makes sense */
+ i->rect[self]=*roi;
i->buffer[self]=buffer;
if (format)
i->format[self]=format;
@@ -508,7 +496,7 @@
}
GeglBufferIterator *gegl_buffer_iterator_new (GeglBuffer *buffer,
- GeglRectangle roi,
+ const GeglRectangle *roi,
const Babl *format,
guint flags)
{
Modified: trunk/gegl/buffer/gegl-buffer-iterator.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-iterator.h (original)
+++ trunk/gegl/buffer/gegl-buffer-iterator.h Mon Jun 9 01:04:06 2008
@@ -51,10 +51,10 @@
* Returns: a new buffer iterator that can be used to iterate through the
* buffers pixels.
*/
-GeglBufferIterator * gegl_buffer_iterator_new (GeglBuffer *buffer,
- GeglRectangle roi,
- const Babl *format,
- guint flags);
+GeglBufferIterator * gegl_buffer_iterator_new (GeglBuffer *buffer,
+ const GeglRectangle *roi,
+ const Babl *format,
+ guint flags);
/**
* gegl_buffer_iterator_add:
@@ -72,11 +72,11 @@
* Returns: an integer handle refering to the indice in the iterator structure
* of the added buffer.
*/
-gint gegl_buffer_iterator_add (GeglBufferIterator *iterator,
- GeglBuffer *buffer,
- GeglRectangle roi,
- const Babl *format,
- guint flags);
+gint gegl_buffer_iterator_add (GeglBufferIterator *iterator,
+ GeglBuffer *buffer,
+ const GeglRectangle *roi,
+ const Babl *format,
+ guint flags);
/**
Modified: trunk/gegl/operation/gegl-operation-point-composer.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-point-composer.c (original)
+++ trunk/gegl/operation/gegl-operation-point-composer.c Mon Jun 9 01:04:06 2008
@@ -200,12 +200,12 @@
if ((result->width > 0) && (result->height > 0))
{
- GeglBufferIterator *i = gegl_buffer_iterator_new (output, *result, out_format, GEGL_BUFFER_WRITE);
- gint read = gegl_buffer_iterator_add (i, input, *result, in_format, GEGL_BUFFER_READ);
+ GeglBufferIterator *i = gegl_buffer_iterator_new (output, result, out_format, GEGL_BUFFER_WRITE);
+ gint read = gegl_buffer_iterator_add (i, input, result, in_format, GEGL_BUFFER_READ);
if (aux)
{
- gint foo = gegl_buffer_iterator_add (i, aux, *result, aux_format, GEGL_BUFFER_READ);
+ gint foo = gegl_buffer_iterator_add (i, aux, result, aux_format, GEGL_BUFFER_READ);
while (gegl_buffer_iterator_next (i))
{
Modified: trunk/gegl/operation/gegl-operation-point-filter.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-point-filter.c (original)
+++ trunk/gegl/operation/gegl-operation-point-filter.c Mon Jun 9 01:04:06 2008
@@ -75,8 +75,8 @@
if ((result->width > 0) && (result->height > 0))
{
- GeglBufferIterator *i = gegl_buffer_iterator_new (output, *result, out_format, GEGL_BUFFER_WRITE);
- gint read = gegl_buffer_iterator_add (i, input, *result, in_format, GEGL_BUFFER_READ);
+ GeglBufferIterator *i = gegl_buffer_iterator_new (output, result, out_format, GEGL_BUFFER_WRITE);
+ gint read = gegl_buffer_iterator_add (i, input, result, in_format, GEGL_BUFFER_READ);
while (gegl_buffer_iterator_next (i))
point_filter_class->process (operation, i->data[read], i->data[0], i->length, &i->roi[0]);
Modified: trunk/gegl/operation/gegl-operation-point-render.c
==============================================================================
--- trunk/gegl/operation/gegl-operation-point-render.c (original)
+++ trunk/gegl/operation/gegl-operation-point-render.c Mon Jun 9 01:04:06 2008
@@ -94,10 +94,10 @@
if ((result->width > 0) && (result->height > 0))
{
- GeglBufferIterator *i = gegl_buffer_iterator_new (output, *result, out_format, GEGL_BUFFER_WRITE);
+ GeglBufferIterator *i = gegl_buffer_iterator_new (output, result, out_format, GEGL_BUFFER_WRITE);
while (gegl_buffer_iterator_next (i))
point_render_class->process (operation, i->data[0], i->length, &i->roi[0]);
}
return TRUE;
-}
\ No newline at end of file
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]