Pioneer
GuiTexturedQuad.h
Go to the documentation of this file.
1 // Copyright © 2008-2021 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _GUITEXTURE_H
5 #define _GUITEXTURE_H
6 
7 #include "Color.h"
8 #include "RefCounted.h"
9 #include "graphics/Drawables.h"
10 #include "graphics/Texture.h"
11 
12 namespace Graphics {
13  class Renderer;
14  class Material;
15  class VertexBuffer;
16 } // namespace Graphics
17 
18 namespace Gui {
19 
20  // a textured quad with reversed winding for the UI
21  // XXX possibly doesn't belong in Gui::, but its knowledge of reverse-winding
22  // makes it seem odd for Graphics::Drawables
23  class TexturedQuad {
24  public:
26  m_texture(RefCountedPtr<Graphics::Texture>(texture)) {}
27  virtual ~TexturedQuad() {}
28  virtual void Draw(Graphics::Renderer *r) { Draw(r, vector2f(0.0f), vector2f(1.0f)); }
29  void Draw(Graphics::Renderer *r, const Color &tint) { Draw(r, vector2f(0.0f), vector2f(1.0f), tint); }
30  void Draw(Graphics::Renderer *r, const vector2f &pos, const vector2f &size, const Color &tint = Color::WHITE) { Draw(r, pos, size, vector2f(0.0f), m_texture->GetDescriptor().texSize, tint); }
31  void Draw(Graphics::Renderer *r, const vector2f &pos, const vector2f &size, const vector2f &texPos, const vector2f &texSize, const Color &tint = Color::WHITE);
32 
33  const Graphics::Texture *GetTexture() const { return m_texture.Get(); }
34 
35  private:
37  std::unique_ptr<Graphics::Material> m_material;
39  };
40 
41 } // namespace Gui
42 
43 #endif
Definition: Renderer.h:39
Definition: Texture.h:106
Definition: GuiTexturedQuad.h:23
const Graphics::Texture * GetTexture() const
Definition: GuiTexturedQuad.h:33
void Draw(Graphics::Renderer *r, const Color &tint)
Definition: GuiTexturedQuad.h:29
TexturedQuad(Graphics::Texture *texture)
Definition: GuiTexturedQuad.h:25
virtual ~TexturedQuad()
Definition: GuiTexturedQuad.h:27
virtual void Draw(Graphics::Renderer *r)
Definition: GuiTexturedQuad.h:28
void Draw(Graphics::Renderer *r, const vector2f &pos, const vector2f &size, const Color &tint=Color::WHITE)
Definition: GuiTexturedQuad.h:30
Definition: RefCounted.h:36
T * Get() const
Definition: SmartPtr.h:37
Definition: Background.h:13
Definition: Gui.cpp:10
Definition: Color.h:66
static const Color4ub WHITE
Definition: Color.h:141
vector2< float > vector2f
Definition: vector2.h:126