Geometry.cpp 1019 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "../../Include/RmlUi/Core/Geometry.h"
  2. #include "RenderManagerAccess.h"
  3. namespace Rml {
  4. Geometry::Geometry(RenderManager* render_manager, StableVectorIndex resource_handle) : UniqueRenderResource(render_manager, resource_handle) {}
  5. void Geometry::Render(Vector2f translation, Texture texture, const CompiledShader& shader) const
  6. {
  7. if (resource_handle == StableVectorIndex::Invalid)
  8. return;
  9. translation = translation.Round();
  10. RenderManagerAccess::Render(render_manager, *this, translation, texture, shader);
  11. }
  12. Mesh Geometry::Release(ReleaseMode mode)
  13. {
  14. if (resource_handle == StableVectorIndex::Invalid)
  15. return Mesh();
  16. Mesh mesh = RenderManagerAccess::ReleaseResource(render_manager, *this);
  17. Clear();
  18. if (mode == ReleaseMode::ClearMesh)
  19. {
  20. mesh.vertices.clear();
  21. mesh.indices.clear();
  22. }
  23. return mesh;
  24. }
  25. const Mesh& Geometry::GetMesh() const
  26. {
  27. RMLUI_ASSERT(resource_handle != StableVectorIndex::Invalid);
  28. return RenderManagerAccess::GetMesh(render_manager, *this);
  29. }
  30. } // namespace Rml