kostenloser Webspace werbefrei: lima-city


BitmapFont in SDL_openGL wird nicht angezeigt

lima-cityForumProgrammiersprachenC/C++ und D

  1. Autor dieses Themas

    nichtwunschname

    nichtwunschname hat kostenlosen Webspace.

    Hallo,
    ich versuche verzweifelt in einem SDL_openGL Fenster einen Text anzuzeigen , aber mein Programm will den Text nicht anzeigen (nur Schwarzes Fenster).
    Ich habe bereits versucht, das Problem einzugrenzen. Ich habe Festgestellt, dass die Funktion wglUseFontBitmaps false zurückgibt.
    Ich weis aber nicht, woran das liegt.

    Kurze Erklärung zum code:
    die Klasse Frame erzeugt ein SDL-Fenster mit SDL_OPENGL
    der namespace gehört auch zu diesem Header

    #include <SDL/SDL.h>
    #include <SDL/SDL_opengl.h>
    #include "Frame.h"
    #include <cmath>
    #include <stdarg.h>
    #include <iostream>
    
    using namespace std;
    using namespace FV_std;
    
    unsigned int base;
    HGLRC hRC = NULL;
    HWND hWnd = NULL;
    HINSTANCE hInstance;
    
    bool pollEvent()
    {
    	SDL_Event event;
    	while(SDL_PollEvent(&event))
    	{
    		switch(event.type) {
    		case SDL_QUIT:
    			return false;
    		break;
    		default:
    		break;
    		}
    	}
    	return true;
    }
    
    
    void BuildFont()
    {
    	HDC hDC = NULL;
    	HFONT font;
    	HFONT oldfont;
    	base = glGenLists(96);
    	font = CreateFont(-24, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE,
    		ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
    		ANTIALIASED_QUALITY, FF_DONTCARE | DEFAULT_PITCH, "Courier New");
    	oldfont = (HFONT)SelectObject(hDC, font);
    	if(wglUseFontBitmaps(hDC, 32, 96, base)==false)
    		{
    			MessageBox(NULL,"Fehler","Fehler bei wglUseFontBitmaps",MB_OK|MB_ICONWARNING);
    		}
    	SelectObject(hDC, oldfont);
    	DeleteObject(font);
    }
    
    void glPrint(const char *fmt, ...)
    {
    	char text[256];
    	va_list ap;
    	if(fmt == NULL) return;
    	va_start(ap,fmt);
    	vsprintf(text, fmt, ap);
    	va_end(ap);
    	glPushAttrib(GL_LIST_BIT);
    	glListBase(base - 32);
    	glCallLists(strlen(text), GL_UNSIGNED_SHORT, text);
    	glPopAttrib();
    }
    
    void killFont()
    {
    	glDeleteLists(base,96);
    }
    
    int main(int argv, char **argc)
    {
    	Frame wnd("Test", 500, 500);
    	wnd.create();
    	BuildFont();
    	glFrustum(-.03, .03, -.03, .03, .1, .2);
    	glOrtho(-2, 2, 2, -2, 0, -5);
    	glClearColor(1, 1, 1, 0);
    	glLoadIdentity();
    	glTranslated(0,0,-1);
    	while(pollEvent())
    	{
    		glPrint("HALLO");
    		SDL_GL_SwapBuffers();
    	}
    	killFont();
    
    	SDL_Quit();
    	exit(0);
    }


    Es wäre nett, wenn ihr mir helfen könnt.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!