1 
2 #include "resources.h"
3 
4 #include "data/res/kronika.mfont.h"
5 
6 #include "data/res/torpedo.m.h"
7 #include "data/res/torpedo2.m.h"
8 #include "data/res/pboat.m.h"
9 #include "data/res/tanker.m.h"
10 #include "data/res/OpenGL_logo_flat.m.h"
11 
12 #include "data/res/seawaves.vs.h"
13 #include "data/res/clouds.vs.h"
14 #include "data/res/clouds.fs.h"
15 #include "data/res/font.fs.h"
16 #include "data/res/particles.fs.h"
17 #include "data/res/particles.vs.h"
18 #include "data/res/staticmesh.fs.h"
19 #include "data/res/line.fs.h"
20 
21 Resources g_resources;
22 
load(void)23 void Resources::load(void)
24 {
25 	shader_seawaves = new Shader(data_sha_seawaves_vs,NULL);  g_loadingscreen->update();
26 	shader_clouds =	new Shader(data_sha_clouds_vs,data_sha_clouds_fs);   g_loadingscreen->update();
27 	shader_particles = new Shader(data_sha_particles_vs,data_sha_particles_fs);   g_loadingscreen->update();
28 
29   my_glBindAttribLocation(shader_particles->get_prog(),0,"pos");
30   my_glBindAttribLocation(shader_particles->get_prog(),1,"corner");
31   my_glBindAttribLocation(shader_particles->get_prog(),2,"size");
32   my_glBindAttribLocation(shader_particles->get_prog(),3,"color");
33 
34 	shader_particles->relink();
35 
36 	shader_font = new Shader(NULL,data_sha_font_fs);   g_loadingscreen->update();
37 	shader_staticmesh = new Shader(NULL,data_sha_staticmesh_fs);   g_loadingscreen->update();
38 	shader_line = new Shader(NULL,data_sha_line_fs);   g_loadingscreen->update();
39 
40   mesh_tanker = new StaticMesh(data_model_tanker_m,sizeof(data_model_tanker_m));   g_loadingscreen->update();
41 	mesh_pboat = new StaticMesh(data_model_pboat_m,sizeof(data_model_pboat_m));   g_loadingscreen->update();
42 	mesh_torpedo = new StaticMesh(data_model_torpedo__m,sizeof(data_model_torpedo__m));   g_loadingscreen->update();
43   mesh_missile = new StaticMesh(data_model_torpedo_m,sizeof(data_model_torpedo_m));   g_loadingscreen->update();
44 
45 	mesh_opengl_logo = new StaticMesh(data_model_OpenGL_logo_flat_m,sizeof(data_model_OpenGL_logo_flat_m));   g_loadingscreen->update();
46 
47 	texture_smoke = Procedural::smoke_particle_texture(texture_particle_size);   g_loadingscreen->update();
48 	texture_bubble = Procedural::bubble_particle_texture(texture_particle_size);   g_loadingscreen->update();
49   texture_circle = Procedural::circle_texture(texture_particle_size);   g_loadingscreen->update();
50 	texture_crosshair = Procedural::crosshair_texture(texture_particle_size); g_loadingscreen->update();
51   texture_missile_mark = Procedural::missile_mark_texture(texture_particle_size); g_loadingscreen->update();
52   texture_seawaves = Procedural::seawaves_texture(); g_loadingscreen->update();
53   texture_seawaves_f = Procedural::seawaves_texture_f(); g_loadingscreen->update();
54   texture_line = Procedural::line_texture(); g_loadingscreen->update();
55   texture_cross = Procedural::cross_texture(texture_particle_size); g_loadingscreen->update();
56 
57 	font = new MFont(data_fonts_kronika_mfont,0.065f);
58   g_loadingscreen->update();
59 }
60 
release(void)61 void Resources::release(void)
62 {
63 	delete shader_seawaves;
64 	delete shader_clouds;
65 	delete shader_particles;
66 	delete shader_font;
67 
68   delete mesh_tanker;
69 	delete mesh_pboat;
70   delete mesh_torpedo;
71 	delete mesh_missile;
72 
73 	glDeleteTextures(1,&texture_smoke);	texture_smoke = 0;
74 	glDeleteTextures(1,&texture_bubble); texture_bubble = 0;
75   glDeleteTextures(1,&texture_circle); texture_circle = 0;
76 	glDeleteTextures(1,&texture_crosshair); texture_crosshair = 0;
77 	glDeleteTextures(1,&texture_missile_mark); texture_missile_mark = 0;
78 	glDeleteTextures(1,&texture_seawaves); texture_seawaves = 0;
79 	glDeleteTextures(1,&texture_seawaves_f); texture_seawaves_f = 0;
80 	glDeleteTextures(1,&texture_line); texture_line = 0;
81 	glDeleteTextures(1,&texture_cross); texture_cross = 0;
82 
83 	delete font;
84 }
85