summaryrefslogtreecommitdiff
path: root/themes/src/summer/summer_theme.h
blob: e048a7a9a191ecad812f1dae0d135a8d39b0bca1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once
#include "../types.h"
#include "../renderer_2d.h"
#include "../theme.h"
#include "sky_model.h"
#include "water_model.h"
#include <vector>

struct Sun {
    f32 radius = 20.f;
	i32 sectors = 180;
	Mesh2D mesh;
	f32 elapsedTime = 0.f;
	i32 timeUniform = -1;

	void load(Renderer2d* renderer);
	void update(f32 dtSeconds);
	void render(Renderer2d* renderer);
	void unload();
};

class SummerTheme : public Theme {
public:
    SummerTheme(WebglContext*);
    ~SummerTheme();
	Sun sun;
	SkyModel sky;
	WaterModel water{ Vector3(0.f, 0.f, -150.f), Vector3(600.f, 0.6f, 400.f) };
	void load(WebglContext*);
	void update(f32 dtSeconds);
	void render();
	void unload();
private:
    Renderer2d renderer;
};