| 296 | } |
| 297 | |
| 298 | void BeginSection::OnDrawOverlay(Canvas* canvas) |
| 299 | { |
| 300 | if (_shouldStart) { |
| 301 | Vector2i viewSize = canvas->ViewSize; |
| 302 | |
| 303 | auto* command = canvas->RentRenderCommand(); |
| 304 | if (command->GetMaterial().SetShader(ContentResolver::Get().GetShader(PrecompiledShader::Transition))) { |
| 305 | command->GetMaterial().ReserveUniformsDataMemory(); |
| 306 | command->GetGeometry().SetDrawParameters(GL_TRIANGLE_STRIP, 0, 4); |
| 307 | } |
| 308 | |
| 309 | command->GetMaterial().SetBlendingFactors(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
| 310 | |
| 311 | auto* instanceBlock = command->GetMaterial().UniformBlock(Material::InstanceBlockName); |
| 312 | instanceBlock->GetUniform(Material::TexRectUniformName)->SetFloatVector(Vector4f(1.0f, 0.0f, 1.0f, 0.0f).Data()); |
| 313 | instanceBlock->GetUniform(Material::SpriteSizeUniformName)->SetFloatVector(Vector2f(static_cast<float>(viewSize.X), static_cast<float>(viewSize.Y)).Data()); |
| 314 | instanceBlock->GetUniform(Material::ColorUniformName)->SetFloatVector(Colorf(0.0f, 0.0f, 0.0f, _transitionTime).Data()); |
| 315 | |
| 316 | command->SetTransformation(Matrix4x4f::Identity); |
| 317 | command->SetLayer(999); |
| 318 | |
| 319 | canvas->DrawRenderCommand(command); |
| 320 | } |
| 321 | } |
| 322 | |
| 323 | void BeginSection::OnTouchEvent(const nCine::TouchEvent& event, Vector2i viewSize) |
| 324 | { |
no test coverage detected