]> git.lizzy.rs Git - shadowclad.git/blob - glut_janitor.c
Texturing mockup
[shadowclad.git] / glut_janitor.c
1 #include <GL/gl.h>
2
3 #include "render.h"
4 #include "tga.h"
5
6 void initRender() {
7         // Set the clear colour to black
8         glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
9         
10         GLfloat light0_ambient[] = {0.1f, 0.1f, 0.1f, 1.0f};
11         GLfloat light0_diffuse[] = {1.0f, 1.0f, 1.0f, 1.0f};
12         GLfloat light0_specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
13         GLfloat light0_position[] = {0.0f, 0.0f, 10.0f, 1.0f};
14         
15         glLightfv(GL_LIGHT0, GL_AMBIENT, light0_ambient);
16         glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_diffuse);
17         glLightfv(GL_LIGHT0, GL_SPECULAR, light0_specular);
18         glLightfv(GL_LIGHT0, GL_POSITION, light0_position);
19     
20         glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.0f);
21         glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.05f);
22         glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.001f);
23         
24         texImage = readTga("out/assets/wall01side.tga");
25         glTexImage2D(GL_TEXTURE_2D,
26                      0,
27                      texImage->imageComponents,
28                      texImage->header.imageWidth,
29                      texImage->header.imageHeight,
30                      0,
31                      texImage->imageFormat,
32                      GL_UNSIGNED_BYTE,
33                      texImage->bytes);
34         free(texImage->bytes);
35         
36         glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
37         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
38         glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
39 }
40
41 void resizeStage(GLsizei width, GLsizei height) {
42         if (height == 0)
43                 height = 1;
44         
45         // Set device viewport dimensions
46         glViewport(0, 0, width, height);
47         // Switch to projection matrix
48         glMatrixMode(GL_PROJECTION);
49         // Reset the projection matrix
50         glLoadIdentity();
51         
52         GLfloat aspectRatio = (GLfloat) width / (GLfloat) height;
53         
54         glOrtho(-10.0, 10.0, -10.0/aspectRatio, 10.0/aspectRatio, 128.0, -128.0);
55         
56         glRotatef(45.0f, 1.0f, 0.0f, 0.0f);
57         glRotatef(45.0f, 0.0f, 1.0f, 0.0f);
58         
59         glMatrixMode(GL_MODELVIEW);
60 }