2014-06-19 35 views

回答

17

我已經想通了。流式SDL_Textures可以以ARGB8888格式顯示原始像素,這是開羅表面可以處理的格式。 Cairo API的低電平足以只需要像素緩衝區和音調。

SDL_Texture *texture = SDL_CreateTexture(renderer, 
    SDL_PIXELFORMAT_ARGB8888, 
    SDL_TEXTUREACCESS_STREAMING, 
    width, height); 

void *pixels; 
int pitch; 
SDL_LockTexture(texture, NULL, &pixels, &pitch); 
cairo_surface_t *cairo_surface = cairo_image_surface_create_for_data(
    pixels, 
    CAIRO_FORMAT_ARGB32, 
    width, height, pitch); 

paint(cairo_create(cairo_surface)); 

SDL_UnlockTexture(texture); 

多方便。

相關問題