Хочу в TOpenGLControl рисовать 2D графику..
cairo_glx_device_create и cairo_gl_surface_create
все нормально, но при OpenGLControl1.SwapBuffers() Х-ы ругаются на
The error was 'BadMatch (invalid parameter attributes)'.
(Details: serial 424 error_code 8 request_code 155 minor_code 11)
приложение завершается..
кто нибудь проходил этот путь?
Cairo-GL и gtk2
Модератор: Модераторы
Чем дело кончилось?
Контекст был создан с двойной буферезацией?
Контекст был создан с двойной буферезацией?
Там как оказалось cairo_glx_device_create создает свой OpenGL контекст.
Я обошел это так:
Просто создаю битмап RGBA, к ему подключаю cairo_image_surface.. рисую.
и потом битмап выгружаю в текстуру.
Сейчас перешел на гугловский Skia.
Я обошел это так:
Код: Выделить всё
int stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, width);
surf = cairo_image_surface_create_for_data ((unsigned char *)buffer, CAIRO_FORMAT_ARGB32, width , height, stride);
cr = cairo_create (surf);
Просто создаю битмап RGBA, к ему подключаю cairo_image_surface.. рисую.
и потом битмап выгружаю в текстуру.
Сейчас перешел на гугловский Skia.
olegy123 писал(а):Сейчас перешел на гугловский Skia.
Можешь поделиться опытом?
Официальный сайт:
https://skia.org/
компилировал под люних, гугловские программисты используют ninja сборщик пакетов. Под винду не делал.
https://skia.org/
компилировал под люних, гугловские программисты используют ninja сборщик пакетов. Под винду не делал.
Код: Выделить всё
#include "SkBitmap.h"
#include "SkCanvas.h"
#include "SkPaint.h"
bitmap.allocN32Pixels(width, height);
SkCanvas* canvas = new SkCanvas(bitmap);
canvas->clear(SK_ColorTRANSPARENT);
..
canvas->drawLine(x,y,xx,yy, p);
..
uint8_t * rgba_array=(uint8_t *)bitmap.getPixels();
..
delete canvasСпасибо.
