OpenGL: Difference between revisions
Levidsmith (talk | contribs) |
Levidsmith (talk | contribs) No edit summary |
||
Line 76: | Line 76: | ||
} | } | ||
} | } | ||
== Change BMP to PNG == | |||
Next step is to replace the BMP with a PNG | |||
Some "gotchas" | |||
*Add "IMG_Init(IMG_INIT_PNG);" to the program's startup code | |||
*Replace "SDL_LoadBMP" with "IMG_Load" | |||
*Add -lSDL_image on the compile line (Makefile or go script) | |||
*Add required DLLs to the working directory (libpng12-0.dll, zlib1.dll, SDL_image.dll, etc) |
Revision as of 04:08, 14 February 2010
I am attempting to integrate OpenGL into the code, so that the game uses hardware graphics acceleration. Hopefully, this will improve some of the framerate issues.
Get code to compile with a single line of OpenGL
I can compile a program using #include "SDL_opengl.h", but I am getting errors about missing functions when an OpenGL method is called.
I installed the OpenGL libraries in cygwin, so I'm not sure if those were necessary:
Installing these files may help
http://www.libsdl.org/extras/win32/cygwin/
Found out that I was using the wrong parameters to compile. I should have been using this:
gcc test.c `sdl-config --libs --cflags` -lglut32 -lglu32 -lopengl32
Display a bitmap to the screen
I got a simple square to display in OpenGL:
Added Tux:
Tux on an image background:
One of the vertices was off, which made the background skewed.
Moving Block
Next Step is to get the player block moving
Pseudo Code:
INTEGER playerX INTEGER playerY INTEGER playerVelocityX INTEGER playerVelocityY Setup_SDL Setup_OpenGL Load_Bitmaps GameLoop { While (User hasn't Quit) { IF (User presses up) THEN playerVelocityY = - PLAYER_SPEED IF (User presses down) THEN playerVelocityY = PLAYER_SPEED IF (User presses left) THEN playerVelocityX = - PLAYER_SPEED IF (User presses right) THEN playerVelocityX = PLAYER_SPEED playerX = playerX + playerVelocityX playerY = playerY + playerVelocityY Render_Screen } }
Change BMP to PNG
Next step is to replace the BMP with a PNG
Some "gotchas"
- Add "IMG_Init(IMG_INIT_PNG);" to the program's startup code
- Replace "SDL_LoadBMP" with "IMG_Load"
- Add -lSDL_image on the compile line (Makefile or go script)
- Add required DLLs to the working directory (libpng12-0.dll, zlib1.dll, SDL_image.dll, etc)