Old tools that got removed a long time ago.

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1545 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
meep-eep
2005-02-19 00:38:46 +00:00
parent 440fec6289
commit e7eabd46b9
51 changed files with 10988 additions and 0 deletions
+158
View File
@@ -0,0 +1,158 @@
#include <windows.h>
#include <wingdi.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <SDL/SDL.h>
void process_input(void);
void init_sdl(void);
SDL_Surface *init_video(void);
void showLastError(char *c);
static char* font_names[] = { "SC2 Arilou", "SC2 Chmmr", "SC2 Earthling",
"SC2 Ilwrath", "SC2 Kohr-Ah", "SC2 Melnorme/Druuge", "SC2 Mycon",
"SC2 Orz", "SC2 Pkunk", "SC2 Shofixti", "SC2 Slylandro",
"SC2 Slylandro Probe", "SC2 Spathi", "SC2 Supox", "SC2 Syreen",
"SC2 Talking Pet", "SC2 Thraddash", "SC2 Umgah", "SC2 Ur-Quan",
"SC2 Utwig", "SC2 VUX", "SC2 Yehat", "SC2 ZoqFotPik" };
#define NUM_FONTS 23
int currentFont = 0;
void init(void) {
HDC hdc;
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
// glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
}
void display(void) {
HDC hdc;
HGDIOBJ hgdiobj;
glClear(GL_COLOR_BUFFER_BIT);
if ((hdc = wglGetCurrentDC()) == NULL) {
showLastError("wglGetCurrentDC failed");
}
if ((hgdiobj = SelectObject(hdc, CreateFont(0, 0, 0, 0, FW_DONTCARE,
FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
font_names[currentFont]))) == NULL) {
showLastError("SelectObject failed");
}
if (!wglUseFontBitmaps(hdc, 0, 255, 1000)) {
showLastError("wglUseFontBitmaps failed");
}
glListBase(1000);
glRasterPos2d(-.9, .15);
glCallLists(strlen(font_names[currentFont]), GL_UNSIGNED_BYTE,
font_names[currentFont]);
glRasterPos2d(-.9, 0);
glCallLists(28, GL_UNSIGNED_BYTE, "Press UP/DOWN to change font");
glRasterPos2d(-.9, -.15);
glCallLists(23, GL_UNSIGNED_BYTE, "0123 ABC abc !@#$%^&*()");
if (DeleteObject(hgdiobj) == 0) {
showLastError("DeleteObject failed");
}
glFlush();
SDL_GL_SwapBuffers();
}
int main(int argc, char*argv[]) {
SDL_Surface *screen;
init_sdl();
init_video();
init();
while (1) {
display();
process_input();
}
return 0;
}
// The following functions are mostly unimportant -- they just set up opengl and sdl
// Shows last Windows error in a message box using GetLastError()
void showLastError(char *c) {
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Display the string.
MessageBox( NULL, lpMsgBuf, c, MB_OK|MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
}
//the following functions merely deal with OpenGL and SDL
void process_input(void) {
SDL_Event e;
while (SDL_PollEvent(&e)) {
switch (e.type) {
case SDL_KEYDOWN:
if (e.key.keysym.sym == SDLK_ESCAPE) {
exit(0);
}
if (e.key.keysym.sym == SDLK_UP) {
currentFont --;
if (currentFont < 0) {
currentFont = NUM_FONTS - 1;
}
}
if (e.key.keysym.sym == SDLK_DOWN) {
currentFont ++;
if (currentFont == NUM_FONTS) {
currentFont = 0;
}
}
break;
case SDL_QUIT:
exit(0);
break;
}
}
}
void init_sdl(void) {
if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 );
SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
}
SDL_Surface *init_video(void) {
SDL_Surface *screen;
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE | SDL_OPENGL);
if ( screen == NULL ) {
fprintf(stderr, "Unable to set video: %s\n", SDL_GetError());
exit(1);
}
return screen;
}