por pelao el Mié Jun 09, 2004 8:15 am
GRacias ,
Aqui hay el PMTextObject.h:
// PMText.h: interface for the PMText class.
//
//////////////////////////////////////////////////////////////////////
#ifndef PMTEXTOBJECT_H_INCLUDED
#define PMTEXTOBJECT_H_INCLUDED
#include <windows.h> // standard Windows app include
#include <stdio.h>
#include <string.h>
#include <gl\glut.h>
#include "PMMenuObject.h"
class PMTextObject : public PMMenuObject
{
public:
PMTextObject();
PMTextObject(HDC t_HDC);
PMTextObject(HDC t_HDC, const char* txt);
PMTextObject(HDC t_HDC, const char* txt, float x, float y);
virtual ~PMTextObject();
void render();
void setText(const char* txt);
const char* text;
private:
unsigned int base;
};
#endif // #define PMTEXT_H_INCLUDED
Aqui hay el codigo del .CPP
/ PMText.cpp: implementation of the PMText class.
//
//////////////////////////////////////////////////////////////////////
#include "PMTextObject.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
PMTextObject::PMTextObject() {
}
PMTextObject::PMTextObject(HDC t_HDC){
base = glGenLists(96);
HFONT hFont = CreateFont(12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
FF_DONTCARE | DEFAULT_PITCH, "Arial");
SelectObject(t_HDC, hFont);
wglUseFontBitmaps(t_HDC, 32, 96, base);
text ="";
mox = 0.0;
moy = 0.0;
}
PMTextObject::PMTextObject(HDC t_HDC, const char* txt){
base = glGenLists(96);
HFONT hFont = CreateFont(12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
FF_DONTCARE | DEFAULT_PITCH, "Arial");
SelectObject(t_HDC, hFont);
wglUseFontBitmaps(t_HDC, 32, 96, base);
text = txt;
mox = 0.0;
moy = 0.0;
}
PMTextObject::PMTextObject(HDC t_HDC, const char* txt, float x, float y){
base = glGenLists(96);
HFONT hFont = CreateFont(12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
FF_DONTCARE | DEFAULT_PITCH, "Arial");
SelectObject(t_HDC, hFont);
wglUseFontBitmaps(t_HDC, 32, 96, base);
text = txt;
setPosition(x, y);
}
PMTextObject::~PMTextObject(){
}
void PMTextObject::setText(const char *txt) {
text = txt;
}
void PMTextObject::render() {
glTranslatef(mox, moy, 0.0);
float bdAmbient[4] = {1.0, 1.0, 1.0, 1.0};
float bdDiffuse[4] = {1.0, 1.0, 1.0, 1.0};
glMaterialfv(GL_FRONT, GL_AMBIENT, bdAmbient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, bdDiffuse);
glRasterPos2f(-0.35f, 0.0f);
glPushAttrib(GL_LIST_BIT);
glListBase(base - 32);
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);
glPopAttrib();
glTranslatef(-mox, -moy, 0.0);
}