1、簡介
本章節主要講述整個專案的基本框架,後面工作將會在這個基本框架上新增內容。
2、基本框架:
(1)超級遊戲類:包含所有的渲染和遊戲**,主要工作是管理遊戲**和將視窗**從遊戲中解耦。
(2)工具類:包含頻繁重用的opengl概念,如紋理、著色器等,主要工作是為兩個元素建立更加易用的介面。
(3)資源管理:主要工作是將工具類的檔案處理部分(著色器等程式都是放在單獨的檔案中,還包括紋理影象等檔案)抽離出來,來保障工具類的單一職責原則。注意:這個類是個靜態類(單一例項的靜態資源管理器),主要缺點是會損失oop屬性,並且喪失構造和析構的控制。
(4)程式:主要工作是建立視窗、設定一些opengl的初始狀態(開啟面剔除、混合功能,關閉深度測試)。
1、超級遊戲類
主要函式:
class game
;
狀態:用於跟蹤遊戲狀態,根據當前遊戲狀態決定渲染或者處理不同元素。
// 代表了遊戲的當前狀態
enum gamestate ;
2、工具類
著色器**:用於快速設定uniform值。
class shader
shader &use();
void compile(const glchar *vertexsource, const glchar *fragmentsource, const glchar *geometrysource = nullptr);
void setfloat (const glchar *name, glfloat value, glboolean useshader = false);
void setinteger (const glchar *name, glint value, glboolean useshader = false);
void setvector2f (const glchar *name, glfloat x, glfloat y, glboolean useshader = false);
void setvector2f (const glchar *name, const glm::vec2 &value, glboolean useshader = false);
void setvector3f (const glchar *name, glfloat x, glfloat y, glfloat z, glboolean useshader = false);
void setvector3f (const glchar *name, const glm::vec3 &value, glboolean useshader = false);
void setvector4f (const glchar *name, glfloat x, glfloat y, glfloat z, glfloat w, glboolean useshader = false);
void setvector4f (const glchar *name, const glm::vec4 &value, glboolean useshader = false);
void setmatrix4 (const glchar *name, const glm::mat4 &matrix, glboolean useshader = false);
private:
void checkcompileerrors(gluint object, std::string type);
};
紋理**:快速生成紋理影象。
class texture2d
;
註解:對於實現部分,起始就是相當固定的規則,裡面還有些基礎概念,不再說明。
3、資源管理
略,都是檔案操作,不再多講。
4、程式
略,固定操作,比較簡單。
C lua準備工作
ubuntu源裡的lua是5.0的.而最新的是5.2.如果只是學習lua語法什麼的直接apt get就好了.不過如果想做c lua的嵌入工作.就只能自己下原始碼編譯了 步驟 1.依賴的庫 readline,ncurses 這兩個庫可以從網上下原始碼然後編譯安裝.這樣其實最好了 如果不嫌源裡的舊.其實...
單據準備工作
虛擬機器 uap studio nc home 單據開發 基於studio的 單開發。擴充套件開發 對 單進行夥伴級拓展。報表平台 基於 單的分組統計和交叉統計。輕量化 交通費報銷開發。報表平台 語義模型 自由報表 基於模型的開發 實體 列舉及他們之間的關係。實體屬性 資料型別 約束 與業務介面的對...
python flask 準備工作
1 1搭建虛擬環境 安裝虛擬環境 sudo pip install virtualenv 1 建立目錄存放虛擬環境 mkdir home virtualenvs 2 開啟 bashrc檔案,並新增如下 vim bashrc 開啟後新增 export workon home home virtuale...