SDL2 中使用多线程绘图
来源:互联网 发布:淘宝带图评论福利 编辑:程序博客网 时间:2024/04/29 18:19
SDL的中文资料比较少,推荐一个英文的网站里面讲的非常详细 点击打开链接解决了我不少的疑惑。
最近在移植ucGUI到Android上,ucGUI的windows Demo中可以实现在一个线程中绘图,在另一个线程中刷新。在Android中使用ucGUI也是可以实现的用SDL 当画布,在子线程中绘画 ,在主线程中刷新。代码如下:
/*This source code copyrighted by Lazy Foo' Productions (2004-2013) and may not be redistributed without written permission.*///Using SDL and standard IO#include <SDL.h>#include <stdio.h>#include <stdbool.h>#include "GUI.h"//Screen dimension constantsextern int SCREEN_WIDTH;extern int SCREEN_HEIGHT;//Starts up SDL and creates window//Loads mediabool loadMedia();//加载图片//Frees media and shuts down SDLvoid close();//The window we'll be rendering toextern SDL_Window* g_screen_window;//The surface contained by the windowextern SDL_Surface* g_screen_surface;//The image we will load and show on the screenSDL_Surface* gXOut = NULL;bool loadMedia() {//Loading success flagbool success = true;//Load splash imagegXOut = SDL_LoadBMP("x.bmp");if (gXOut == NULL) {SDL_LogError(SDL_LOG_CATEGORY_APPLICATION,"Unable to load image %s! SDL Error: %s\n","03_event_driven_programming/x.bmp", SDL_GetError());success = false;}return success;}void close() {//Deallocate surfaceSDL_FreeSurface(gXOut);gXOut = NULL;//Destroy windowSDL_DestroyWindow(g_screen_window);g_screen_window = NULL;//Quit SDL subsystemsSDL_Quit();}void Thread1(void *pdata) {MainTask(0);//子线程中的绘画函数都在这里SDL_Log("Thread runing");}int SDL_main(int argc, char* args[]) {//Start up SDL and create windowGUI_Init();//初始化windows 以及surface//Load mediaif (!loadMedia()) {printf("Failed to load media!\n");} else {//Main loop flagbool quit = false;//Event handlerSDL_Event e;SDL_Thread *thread = SDL_CreateThread(Thread1, "TestThread",(void *) NULL);//While application is runningwhile (!quit) {//Handle events on queuewhile (SDL_PollEvent(&e) != 0) {//User requests quitif (e.type == SDL_QUIT) {quit = true;}if (e.type == SDL_FINGERUP) {quit = true;}}//Apply the image//Update the surfaceSDL_UpdateWindowSurface(g_screen_window);SDL_Log("Invalidate");}}//Free resources and close SDLclose();return 0;}
2 0
- SDL2 中使用多线程绘图
- SDL2.0 多线程使用信号量
- 在VS2015中使用SDL2.0
- SDL2.0与opengl的混合使用,绘图和纹理的加载。
- SDL2.0 使用互斥量
- MFC中如何利用ffmpeg和SDL2.0多线程多窗口播放摄像头的视频
- 多线程绘图
- 【VS2013中使用GDI+绘图】
- R绘图中使用中文字体
- SDL2嵌入到Qwidget中
- 在MFC中使用SDL2.0(SDL窗口嵌入到MFC中)
- c#中多线程---使用多线程
- VC6中使用Graphics.h绘图
- Android中使用AChartEngine 来绘图
- MFC的对话框中使用OpenGL绘图
- MFC的对话框中使用OpenGL绘图
- 在php中使用gnuplot绘图
- 在PPAPI插件中使用Skia绘图
- 华为机试—翻译电话号码
- Fragstas软件使用中遇到的问题
- JQuery实现文字无缝滚动效果(Marquee插件)
- spring与mybatis三种整合方法
- C++/CX 属性
- SDL2 中使用多线程绘图
- PO BO VO DTO POJO DAO概念及其作用
- DCOM 示例:演示如何远程调用 COM 对象
- 使用orcale遇到的问题
- JSTL
- myeclipse集成 Flex builder插件
- [Phonegap+Sencha Touch] 移动开发40 解决iOS+Phonegap+Sencha touch Cupertino主题下,只读(disabeld)输入框文字看不见的问题
- 没事学了学Java Web之Struts2-convention-plugin
- 如何快速搭建单片机液晶屏界面开发速度