資源簡介
請童鞋們邊看代碼,邊看本文檔
在CSGLControl組件的代碼視圖下,直接就有一種方法 BuildFont(string text,Font font)
運(yùn)行起來在窗體的左下角藍(lán)背景紅字的就是效果。
優(yōu)點(diǎn),這種方法,簡單,易懂。
缺點(diǎn),內(nèi)存流,glDrawPixels,gluOrtho2D的坐標(biāo)轉(zhuǎn)換,無法輸出與GL很好的融為一體。
果斷放棄了。
下面是正主了
項(xiàng)目目錄下面有一個(gè)Win32的類,是從老外的SharpGL里直接拷過來的(可以直接用,為什么不用^_^),主要封裝了一些GDI操作和類型。
只是沒有漢字的GDI操作,我已經(jīng)加上了,童鞋們可以直接使用
GLFont是主要的類,大家好好看這個(gè)類,OpenGLPublicFunction類只有一個(gè)方法,把C#中的Color轉(zhuǎn)成GL接受的float數(shù)組
在輸出漢字的方法中請
----注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意----
GLFont類中,方法Print調(diào)用的是wglUseFontBitmaps
而PrintCN調(diào)用的是wglUseFontBitmapsW
wglUseFontBitmapsW是wglUseFontBitmaps的寬字符版,漢字一個(gè)字符占兩個(gè)字節(jié),而且不影響輸出英文
就這兩個(gè)方法調(diào)錯(cuò)了,弄了我一下午找錯(cuò)誤(先抽自己一下)
最后,但愿我寫的這個(gè)東西對你有幫助。。。。
在CSGLControl組件的代碼視圖下,直接就有一種方法 BuildFont(string text,Font font)
運(yùn)行起來在窗體的左下角藍(lán)背景紅字的就是效果。
優(yōu)點(diǎn),這種方法,簡單,易懂。
缺點(diǎn),內(nèi)存流,glDrawPixels,gluOrtho2D的坐標(biāo)轉(zhuǎn)換,無法輸出與GL很好的融為一體。
果斷放棄了。
下面是正主了
項(xiàng)目目錄下面有一個(gè)Win32的類,是從老外的SharpGL里直接拷過來的(可以直接用,為什么不用^_^),主要封裝了一些GDI操作和類型。
只是沒有漢字的GDI操作,我已經(jīng)加上了,童鞋們可以直接使用
GLFont是主要的類,大家好好看這個(gè)類,OpenGLPublicFunction類只有一個(gè)方法,把C#中的Color轉(zhuǎn)成GL接受的float數(shù)組
在輸出漢字的方法中請
----注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意--------注意----
GLFont類中,方法Print調(diào)用的是wglUseFontBitmaps
而PrintCN調(diào)用的是wglUseFontBitmapsW
wglUseFontBitmapsW是wglUseFontBitmaps的寬字符版,漢字一個(gè)字符占兩個(gè)字節(jié),而且不影響輸出英文
就這兩個(gè)方法調(diào)錯(cuò)了,弄了我一下午找錯(cuò)誤(先抽自己一下)
最后,但愿我寫的這個(gè)東西對你有幫助。。。。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?System.Drawing;
using?System.IO;
using?System.Windows;
using?CsGL.OpenGL;
using?CsGL.Pointers;
using?CsGL.Util;
namespace?CSGLShowChinese
{
????public?class?CSGLControl?:?OpenGLControl
????{
????????public?CSGLControl()
????????????:?base()
????????{?}
???????
????????protected?override?void?InitGLContext()//?此處開始對OpenGL進(jìn)行所有設(shè)置
????????{
????????????base.InitGLContext();
????????????GL.glShadeModel(GL.GL_SMOOTH);????????????//?啟用陰影平滑
????????????GL.glClearDepth(1.0f);?????????????????????????????????????//?設(shè)置深度緩存
????????????GL.glEnable(GL.GL_DEPTH_TEST);????????????//?啟用深度測試
????????????GL.glDepthFunc(GL.GL_LEQUAL);???????????????//?所作深度測試的類型
????????????GL.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT?GL.GL_NICEST);?//?告訴系統(tǒng)對透視進(jìn)行修正
????????}
????????protected?override?void?OnSizeChanged(EventArgs?e)
????????{
????????????base.OnSizeChanged(e);
??????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????380928??2002-11-03?22:43??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\csgl.dll
?????文件??????21504??2002-11-03?22:43??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\csgl.native.dll
?????文件??????28160??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\CSGLShowChinese.exe
?????文件??????40448??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\CSGLShowChinese.pdb
?????文件??????14328??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\CSGLShowChinese.vshost.exe
?????文件????????490??2007-07-21?01:33??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\bin\Debug\CSGLShowChinese.vshost.exe.manifest
?????文件???????5117??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\CSGLControl.cs
?????文件???????5995??2012-03-15?10:54??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\CSGLControl.resx
?????文件???????4257??2012-03-15?16:13??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\CSGLShowChinese.csproj
?????文件????????512??2012-03-15?10:59??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Form1.cs
?????文件???????1670??2012-03-15?10:50??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Form1.Designer.cs
?????文件???????5814??2012-03-15?10:50??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Form1.resx
?????文件???????4486??2012-03-15?16:13??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\GLFont.cs
?????文件????????180??2012-03-15?16:13??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.CSGLControl.resources
?????文件???????1030??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.csproj.FileListAbsolute.txt
?????文件????????911??2012-03-15?10:58??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.csproj.GenerateResource.Cache
?????文件??????28160??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.exe
?????文件????????180??2012-03-15?16:13??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.Form1.resources
?????文件??????40448??2012-03-15?16:17??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.pdb
?????文件????????180??2012-03-15?16:13??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\CSGLShowChinese.Properties.Resources.resources
?????文件???????3964??2012-03-15?10:58??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\obj\Debug\ResolveAssemblyReference.cache
?????文件????????975??2012-03-15?11:18??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\OpenGLPublicFunction.cs
?????文件????????496??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Program.cs
?????文件???????1382??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Properties\AssemblyInfo.cs
?????文件???????2880??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Properties\Resources.Designer.cs
?????文件???????5612??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Properties\Resources.resx
?????文件???????1100??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Properties\Settings.Designer.cs
?????文件????????249??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Properties\Settings.settings
?????文件??????43972??2012-03-15?15:54??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese\Win32.cs
?????文件????????935??2012-03-15?10:49??CSGLShowChinese\CSGLShowChinese\CSGLShowChinese.sln
............此處省略14個(gè)文件信息
評論
共有 條評論