Lessong 7 紋理載入和渲染

2021-07-10 14:12:42 字數 1865 閱讀 6902

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...