<p dir="ltr">Maybe you can create a 1x1 A8 surface, write a byte to the data, and use it as a source.</p>
<div class="gmail_quote">On Oct 2, 2012 11:33 AM, "Manfred Kogler" <<a href="mailto:manfred.kogler@gmail.com">manfred.kogler@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br><br>Currently I am rendering postscript commands using Cairo to a CAIRO_FORMAT_RGB24 image surface. This image then I have to transfer/map to the framebuffer of a display device. One pixel in that display framebuffer is an 8-bit index into a predefined color table. Hence, when transferring the CAIRO_FORMAT_RGB24 image surface into the 8-bit display framebuffer each RGB-pixel is mapped to the respective 8-bit color index and this index value is written to the framebuffer at the respective position. This works fine, only it is a bit slow since rendering a frame always involves copying/transferring the whole image into that 8-bit framebuffer.<br>

<br>To get rid of copying/transferring the image I thought of using cairo_image_surface_create_for_data(frame_buffer, CAIRO_FORMAT_A8, ...). My plan is to not write an intermediary RGB image anymore but to somehow directly write the RGB-mapped color-index-table-values to that A8-byte-buffer. I tried several approaches but could not figure out how to write one byte (color index) to that CAIRO_FORMAT_A8 image surface and am not sure whether it is possible at all.<br>

<br>Effectively, my question reduces to the following point:<br>Is there a way to write (stroke/fill/paint/...) some byte unchanged to a CAIRO_FORMAT_A8 image surface?<br><br>Is there some way to do what I want?<br><br>Many thanks and best regards,<br>

Fred<br><br>
<br>--<br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org">cairo@cairographics.org</a><br>
<a href="http://lists.cairographics.org/mailman/listinfo/cairo" target="_blank">http://lists.cairographics.org/mailman/listinfo/cairo</a><br></blockquote></div>