From f64df83770bdf1471036ed0ee600c57e0d4755b5 Mon Sep 17 00:00:00 2001 From: Wilrik de Loose Date: Wed, 16 Apr 2008 12:12:17 +0000 Subject: Tweede versie menu demo. --- menu_demo/Debug/BuildLog.htm | Bin 6898 -> 6960 bytes menu_demo/Debug/main.obj | Bin 14367 -> 14638 bytes menu_demo/Debug/menu.obj | Bin 10948 -> 11397 bytes menu_demo/Debug/menu_demo.exe | Bin 40960 -> 45056 bytes menu_demo/Debug/menu_demo.ilk | Bin 356264 -> 388580 bytes menu_demo/Debug/menu_demo.pdb | Bin 371712 -> 371712 bytes menu_demo/Debug/mt.dep | 2 +- menu_demo/Debug/vc80.idb | Bin 207872 -> 216064 bytes menu_demo/Debug/vc80.pdb | Bin 69632 -> 69632 bytes menu_demo/bitmap.c | 51 ++++++++++++++++++++++++++++++++++++++++++ menu_demo/bitmap.h | 12 ++++++++++ menu_demo/button.c | 14 ++++++++++++ menu_demo/button.h | 6 +++++ menu_demo/main.c | 9 +++++--- menu_demo/menu.c | 28 +++++++++++++++-------- menu_demo/menu_demo.vcproj | 16 +++++++++++++ 16 files changed, 125 insertions(+), 13 deletions(-) create mode 100644 menu_demo/bitmap.c create mode 100644 menu_demo/bitmap.h create mode 100644 menu_demo/button.c create mode 100644 menu_demo/button.h diff --git a/menu_demo/Debug/BuildLog.htm b/menu_demo/Debug/BuildLog.htm index d4c4669..8bfe1cd 100644 Binary files a/menu_demo/Debug/BuildLog.htm and b/menu_demo/Debug/BuildLog.htm differ diff --git a/menu_demo/Debug/main.obj b/menu_demo/Debug/main.obj index de586ec..457d114 100644 Binary files a/menu_demo/Debug/main.obj and b/menu_demo/Debug/main.obj differ diff --git a/menu_demo/Debug/menu.obj b/menu_demo/Debug/menu.obj index ca08791..b5e253b 100644 Binary files a/menu_demo/Debug/menu.obj and b/menu_demo/Debug/menu.obj differ diff --git a/menu_demo/Debug/menu_demo.exe b/menu_demo/Debug/menu_demo.exe index df86b2f..7b5b0a6 100644 Binary files a/menu_demo/Debug/menu_demo.exe and b/menu_demo/Debug/menu_demo.exe differ diff --git a/menu_demo/Debug/menu_demo.ilk b/menu_demo/Debug/menu_demo.ilk index 6015c71..bcdc1a3 100644 Binary files a/menu_demo/Debug/menu_demo.ilk and b/menu_demo/Debug/menu_demo.ilk differ diff --git a/menu_demo/Debug/menu_demo.pdb b/menu_demo/Debug/menu_demo.pdb index e558b38..8b0c954 100644 Binary files a/menu_demo/Debug/menu_demo.pdb and b/menu_demo/Debug/menu_demo.pdb differ diff --git a/menu_demo/Debug/mt.dep b/menu_demo/Debug/mt.dep index 6e93dc7..d5684fe 100644 --- a/menu_demo/Debug/mt.dep +++ b/menu_demo/Debug/mt.dep @@ -1 +1 @@ -Manifest resource last updated at 13:31:27,55 on 16-04-2008 +Manifest resource last updated at 14:10:25,98 on 16-04-2008 diff --git a/menu_demo/Debug/vc80.idb b/menu_demo/Debug/vc80.idb index 0cce440..ac3e2e5 100644 Binary files a/menu_demo/Debug/vc80.idb and b/menu_demo/Debug/vc80.idb differ diff --git a/menu_demo/Debug/vc80.pdb b/menu_demo/Debug/vc80.pdb index 991ea1f..098e6e4 100644 Binary files a/menu_demo/Debug/vc80.pdb and b/menu_demo/Debug/vc80.pdb differ diff --git a/menu_demo/bitmap.c b/menu_demo/bitmap.c new file mode 100644 index 0000000..9a59d12 --- /dev/null +++ b/menu_demo/bitmap.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include + +#include "bitmap.h" + +#define BITMAP_FILESIZE 0x02 +#define BITMAP_OFFSET 0x0a +#define BITMAP_HEADERSIZE 0x0e +#define BITMAP_WIDTH 0x12 +#define BITMAP_HEIGHT 0x16 + +void load_image(char *filename) +{ + GLuint texture; + FILE *bitmap; + + // try to open the file + bitmap = fopen(filename, "rb"); + + // does the bitmap exist? + if (bitmap > 0) + { + unsigned int dataoffset, filesize; + GLsizei width, height; + unsigned char *imagedata; + + fseek(bitmap, BITMAP_FILESIZE, SEEK_SET); + fread(&filesize, 4, 1, bitmap); + fseek(bitmap, BITMAP_OFFSET, SEEK_SET); + fread(&dataoffset, 4, 1, bitmap); + fseek(bitmap, BITMAP_WIDTH, SEEK_SET); + fread(&width, 4, 1, bitmap); + fread(&height, 4, 1, bitmap); + + imagedata = (unsigned char *)malloc((size_t)(filesize -dataoffset)); + + fseek(bitmap, dataoffset, SEEK_SET); + fread(imagedata, (size_t)(filesize -dataoffset), 1, bitmap); + + glGenTextures(1, &texture); + glBindTexture(GL_TEXTURE_2D, texture); + gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, width, height, GL_RGB, GL_UNSIGNED_BYTE, imagedata); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + free(imagedata); + fclose(bitmap); + } +} diff --git a/menu_demo/bitmap.h b/menu_demo/bitmap.h new file mode 100644 index 0000000..8eb7680 --- /dev/null +++ b/menu_demo/bitmap.h @@ -0,0 +1,12 @@ +#ifndef _CBITMAP_H +#define _CBITMAP_H + +struct ButtonStruct { + double m_dXPos; + double m_dYPos; + int m_iType; +}; + +void load_image(char *filename); + +#endif \ No newline at end of file diff --git a/menu_demo/button.c b/menu_demo/button.c new file mode 100644 index 0000000..13a499c --- /dev/null +++ b/menu_demo/button.c @@ -0,0 +1,14 @@ +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#include + +#include "bitmap.h" + +enum MenuState { + MENU_MAIN, + MENU_START, + MENU_OPTIONS +}; \ No newline at end of file diff --git a/menu_demo/button.h b/menu_demo/button.h new file mode 100644 index 0000000..2249f32 --- /dev/null +++ b/menu_demo/button.h @@ -0,0 +1,6 @@ +#ifndef _CBUTTON_H +#define _CBUTTON_H + + + +#endif \ No newline at end of file diff --git a/menu_demo/main.c b/menu_demo/main.c index c859d9c..5b8f4fb 100644 --- a/menu_demo/main.c +++ b/menu_demo/main.c @@ -1,6 +1,6 @@ -#ifdef G_OS_WIN32 -#define WIN32_LEAN_AND_MEAN 1 -#include +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include #endif #include @@ -52,11 +52,14 @@ void init_gl(void) void render_scene(void) { + int lalala; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(1, 1, 1, 0); MenuRender(); + lalala = glutLayerGet(GLUT_OVERLAY_POSSIBLE); + glutSwapBuffers(); } diff --git a/menu_demo/menu.c b/menu_demo/menu.c index b265fbb..8f9b4a4 100644 --- a/menu_demo/menu.c +++ b/menu_demo/menu.c @@ -1,17 +1,27 @@ -#ifdef G_OS_WIN32 -#define WIN32_LEAN_AND_MEAN 1 -#include +#ifdef G_OS_WIN32 +#define WIN32_LEAN_AND_MEAN 1 +#include #endif #include +#include "button.h" + enum MenuState { MENU_MAIN, - MENU_OPTIONS, - MENU_SELECTION + MENU_START, + MENU_OPTIONS +}; + +struct MenuStruct { + int i; }; -int g_iState; +int g_iState; // which menu are we in + +struct MenuStruct g_sMenuMain; // definition of the main menu +struct MenuStruct g_sMenuStart; // definition of the start menu +struct MenuStruct g_sMenuOptions; // definition of the options menu void MenuMainRender(void) { @@ -49,7 +59,7 @@ int MenuGetState(void) void MenuRender(void) { - glColor3d(0, 0, 0); + glColor3d(1, 1, 1); switch (g_iState) { @@ -57,11 +67,11 @@ void MenuRender(void) MenuMainRender(); break; - case MENU_OPTIONS: + case MENU_START: MenuOptionsRender(); break; - case MENU_SELECTION: + case MENU_OPTIONS: MenuSelectionRender(); break; diff --git a/menu_demo/menu_demo.vcproj b/menu_demo/menu_demo.vcproj index f423000..afb55b7 100644 --- a/menu_demo/menu_demo.vcproj +++ b/menu_demo/menu_demo.vcproj @@ -175,6 +175,14 @@ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" > + + + + @@ -189,6 +197,14 @@ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > + + + + -- cgit v0.12