亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

SDL2和OpenGL使用踩坑筆記經驗分享

2019-10-21 21:33:06
字體:
來源:轉載
供稿:網友

SDL + OpenGL使用筆記

LFTK 是一個嵌入式GUI,為了開發方便,需要提供PC運行環境。我選擇了SDL2+OpenGL+nanovg來實現底層的渲染,讓LFTK可以運行在各個平臺上。GLFW+OpenGL也是一個不錯的選擇,但是GLFW沒有Android和iOS的移植,而且沒有提供原生輸入法的支持。LFTK雖然最初是為嵌入式系統而生,但也有一個小目標:可以用于開發嵌入式系統,也可以開發PC軟件和移動APP,所以最后選擇了SDL2+OpenGL+nanovg。在使用SDL2+OpenGL+nanovg的過程中,踩了一些坑,這里做個筆記,給需要的朋友參考:

一、在MacPro上顯示模糊的問題。

在網上查了一下,有人提供的方案是設置SCALE_QUALITY,貌似也有些道理,但是效果不佳。

SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "nearest");

花了一些時間去看SDL的源碼后,發現其實SDL在創建窗口時提供了SDL_WINDOW_ALLOW_HIGHDPI標志,可以用來解決模糊的問題:

SDL_CreateWindow("LFTK Simulator", x, y, w, h, SDL_WINDOW_OPENGL | SDL_WINDOW_ALLOW_HIGHDPI);

如果設置了SDL_WINDOW_ALLOW_HIGHDPI標志,窗口大小和Drawable的大小可能不一致,在繪圖時需要做相應縮放:

SDL_GetWindowSize(sdl_window, &ww, &wh);SDL_GL_GetDrawableSize(sdl_window, &fw, &fh);ratio = (float)fw / (float)ww;

二、nanovg裁剪算法無效。

使用低級的OpenGL去繪圖是一個比較麻煩的事情。在LFTK中,采用了nanovg矢量圖繪圖函數庫,nanovg缺省使用的GLFW,要移植到SDL2上也不難。但是我發現nanovg的示例在SDL上和在GLFW上的效果有些差異,仔細觀察后,初步判斷與用stencil進行裁剪有關,以為是沒有啟用stencil測試引起的,于是加了下面的代碼:

glEnable(GL_STENCIL_TEST);

但是沒有效果,在nanovg的代碼中,也發現它自己會啟用stencil測試。對比基于nanovg基于GLFW的例子,也沒發現有價值的線索。然后對比SDL_CreateWindow/glfwCreateWindow和SDL_Init/glfwInit的實現,發現SDL中,stencil_size的缺省值是0,嘗試把設置它為8:

SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);

顯示正常了。

三、Windows下的OpenGL

在MacPro和Ubuntu下測試沒有問題,在Window測試時發現一些OpenGL函數找不到,明明已經鏈接了opengl32.dll啊。網上的方案多是基于GLUT和GLFW在Windows下做OpenGL開發的,SDL則沒有找到相關資料,只好再去研讀GLFW,看能不能從中借用部分代碼。很快發現deps/glad是干這個的,而glad是http://glad.dav1d.de/上在線生成的。把glad.c加入項目中,并調用初始化函數:

gladLoadGL();

