C sdl2 0使用說明

2021-09-11 07:36:26 字數 3456 閱讀 7907

sdl說明:

選擇

工程配置:

* * 雷霄驊 lei xiaohua

* [email protected]

* 中國傳媒大學/數碼電視技術

* communication university of china / digital tv technology

* * * api(direct3d,opengl)的封裝,使用起來明顯簡單於直接呼叫底層

* api。

* * 函式呼叫步驟如下:

* * [初始化]

* sdl_init(): 初始化sdl。

* sdl_createwindow(): 建立視窗(window)。

* sdl_createrenderer(): 基於視窗建立渲染器(render)。

* sdl_createtexture(): 建立紋理(texture)。

* * [迴圈渲染資料]

* sdl_updatetexture(): 設定紋理的資料。

* sdl_rendercopy(): 紋理複製給渲染器。

* sdl_renderpresent(): 顯示。

* * this software plays rgb/yuv raw video data using sdl2.

* use sdl is much easier than directly call these low-level api.

* * the process is shown as follows:

* * [init]

* sdl_init(): init sdl.

* sdl_createwindow(): create a window.

* sdl_createrenderer(): create a render.

* sdl_createtexture(): create a texture.

* * [loop to render data]

* sdl_updatetexture(): set texture's data.

* sdl_rendercopy(): copy texture to render.

* sdl_renderpresent(): show.

*/#include extern "c"

;const int bpp=12;

int screen_w=500,screen_h=500;

const int pixel_w=320,pixel_h=180;

unsigned char buffer[pixel_w*pixel_h*bpp/8];

//refresh event

#define refresh_event (sdl_userevent + 1)

#define break_event (sdl_userevent + 2)

int thread_exit=0;

int refresh_video(void *opaque)

thread_exit=0;

//break

sdl_event event;

event.type = break_event;

sdl_pushevent(&event);

return 0;

}int main(int argc, char* ar**)

sdl_window *screen;

//sdl 2.0 support for multiple windows

screen = sdl_createwindow("******st video play sdl2", sdl_windowpos_undefined, sdl_windowpos_undefined,

screen_w, screen_h,sdl_window_opengl|sdl_window_resizable);

if(!screen)

sdl_renderer* sdlrenderer = sdl_createrenderer(screen, -1, 0);

uint32 pixformat=0;

//iyuv: y + u + v (3 planes)

//yv12: y + v + u (3 planes)

pixformat= sdl_pixelformat_iyuv;

sdl_texture* sdltexture = sdl_createtexture(sdlrenderer,pixformat, sdl_textureaccess_streaming,pixel_w,pixel_h);

file *fp=null;

fp=fopen("test_yuv420p_320x180.yuv","rb+");

if(fp==null)

sdl_rect sdlrect;

sdl_thread *refresh_thread = sdl_createthread(refresh_video,null,null);

sdl_event event;

while(1)

sdl_updatetexture( sdltexture, null, buffer, pixel_w);

//fix: if window is resize

sdlrect.x = 0;

sdlrect.y = 0;

sdlrect.w = screen_w;

sdlrect.h = screen_h;

sdl_renderclear( sdlrenderer );

sdl_rendercopy( sdlrenderer, sdltexture, null, &sdlrect);

sdl_renderpresent( sdlrenderer );

}else if(event.type==sdl_windowevent)else if(event.type==sdl_quit)else if(event.type==break_event)

} sdl_quit();

return 0;

}原始碼位置:

使用說明 附註工具使用說明

附註工具使用說明 附註工具用途 附註工具主要用於更新利用word附註應用程式生成的帶域 的附註,該工具在word右鍵 更新鏈結 的基礎上進行了優化,故在使用時,不能再利用word右鍵 更新鏈結 而要用本工具的 更新當前鏈結 或 更新所有鏈結 使用說明 一 更換路徑 當利用word附註應用程式生成帶域...

使用說明 農用遮光網使用說明

農用遮光網使用說明 建築防塵網購買方 建築施工企業 在購買建築防塵網時,應該對 作出比較,可以分辨品牌 型號,且購買時應該在一定程度上了解信譽良莠。建築防塵網購買方 市場售賣方 在選購建築防塵網時,可以把 作為基礎,好的 可以用來彌補信譽不足,而差的 則需要按照你的服務收費。農用遮光網使用說明 用途...

Hibernate tools 使用說明

05年的8月份第一次接觸hibernate tools,使用起來感覺還不錯,但也沒有深入研究,後來由於一直在做乙個專案,再後來用了一陣myeclipse,現在換了公司,使用wtp all in one eclipse的乙個版本 生成domain的時候使用了hibernate tools,發現都不知怎...