Browse Source

Moved several projects to Input V2.

undefined
Benjamin ‘Touky’ Huet Sam Hocevar <sam@hocevar.net> 11 years ago
parent
commit
b11e4b8f8c
1 changed files with 39 additions and 16 deletions
  1. +39
    -16
      demos/tutorial/12_voronoi.cpp

+ 39
- 16
demos/tutorial/12_voronoi.cpp View File

@@ -25,6 +25,18 @@ LOLFX_RESOURCE_DECLARE(12_voronoi_distance);
LOLFX_RESOURCE_DECLARE(12_distance);
LOLFX_RESOURCE_DECLARE(12_texture_to_screen);

enum
{
KEY_ESC,
KEY_PUSH,
KEY_POP,
KEY_F1,
KEY_F2,
KEY_F3,

KEY_MAX
};

enum FboType
{
SrcVoronoiFbo,
@@ -51,6 +63,13 @@ public:
m_time = .0f;
m_timer = -1.0f;
mode = 0;
m_controller = new Controller("Default", KEY_MAX, 0);
m_controller->GetKey(KEY_ESC).Bind("Keyboard", "Escape");
m_controller->GetKey(KEY_PUSH).Bind("Keyboard", "p");
m_controller->GetKey(KEY_POP).Bind("Keyboard", "o");
m_controller->GetKey(KEY_F1).Bind("Keyboard", "F1");
m_controller->GetKey(KEY_F2).Bind("Keyboard", "F2");
m_controller->GetKey(KEY_F3).Bind("Keyboard", "F3");
}

virtual void TickGame(float seconds)
@@ -59,17 +78,17 @@ public:

{
//Shutdown logic
if (Input::WasReleased(Key::Escape))
if (m_controller->GetKey(KEY_ESC).IsReleased())
Ticker::Shutdown();
}

m_time += seconds;
m_hotspot = 0.4f * vec3(lol::sin(m_time * 4.f) + lol::cos(m_time * 5.3f),
lol::sin(m_time * 5.7f) + lol::cos(m_time * 4.4f),
lol::sin(m_time * 5.f));
m_color = 0.25f * vec3(1.1f + lol::sin(m_time * 2.5f + 1.f),
1.1f + lol::sin(m_time * 2.8f + 1.3f),
1.1f + lol::sin(m_time * 2.7f));
m_hotspot = 0.4f * vec3((float)lol::sin(m_time * 4.0) + (float)lol::cos(m_time * 5.3),
(float)lol::sin(m_time * 5.7) + (float)lol::cos(m_time * 4.4),
(float)lol::sin(m_time * 5.0));
m_color = 0.25f * vec3(1.1f + (float)lol::sin(m_time * 2.5 + 1.0),
1.1f + (float)lol::sin(m_time * 2.8 + 1.3),
1.1f + (float)lol::sin(m_time * 2.7));
/* Saturate dot color */
float x = std::max(m_color.x, std::max(m_color.y, m_color.z));
m_color /= x;
@@ -150,16 +169,16 @@ public:

{
//Shutdown logic
if (Input::WasReleased(Key::O))
if (m_controller->GetKey(KEY_POP).IsReleased())
voronoi_points.Pop();
else if (Input::WasReleased(Key::P))
else if (m_controller->GetKey(KEY_PUSH).IsReleased())
voronoi_points.Push(vec3(rand<float>(512.f), rand<float>(512.f), .0f),
vec2(64.f + rand<float>(64.f), 64.f + rand<float>(64.f)));
else if (Input::WasReleased(Key::F1))
else if (m_controller->GetKey(KEY_F1).IsReleased())
m_cur_fbo = SrcVoronoiFbo;
else if (Input::WasReleased(Key::F2))
else if (m_controller->GetKey(KEY_F2).IsReleased())
m_cur_fbo = VoronoiFbo;
else if (Input::WasReleased(Key::F3))
else if (m_controller->GetKey(KEY_F3).IsReleased())
{
voronoi_points.Empty();
if (mode == 0)
@@ -185,10 +204,13 @@ public:
int maxi = 6;
for (int i = 0; i < maxi; ++i)
{
voronoi_points.Push(vec3(256.f) + 196.f * vec3(lol::cos(m_time + i * 2.f * F_PI / maxi), lol::sin(m_time + i * 2.f * F_PI / maxi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 128.f * vec3(lol::cos(-m_time + i * 2.f * F_PI / maxi), lol::sin(-m_time + i * 2.f * F_PI / maxi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 64.f * vec3(lol::cos(m_time + i * 2.f * F_PI / maxi), lol::sin(m_time + i * 2.f * F_PI / maxi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 32.f * vec3(lol::cos(-m_time + i * 2.f * F_PI / maxi), lol::sin(-m_time + i * 2.f * F_PI / maxi), .0f), vec2(.0f));
float mi = (float)maxi;
float j = (float)i;
float f_time = (float)m_time;
voronoi_points.Push(vec3(256.f) + 196.f * vec3(lol::cos( f_time + j * 2.0 * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 128.f * vec3(lol::cos(-f_time + j * 2.0 * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 64.f * vec3(lol::cos( f_time + j * 2.0 * F_PI / mi), lol::sin( f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
voronoi_points.Push(vec3(256.f) + 32.f * vec3(lol::cos(-f_time + j * 2.0 * F_PI / mi), lol::sin(-f_time + j * 2.f * F_PI / mi), .0f), vec2(.0f));
}
voronoi_points.Push(vec3(256.f), vec2(.0f));
}
@@ -371,6 +393,7 @@ public:
}

private:
Controller* m_controller;
Array<vec3, vec2> voronoi_points;
Array<vec2> m_vertices;
Shader *m_screen_shader;


Loading…
Cancel
Save