summaryrefslogtreecommitdiff
path: root/src/OpenGLGraphics.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-05-30 11:32:58 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-05-30 11:32:58 (GMT)
commit86746f38b0c0f382f06eb11c59b3dc49641490aa (patch)
treee6b6b239f9097c06faa235e2773903f811458519 /src/OpenGLGraphics.cpp
parent7074036b898083cdab1316cedbbade009ce6422d (diff)
downloadpowder-86746f38b0c0f382f06eb11c59b3dc49641490aa.zip
powder-86746f38b0c0f382f06eb11c59b3dc49641490aa.tar.gz
Separate SDL from graphics code
Also remove OS X specific project files and update Makefile to ensure the Element class generator only runs when necessary
Diffstat (limited to 'src/OpenGLGraphics.cpp')
-rw-r--r--src/OpenGLGraphics.cpp69
1 files changed, 22 insertions, 47 deletions
diff --git a/src/OpenGLGraphics.cpp b/src/OpenGLGraphics.cpp
index 61c422c..b7d4795 100644
--- a/src/OpenGLGraphics.cpp
+++ b/src/OpenGLGraphics.cpp
@@ -6,85 +6,60 @@
Graphics::Graphics():
sdl_scale(1)
{
-
-}
-
-Graphics::~Graphics()
-{
-}
-
-void Graphics::Clear()
-{
- glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
- glClear(GL_COLOR_BUFFER_BIT);
-}
-
-void Graphics::AttachSDLSurface(SDL_Surface * surface)
-{
- //sdl_scrn = surface;
- SDL_GL_SetAttribute (SDL_GL_DOUBLEBUFFER, 1);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
-
+
//glOrtho(0, (XRES+BARSIZE)*sdl_scale, 0, (YRES+MENUSIZE)*sdl_scale, -1, 1);
glOrtho(0, (XRES+BARSIZE)*sdl_scale, (YRES+MENUSIZE)*sdl_scale, 0, -1, 1);
-
+
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
-
-
+
+
//glRasterPos2i(0, (YRES+MENUSIZE));
glRasterPos2i(0, 0);
glPixelZoom(1, 1);
-
+
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-
+
//Texture for main UI
glEnable(GL_TEXTURE_2D);
-
+
glGenTextures(1, &vidBuf);
glBindTexture(GL_TEXTURE_2D, vidBuf);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, XRES+BARSIZE, YRES+MENUSIZE, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL);
-
+
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
-
+
glBindTexture(GL_TEXTURE_2D, 0);
-
+
glGenTextures(1, &textTexture);
glBindTexture(GL_TEXTURE_2D, textTexture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
-
+
glBindTexture(GL_TEXTURE_2D, 0);
-
+
glDisable(GL_TEXTURE_2D);
}
-void Graphics::Blit()
+Graphics::~Graphics()
{
- //glDrawPixels(w,h,GL_BGRA,GL_UNSIGNED_BYTE,src); //Why does this still think it's ABGR?
- /*glEnable( GL_TEXTURE_2D );
- glBindTexture(GL_TEXTURE_2D, vidBuf);
- glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
- glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, XRES+BARSIZE, YRES+MENUSIZE, GL_BGRA, GL_UNSIGNED_BYTE, vid);
- glBegin(GL_QUADS);
- glTexCoord2d(1, 0);
- glVertex3f((XRES+BARSIZE)*sdl_scale, (YRES+MENUSIZE)*sdl_scale, 1.0);
- glTexCoord2d(0, 0);
- glVertex3f(0, (YRES+MENUSIZE)*sdl_scale, 1.0);
- glTexCoord2d(0, 1);
- glVertex3f(0, 0, 1.0);
- glTexCoord2d(1, 1);
- glVertex3f((XRES+BARSIZE)*sdl_scale, 0, 1.0);
- glEnd();
+}
+
+void Graphics::Clear()
+{
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+}
- glDisable( GL_TEXTURE_2D );*/
+void Graphics::Finalise()
+{
glFlush();
- SDL_GL_SwapBuffers ();
}
int Graphics::drawtext(int x, int y, const char *s, int r, int g, int b, int a)