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