2014-03-26

OpenGL 新增專案 (使用Visual Studio 2013)

1. 檔案 → 新增 → 專案

(1) 選擇 Win32 主控台應用程式
(2) 輸入專案名稱、位置
(3) 為方案建立目錄 (optional)



假設你的專案位置在C槽,專案名稱輸入Project
則以上三步驟會產生以下資料夾結構:

C
|-- Project
|      |-- Project.sln
|      |-- Project.sdf
|      |-- Project
|      |      |-- Project.vcxproj
|      |      |-- Project.vcxproj.filters


Visual Studio的專案結構大致如上圖,
會先有一個「大專案」(OpenGL),
大專案之下有很多個「小專案」(example2、example3...etc)。

在Visual Studio中,
大專案稱為「方案」,小專案稱為「專案」。
以下為方便區分,依然以大、小專案分別稱呼方案與專案。

Project.sln就是大專案,
點開他就可以看到這個大專案裡包含的所有小專案。

建立一個全新專案的時候,
VC預設會幫你在大專案之下,建立一個跟大專案同名的小專案。
上述步驟(3)有勾選的話,就會自動幫你建立小專案的資料夾。



2. Win32 應用程式精靈

(1) 下一步
(2) 點選「主控台應用程式」、「空專案」


























3. 新增小專案

我的話會把系統預設的Project小專案刪掉,
自己再建立一個其他名稱的小專案。(如:Project1-1)

(1) 在大專案上點右鍵
(2) 加入 → 新增專案
(3) 選擇「Win32 主控台應用程式」
(4) 填入專案名稱
(5) 指定專案位置 (放到大專案的資料夾之下)























4. 設定小專案屬性

(1) 在小專案上點右鍵,選擇「屬性」
(2) 偵錯 → 工作目錄 → 填入「../exec」(預設為$(ProjectDir)(glut32.dll放在這地方)
(3) C/C++ → 一般 → 其他Include目錄 → 填入「../include」(glut.h放在這地方)
(4) 連結器 → 一般 → 其他程式庫目錄 → 填入「../lib」(glut32.lib放在這地方)
(5) 連結器 → 輸入 → 其他相依性 → 填入「glut32.lib」
























5. 新增程式碼

(1) 在小專案上點右鍵
(2) 加入 → 新增項目
(3) 選擇「C++檔」
(4) 輸入檔名與位置 (一般都是輸入main.cpp)
























6. 測試程式

首先確定你的大專案資料夾下已經有以下檔案,並放在對的資料夾裡。
(a) exec\glut32.dll
(b) include\glut.h
(c) lib\glut32.lib
之後依照以下步驟測試程式。

(1) 點兩下「原始程式檔」下的「main.cpp」
(2) 新增以下測試程式碼 (如果main.cpp是空檔案的話,建置專案時會出現錯誤)
(3) 建置 → 建置方案
(4) 偵錯 → 啟動但不偵錯
#include "glut.h"
void display();
void reshape(GLsizei, GLsizei);
int main(int argc, char** argv)
{
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
 glutCreateWindow("sample");
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutMainLoop();
 return 0;
}

void display()
{
 glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
 glClear(GL_COLOR_BUFFER_BIT);
 glColor3f(1.0f, 1.0f, 1.0f);
 glutSolidTeapot(1.0);//內建的茶壺
 glFlush();
}

void reshape(GLsizei w, GLsizei h)
{
 glViewport(0, 0, w, h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 20.0);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
}



7. 附註

(1)
如果大專案裡有多個小專案時,「啟動但不偵錯」只會執行其中一個小專案。
此時可以在想要執行的該專案上按右鍵,選擇「設定為起始專案」即可。

(2)
把.h、.lib等檔案放在大專案資料夾底下,
而不是放在小專案資料夾底下的理由是,
每個小專案都可以用同一份.h、.lib檔,
而不用每個小專案裡面都放相同的東西佔空間,
除此之外,有更動時也只要改一份即可。

(3)
在4.(2)時,更改了工作目錄為「../exec」,
因此需要把所有主程式在執行時,
需要讀到的檔案 (如: 場景檔) 都放在那個工作目錄下。

沒有留言:

張貼留言