sdl2.0的乙個新新增的主要部分就是紋理渲染api,這可以使你進行快速、靈活的硬體渲染,在本教程中我們將使用這種新的技術
//載入個人的紋理影象
sdl_texture* loadtexture(string path);
//the wwindow we'll be rendering to
sdl_window* gwindow = nullptr;
//the window renderer
sdl_renderer* grenderer = nullptr;
//current display texture
sdl_texture* gtexture = nullptr;
紋理在sdl中有自己的資料型別 sdl_texture,當我們需要處理 sdl紋理並將其渲染到螢幕上,這就是為什麼我們宣告了乙個全域性渲染器grenderer
你也可以看到我們有乙個新的影象引導程式 loadtexture 同時宣告了乙個我們需要載入的紋理物件
//create window
gwindow = sdl_createwindow("sdl tutorial 07", sdl_windowpos_undefined, sdl_windowpos_undefined,
screen_width, screen_height, sdl_window_shown);
if(gwindow == nullptr)
elseelse}}
}return success;
當我們建立了我們的視窗後,我們需要為視窗建立乙個渲染器渲染紋理,呼叫 sdl_createrenderer 可以很容易的完成
建立渲染器之後,我們需要用 sdl_setrendererdrawcolor 初始化紋理顏色,這控制項的顏色用於各種渲染器操作
sdl_texture* loadtexture(string path)else
sdl_freesu***ce(loadedsu***ce);
}return newtexture;
}
紋理載入函式在很大程度上看起來和以前差不多,只是不使用轉換載入表面格式,我們使用sdl_createtextureformsu***ce建立乙個紋理的表
面載入,像以前一樣,這個函式建立乙個新的紋理從乙個存在的表面上,這就需要我們釋放乙個 loaded su***ce,然後返回乙個 loaded texture
bool loadmedia()
return success;
}void close()
由於紋理載入是抽象的影象載入函式,loadmedia()函式和之前做的幾乎是同乙個工作
在清理函式中,我們必須記住釋放我們的紋理用 sdl_destroytexture
else
}//clear screen
sdl_renderclear(grenderer);
//renderer texture to screen 紋理渲染到螢幕上
sdl_rendercopy(grenderer, gtexture, null, null);
//update screen
sdl_renderpresent(grenderer);
在主迴圈後,我們呼叫sdl_renderer,這個函式用sdl_setrenderdrawcolor最後設定的顏色填充視窗螢幕
螢幕清除,渲染紋理我們用sdl_rendercopy 渲染紋理,我們仍然需要更新螢幕,但我們不能用sdl_su***ce顯示,sdl_updatewindowsu***ce也不能用。相反,我們必須使用sdl_renderpresent。
OSG設定紋理和渲染屬性
1 渲染屬性和模式 1.1 opengl中的渲染狀態設定 對於實時三維場景 系統,為了保證其真實性,一般來說,開發者都不得不儘量減少載入模型的頂點數目,以降低系統和顯示卡的運算負荷。例如,乙個圓柱體的側面可以用少量的母線來組成,從而呈現出一種不平滑的效果 再比如在三維遊戲中,人物的手腳只用有限幾個四...
瀏覽器載入和渲染分析
瀏覽器載入和渲染分析 原文 最近一直在做前端js開發,為了更清楚的顯示頁面元素的載入順序,動手寫了乙個程式,程式對頁面中的每個元素都延遲5秒。在ie6下檢視loader.jsp這個頁面,使用httpwatch來檢測頁面元素的載入。從下面的圖中可以看到載入順序。ie6首先載入了頁面loader.jsp...
瀏覽器載入和渲染分析
瀏覽器載入和渲染分析 最近一直在做前端js開發,為了更清楚的顯示頁面元素的載入順序,動手寫了乙個程式,程式對頁面中的每個元素都延遲5秒。在ie6下檢視loader.jsp這個頁面,使用httpwatch來檢測頁面元素的載入。從下面的圖中可以看到載入順序。ie6首先載入了頁面loader.jsp,fi...