@@ -16,58 +16,17 @@ BasicState :: BasicState(Qor* engine):
16
16
m_pQor (engine),
17
17
m_pInput(engine->input ()),
18
18
m_pRoot(make_shared<Node>()),
19
+ m_pRTTRoot(make_shared<Node>()),
19
20
m_pPipeline(engine->pipeline ()),
20
- m_pResources(engine->resources ()),
21
- // m_pCanvas(make_shared<Canvas>(
22
- // engine->window()->size().x, engine->window()->size().y
23
- // )),
24
- m_pMenuGUI(make_shared<MenuGUI>(
25
- engine->session ()->profile(0 )->controller().get(),
26
- &m_MenuContext,
27
- &m_MainMenu,
28
- m_pPipeline->partitioner(),
29
- engine->window(),
30
- // m_pCanvas.get(),
31
- m_pResources,
32
- "PressStart2P-Regular.ttf",
33
- engine->window()->size().y / 24.0f,
34
- nullptr,
35
- 5
36
- ))
37
- // m_pMenuGUI(make_shared<MenuGUI>(
38
- // engine->session()->active_profile(0)->controller().get(),
39
- // &m_MenuContext,
40
- // &m_MainMenu,
41
- // m_pPipeline->partitioner(),
42
- // m_pCanvas.get(),
43
- // m_pResources,
44
- // "PRESS START 2P",
45
- // engine->window()->size().y / 30.0f,
46
- // nullptr,
47
- // 7,
48
- // 1.5f,
49
- // Canvas::LEFT,
50
- // 32.0f,
51
- // MenuGUI::F_BOX,
52
- // engine->window()
53
- // ))
21
+ m_pResources(engine->resources ())
54
22
{}
55
23
56
24
void BasicState :: preload()
57
25
{
58
26
m_pCamera = make_shared<Camera>(m_pQor->resources (), m_pQor->window ());
59
27
m_pRoot->add (m_pCamera->as_node ());
60
- m_pRoot->add (m_pMenuGUI);
61
- // m_pRoot->add(m_pCanvas);
62
-
63
- // m_pFont = m_pQor->resources()->cache_as<Font>("PressStart2P-Regular.ttf:30");
64
- // m_pText = make_shared<Text>(m_pFont);
65
- // m_pText->set("Hello World!\nAgain down here!\nHELLO?\nOK\nOK2\nReally long text here ok?");
66
- // auto text2 = make_shared<Text>(m_pFont);
67
- // text2->set("Testing");
68
- // m_pRoot->add(text2);
69
- // m_pText->position(glm::vec3(10.0f, 0.0f, 0.0f));
70
- // m_pRoot->add(m_pText);
28
+ m_pRTTCamera = make_shared<Camera>(m_pQor->resources (), m_pQor->window ());
29
+ m_pRTTRoot->add (m_pRTTCamera->as_node ());
71
30
}
72
31
73
32
BasicState :: ~BasicState ()
@@ -77,49 +36,51 @@ BasicState :: ~BasicState()
77
36
78
37
void BasicState :: enter()
79
38
{
80
- m_pPipeline->bg_color (Color::green ());
39
+ float sw = m_pQor->window ()->size ().x ;
40
+ float sh = m_pQor->window ()->size ().y ;
41
+
42
+ // m_pPipeline->bg_color(Color::green());
81
43
m_pCamera->ortho ();
44
+ m_pRTTCamera->ortho ();
82
45
m_pPipeline->winding (true );
46
+ m_pRenderBuffer = std::make_shared<RenderBuffer>(100 ,100 );
47
+
48
+ auto mat = make_shared<MeshMaterial>(" logo.png" , m_pQor->resources ());
49
+ auto mesh = make_shared<Mesh>(
50
+ make_shared<MeshGeometry>(Prefab::quad (vec2 (0 .0f , 0 .0f ), vec2 (sw, sh))),
51
+ vector<shared_ptr<IMeshModifier>>{
52
+ make_shared<Wrap>(Prefab::quad_wrap (vec2 (0 .0f ,1 .0f ), vec2 (1 .0f ,0 .0f )))
53
+ }, mat
54
+ );
55
+ m_pRTTRoot->add (mesh);
83
56
84
- m_MainMenu.options ().emplace_back (" OPTION 1" , []{
85
- });
86
- m_MainMenu.options ().emplace_back (" OPTION 2" , []{
87
- });
88
- m_MainMenu.options ().emplace_back (" OPTION 3" , []{
89
- });
90
- m_MenuContext.clear (&m_MainMenu);
91
- m_pRoot->add (m_pMenuGUI);
92
-
93
- // LOG("enter");
94
- // m_pRoot->add(Mesh::line(
95
- // vec3(100.0f, 100.0f, 0.0f), vec3(200.0f, 200.0f, 0.0f),
96
- // m_pResources->cache_as<Texture>("particle.png")
97
- // ));
57
+ mesh = make_shared<Mesh>(
58
+ make_shared<MeshGeometry>(Prefab::quad (vec2 (0 .0f , 0 .0f ), vec2 (sw, sh))),
59
+ vector<shared_ptr<IMeshModifier>>{
60
+ make_shared<Wrap>(Prefab::quad_wrap (vec2 (0 .0f ,1 .0f ), vec2 (1 .0f ,0 .0f )))
61
+ }, std::make_shared<MeshMaterial>(m_pRenderBuffer->texture ())
62
+ );
63
+ m_pRoot->add (mesh);
98
64
}
99
65
100
66
void BasicState :: logic(Freq::Time t)
101
67
{
102
68
if (m_pInput->key (SDLK_ESCAPE))
103
69
m_pQor->quit ();
104
70
105
- // float speed = 1000.0f * t.s();
106
-
107
- // if(m_pInput->key(SDLK_UP))
108
- // m_pCamera->move(glm::vec3(0.0f, -speed, 0.0f));
109
- // if(m_pInput->key(SDLK_DOWN))
110
- // m_pCamera->move(glm::vec3(0.0f, speed, 0.0f));
111
-
112
- // if(m_pInput->key(SDLK_LEFT))
113
- // m_pCamera->move(glm::vec3(-speed, 0.0f, 0.0f));
114
- // if(m_pInput->key(SDLK_RIGHT))
115
- // m_pCamera->move(glm::vec3(speed, 0.0f, 0.0f));
116
-
117
71
m_pRoot->logic (t);
118
72
}
119
73
120
74
void BasicState :: render() const
121
75
{
122
- // m_pPipeline->override_shader(PassType::NORMAL, m_Shader);
76
+ float sw = m_pQor->window ()->size ().x ;
77
+ float sh = m_pQor->window ()->size ().y ;
78
+
79
+ m_pRenderBuffer->push ();
80
+ m_pPipeline->render (m_pRTTRoot.get (), m_pRTTCamera.get ());
81
+ RenderBuffer::pop ();
82
+
83
+ glViewport (0 ,0 ,sw,sh);
123
84
m_pPipeline->render (m_pRoot.get (), m_pCamera.get ());
124
85
}
125
86
0 commit comments