編譯沒有問題了,不過運行起來就崩掉了。調試時發現glGetString(GL_VERSION)返回NULL,這個簡單的函數居然會失?。『髞碓趃oogle搜索 到glGetString(GL_VERSION)失敗的原因: gladLoadGL需要放在SDL_GL_CreateContext之后調用。而我把它放在了SDL_Init和SDL_GL_CreateContext之間了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美理论电影在线播放| 国产精品亚洲аv天堂网| 欧美性受xxxx白人性爽| 亚洲区一区二区| 精品国产成人av| 人妖精品videosex性欧美| 亚洲精品乱码久久久久久金桔影视| 久久国产加勒比精品无码| 欧美一区三区三区高中清蜜桃| 欧美电影在线观看完整版| 在线亚洲午夜片av大片| 亚洲黄色av网站| 视频在线观看一区二区| 日韩视频免费在线观看| 欧美中文在线免费| 久久久av电影| 欧洲亚洲妇女av| 国产精品女视频| 亚洲国产精品久久久久秋霞不卡| 一区二区中文字幕| 97av在线视频免费播放| 久久久久久久久久久亚洲| 欧美性猛交丰臀xxxxx网站| 国产精品欧美日韩一区二区| 成人黄色av网站| 亚洲va码欧洲m码| 欧美又大又粗又长| 精品国产一区av| 热re91久久精品国99热蜜臀| 亚洲视频欧洲视频| 日本精品在线视频| 国产日产久久高清欧美一区| 国产精品男人的天堂| 亚洲成av人乱码色午夜| 国产精品久久久久久影视| 国产91在线视频| 欧美xxxx18性欧美| 91香蕉嫩草神马影院在线观看| 国产视频福利一区| 在线播放日韩av| 欧美高清理论片| 久久久久久久爱| 亚洲春色另类小说| 亚洲精品电影网站| 欧美一级视频一区二区| 亚洲成人激情小说| 亚洲美女视频网站| 久久久久99精品久久久久| 91精品久久久久久久久久久| 日韩av在线影院| 91精品国产99久久久久久| 久久成人一区二区| 日韩在线观看你懂的| 亚洲欧美中文日韩v在线观看| 亚洲美女黄色片| 日本不卡高字幕在线2019| 亚洲欧美日本精品| 久久久精品一区二区三区| 国产精品久久久久久久久久东京| 国产精品亚洲视频在线观看| 国产午夜精品视频| 97香蕉久久超级碰碰高清版| 国产精品亚洲一区二区三区| 亚洲人精选亚洲人成在线| 精品免费在线观看| 日韩美女写真福利在线观看| 欧美激情va永久在线播放| 国产精品久久久久久亚洲影视| 国产乱肥老妇国产一区二| 亚洲成色777777在线观看影院| 欧美高清电影在线看| 亚洲成人久久电影| 日韩在线免费视频观看| 亚洲精品久久久久中文字幕二区| 黑人巨大精品欧美一区二区| 亚洲精品suv精品一区二区| 亚洲成av人片在线观看香蕉| 岛国视频午夜一区免费在线观看| 中文字幕国产精品久久| 国产精品对白刺激| 91国内揄拍国内精品对白| 黑人巨大精品欧美一区二区| 亚洲欧洲视频在线| 91免费看视频.| 黑人巨大精品欧美一区免费视频| 国产国语videosex另类| 日韩欧美在线中文字幕| 美日韩精品免费观看视频| 日本高清不卡的在线| 亚洲激情视频网站| 国产91色在线免费| 精品久久中文字幕久久av| 久久综合久久美利坚合众国| 欧美日韩成人免费| 国产欧美va欧美va香蕉在线| 欧日韩在线观看| 欧美激情亚洲另类| 日韩欧美在线播放| 久久久久久国产精品久久| 国产精品久久久久久久久久久不卡| 亚洲视频一区二区| 国产日韩欧美91| 国内免费精品永久在线视频| 国产精品99久久久久久人| 欧美在线影院在线视频| 在线观看亚洲视频| 亚洲视频在线观看网站| 国产精品678| www.亚洲男人天堂| 米奇精品一区二区三区在线观看| 国产精品99导航| 国产精品第七影院| 亚洲一区二区久久久| 亚洲高清不卡av| 精品一区二区电影| 国产精品视频导航| 久久亚洲精品成人| 国产婷婷成人久久av免费高清| 国产精品久久在线观看| 亚洲精品国产综合久久| 日本国产欧美一区二区三区| 国产欧美日韩中文| 国产精品久久久久久久久久99| 国产啪精品视频网站| 精品激情国产视频| 亚洲黄页网在线观看| 中文字幕欧美日韩在线| 69久久夜色精品国产69乱青草| 日韩在线欧美在线国产在线| 亚洲美女黄色片| 国产噜噜噜噜噜久久久久久久久| 97视频在线看| 久久久久久久久久国产精品| 1769国内精品视频在线播放| 久久久成人av| 久久精品亚洲94久久精品| 3344国产精品免费看| 欧美成人亚洲成人日韩成人| 国产精品黄页免费高清在线观看| 在线a欧美视频| 91视频免费网站| 国产精品99久久99久久久二8| 日韩在线观看免费| 日韩最新免费不卡| 亚洲精品免费一区二区三区| 一区二区av在线| 欧美日本亚洲视频| 色妞色视频一区二区三区四区| 亚洲欧美激情另类校园| 亚洲免费电影一区| 亚洲国产日韩欧美在线图片| 亚洲偷欧美偷国内偷| 欧美成人中文字幕在线| 成人国产精品免费视频| 欧美福利视频网站| 性金发美女69hd大尺寸| 日韩av电影在线播放| 精品少妇一区二区30p| 久久久久国产精品免费网站| 国产精品视频最多的网站| 国产精品黄色影片导航在线观看| 国产午夜精品一区理论片飘花| 久久激情视频久久| 欧洲s码亚洲m码精品一区|