Home > Back-end >  Under the BCB output characters in Opengl
Under the BCB output characters in Opengl

Time:10-07

I wrote the following code according to the Internet, but there is no reaction, think 2 shall not fruit, but!
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

#include
#include
#include
#include

# pragma hdrstop

# include "Unit21. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
# pragma link "OpenGLSrc
"# pragma resource "*. DFM
"TForm1 * Form1;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
//global variable
# define MAX_CHAR 128

Void selectFont (int size, int charset, const char * face)
{
HFONT HFONT=CreateFontA (size, 0, 0, 0, FW_MEDIUM, 0, 0, 0,
Charset, OUT_DEFAULT_PRECIS CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, face);
HFONT hOldFont=(HFONT) SelectObject (wglGetCurrentDC (), HFONT);
DeleteObject (hOldFont);
}

Void Initialization ()
{
GlClearColor (1.0 f, f, 1.0 1.0 f, 1.0 f);//set the background color to white
}
//to redraw the callback function
Void OnReshape ()
{

GlMatrixMode (GL_PROJECTION);//projection model
GlLoadIdentity ();//load the unit matrix to initialize the current matrix

//gluOrtho2D (0, 0, w, h);//sets the current drawing area to two-dimensional orthogonal projection

GlMatrixMode (GL_MODELVIEW);//model view mode
GlLoadIdentity ();//initialize the current matrix
}

Void drawString (const char * STR)//screen font
{
Static int isFirstCall=1;
The static GLuint lists;

If (isFirstCall)
{
IsFirstCall=0;
//application MAX_CHAR consecutive number display list
Lists=glGenLists (MAX_CHAR);
//put every character of drawing commands to the corresponding display list
WglUseFontBitmaps (wglGetCurrentDC (), and 0, MAX_CHAR, lists).
}
//call each character corresponding to the display list, draw each character
for (; * STR!='\ 0'; + + STR)
{
GlCallList (lists + * STR);
}
}
//show the callback function
Void OnDisplay ()
{
GlClear (GL_COLOR_BUFFER_BIT);

//Drawing ();
SelectFont (48, ANSI_CHARSET, "Comic Sans MS");//font can find in system file
GlColor3f (0.0 1.0 f, 0.0 f, f);//set the font color
GlRasterPos2i (0.0 0.0 f, f);//start
DrawString (" Hello, OpenGL. ");//output string

GlutSwapBuffers ();//before and after the exchange buffer
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TForm1: : TForm1 (TComponent * Owner)
: TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Void __fastcall TForm1: : OpenGL1Click (TObject * Sender)
{
Initialization ();
OnDisplay ();
//OnReshape ();
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

  • Related