aboutsummaryrefslogtreecommitdiffstats
path: root/src/World.cpp
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2015-09-09 19:54:58 -0400
committerClyne Sullivan <tullivan99@gmail.com>2015-09-09 19:54:58 -0400
commitde36d85107a306828482c910731f164ab46e936d (patch)
tree2a60937e375eb6245ce73394431ac2fe326d18fd /src/World.cpp
parentaf49aebdb758f5359bf5ebbc7a1b8ae94cdb9014 (diff)
World stuff
Diffstat (limited to 'src/World.cpp')
-rw-r--r--src/World.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/World.cpp b/src/World.cpp
new file mode 100644
index 0000000..feeeb1f
--- /dev/null
+++ b/src/World.cpp
@@ -0,0 +1,38 @@
+#include <World.h>
+
+World::World(const char *l1,const char *l2,const char *l3,const char *bg){
+ unsigned char i=0;
+ SDL_Surface *l;
+ const char *f[4]={l1,l2,l3,bg};
+ memset(layer,0,sizeof(struct layer_t)*4);
+ for(;i<4;i++){
+ l=IMG_Load(f[i]);
+ if(l!=NULL){
+ glGenTextures(1,&layer[i].tex);
+ glBindTexture(GL_TEXTURE_2D,layer[i].tex);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP_TO_EDGE);
+ glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP_TO_EDGE);
+ glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,l->w,l->h,0,GL_RGB,GL_UNSIGNED_BYTE,l->pixels);
+ SDL_FreeSurface(l);
+ }
+ }
+}
+void World::draw(void){
+ int i;
+ float x;
+ glEnable(GL_TEXTURE_2D);
+ for(i=2;i>=0;i--){
+ glBindTexture(GL_TEXTURE_2D,layer[i].tex);
+ glBegin(GL_QUADS);
+ for(x=-1;x<=1;x+=(TEX_SIZE/(float)(i+1))){
+ glTexCoord2d(1,1);glVertex2f(x ,LAYER0_Y-TEX_SIZE+(i*.2));
+ glTexCoord2d(0,1);glVertex2f(x+TEX_SIZE,LAYER0_Y-TEX_SIZE+(i*.2));
+ glTexCoord2d(0,0);glVertex2f(x+TEX_SIZE,LAYER0_Y +(i*.2));
+ glTexCoord2d(1,0);glVertex2f(x ,LAYER0_Y +(i*.2));
+ }
+ glEnd();
+ }
+ glDisable(GL_TEXTURE_2D);
+}