C 使用SharpGL Viewport應用

2021-10-07 22:26:57 字數 1387 閱讀 5662

viewport是用來設定當前渲染上下文的視口:viewport(int x, int y, int width, int height)。

其中(x,y)是以畫素為單位,指定視窗的左下角位置,width、height是視口矩形的寬度和高度,根據視窗的實時變化重繪視窗。

在opengl中,視窗座標都是以左下角為(0,0),向右為x正方向,向上為y正方向,如下圖所示:

做乙個簡單的範例,先繪製乙個立方體,立方體的六個面顏色不一樣:

private

void

draw

(sharpgl.opengl gl)

效果如下:

然後利用viewport,將視窗分成四塊區域視窗,分別:左上視窗顯示立方體上檢視,左下視窗顯示立方體下檢視,右上視窗顯示立方體左檢視,右下視窗顯示立方體右檢視:

private

void

openglcontrol1_opengldraw

(object sender,

rendereventargs args)

不同檢視顯示程式:

private

void

top_view_show

(sharpgl.opengl gl)

//上檢視

private

void

bottom_view_show

(sharpgl.opengl gl)

//下檢視

private

void

left_view_show

(sharpgl.opengl gl)

//左檢視

private

void

right_view_show

(sharpgl.opengl gl)

//右檢視

加上幾個按鍵觸發,觸發各檢視顯示與隱藏,切換立方體的視角等操作:

private

void

key_press

(object sender,

keypresseventargs e)

最終效果如下:

測試程式在這裡:sharpgl測試範例

使用c 包裝c

今天公司讓使用c 包裝c 提供c 的介面給客戶使用,現在記錄一下實現過程。對你的vs進行如上改動便可。3 註冊。關於註冊我上面說的那個部落格已經非常清楚了,這裡不再贅述。上面說的是一些硬性的條件。除了這些之外還有一些值得注意的是 dll檔案的存放位置以及需要的檔案。c 生成的dll檔案包括 dll和...

C 使用extern C 簡單使用

先說一下函式過載,c 之所以會進行函式過載,是因為對函式名進行二次修飾 重新命名 在c檔案中寫好的程式,c 引入過來,卻沒法使用提示 無法連線的外部符號,那是因為c 按照c 的函式命名機制來尋找函式的實現.第一種情況 檔案為 test.h void show 進行了函式宣告檔案 test.c inc...

c和c 混合使用

我們編寫 經常需要c和c 混合使用,為了使 c 和 c 保持互相相容的過程呼叫介面,需要,為了簡化,從而定義了兩個巨集方面我們使用 1.在 c 裡加上 extern c 作為符號宣告的一部分。2.begin decls 和 end decls 在c語言 中標頭檔案中,充斥著下面的 片段 begin ...