示例#1
0
文件: test_sdl.c 项目: dead/libass.js
void loop()
{
        int dif = 0;
        ASS_Image *img = ass_render_frame(ass_renderer, track, (int) (tm * 1000), &dif);
        tm += 1 / fps;

        if(dif == 0)
            return;


        SDL_RenderClear( renderer );
        
        while (img) {
            SDL_Surface* surface = SDL_CreateRGBSurface     (0,
                                                            img->w, 
                                                            img->h, 
                                                            32,
                                                            0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000);
            blend_single(surface, img);
            SDL_Rect dest = { img->dst_x, img->dst_y, img->w, img->h };
            SDL_Texture *tex = SDL_CreateTextureFromSurface(renderer, surface);
            SDL_RenderCopy(renderer, tex, NULL, &dest);

            SDL_DestroyTexture (tex);
            SDL_FreeSurface (surface);
            //free(img->bitmap);
            img = img->next;
            //count++;
        }

        //free(img);
        SDL_RenderPresent( renderer );

        SDL_Delay(10);
}
示例#2
0
文件: test.c 项目: banketree/faplayer
static void blend(image_t * frame, ASS_Image *img)
{
    int cnt = 0;
    while (img) {
        blend_single(frame, img);
        ++cnt;
        img = img->next;
    }
    printf("%d images blended\n", cnt);
}