Pyrogenesis trunk
Classes | Public Member Functions | Private Attributes | List of all members
CCanvas2D Class Reference

#include <Canvas2D.h>

Classes

class  Impl
 
class  ScopedScissor
 

Public Member Functions

 CCanvas2D (const uint32_t widthInPixels, const uint32_t heightInPixels, const float scale, Renderer::Backend::IDeviceCommandContext *deviceCommandContext)
 
 ~CCanvas2D ()
 
 CCanvas2D (const CCanvas2D &)=delete
 
CCanvas2Doperator= (const CCanvas2D &)=delete
 
 CCanvas2D (CCanvas2D &&)=delete
 
CCanvas2Doperator= (CCanvas2D &&)=delete
 
void DrawLine (const std::vector< CVector2D > &points, const float width, const CColor &color)
 Draws a line by the given points with the width and color. More...
 
void DrawRect (const CRect &rect, const CColor &color)
 Draws the rect filled with the color. More...
 
void DrawTexture (const CTexturePtr &texture, const CRect &destination, const CRect &source, const CColor &multiply, const CColor &add, const float grayscaleFactor)
 Draws a piece of the texture from the source rect into the destination rect. More...
 
void DrawTexture (const CTexturePtr &texture, const CRect &destination)
 A simpler version of the previous one, draws the texture into the destination rect without color modifications. More...
 
void DrawRotatedTexture (const CTexturePtr &texture, const CRect &destination, const CRect &source, const CColor &multiply, const CColor &add, const float grayscaleFactor, const CVector2D &origin, const float angle)
 A similar to the original one, draws the texture into the destination rect but rotates it first around the origin point by angle radians (a positive angle denotes a clockwise rotation). More...
 
void DrawText (CTextRenderer &textRenderer)
 Draws a text using canvas materials. More...
 
void PushScissor (const CRect &scissor)
 Adds the scissor rect to a scissor stack. More...
 
void PopScissor ()
 Removes the top scissor rect from a scissor stack. More...
 
void Flush ()
 Unbinds all bound resources and clears caches. More...
 

Private Attributes

std::unique_ptr< Implm
 

Constructor & Destructor Documentation

◆ CCanvas2D() [1/3]

CCanvas2D::CCanvas2D ( const uint32_t  widthInPixels,
const uint32_t  heightInPixels,
const float  scale,
Renderer::Backend::IDeviceCommandContext deviceCommandContext 
)

◆ ~CCanvas2D()

CCanvas2D::~CCanvas2D ( )

◆ CCanvas2D() [2/3]

CCanvas2D::CCanvas2D ( const CCanvas2D )
delete

◆ CCanvas2D() [3/3]

CCanvas2D::CCanvas2D ( CCanvas2D &&  )
delete

Member Function Documentation

◆ DrawLine()

void CCanvas2D::DrawLine ( const std::vector< CVector2D > &  points,
const float  width,
const CColor color 
)

Draws a line by the given points with the width and color.

◆ DrawRect()

void CCanvas2D::DrawRect ( const CRect rect,
const CColor color 
)

Draws the rect filled with the color.

◆ DrawRotatedTexture()

void CCanvas2D::DrawRotatedTexture ( const CTexturePtr texture,
const CRect destination,
const CRect source,
const CColor multiply,
const CColor add,
const float  grayscaleFactor,
const CVector2D origin,
const float  angle 
)

A similar to the original one, draws the texture into the destination rect but rotates it first around the origin point by angle radians (a positive angle denotes a clockwise rotation).

◆ DrawText()

void CCanvas2D::DrawText ( CTextRenderer textRenderer)

Draws a text using canvas materials.

◆ DrawTexture() [1/2]

void CCanvas2D::DrawTexture ( const CTexturePtr texture,
const CRect destination 
)

A simpler version of the previous one, draws the texture into the destination rect without color modifications.

◆ DrawTexture() [2/2]

void CCanvas2D::DrawTexture ( const CTexturePtr texture,
const CRect destination,
const CRect source,
const CColor multiply,
const CColor add,
const float  grayscaleFactor 
)

Draws a piece of the texture from the source rect into the destination rect.

The result color is set by the following formula: TEXTURE_COLOR * COLOR_MULTIPLY + COLOR_ADD The texture color is blended with its own grayscale version according to the grayscale factor.

◆ Flush()

void CCanvas2D::Flush ( )

Unbinds all bound resources and clears caches.

Frequent calls might affect performance. Useful to call a custom rendering code.

◆ operator=() [1/2]

CCanvas2D & CCanvas2D::operator= ( CCanvas2D &&  )
delete

◆ operator=() [2/2]

CCanvas2D & CCanvas2D::operator= ( const CCanvas2D )
delete

◆ PopScissor()

void CCanvas2D::PopScissor ( )

Removes the top scissor rect from a scissor stack.

The stack must not be empty.

◆ PushScissor()

void CCanvas2D::PushScissor ( const CRect scissor)

Adds the scissor rect to a scissor stack.

The only top scissor is applied. It's recommended to use as few nested scissors as possible.

Member Data Documentation

◆ m

std::unique_ptr<Impl> CCanvas2D::m
private

The documentation for this class was generated from the following files: