Blamite Game Engine - blam!  00296.01.12.21.0102.blamite
The core library for the Blamite Game Engine.
render_stack.h File Reference
#include <vector>
#include <string>
#include <d2d1_1.h>
#include <dwrite.h>
#include <Strings/components/utils/saferelease/saferelease.h>
#include "res/resource.h"
#include "components/content/fonts/fonts.h"

Go to the source code of this file.

Classes

class  BlamRendering::RenderStack::StackObjectBase
 Base class for all render stack objects. More...
 
class  BlamRendering::RenderStack::ImGUIObject
 Specialized class for rendering ImGUI using the render stack. More...
 
class  BlamRendering::RenderStack::Rectangle
 Class containing data for a Rectangle object. More...
 
class  BlamRendering::RenderStack::RoundedRectangle
 Class containing data for a Rounded Rectangle object. More...
 
class  BlamRendering::RenderStack::Ellipse
 Class containing data for an Ellipse object. More...
 
class  BlamRendering::RenderStack::Bitmap
 Class containing data for a Bitmap object. More...
 
class  BlamRendering::RenderStack::Line
 Class containing data for a Line object. More...
 
class  BlamRendering::RenderStack::DWText
 Class containing data for a text object using DirectWrite. More...
 
class  BlamRendering::RenderStack::StackGroup
 Unfinished class. More...
 
class  BlamRendering::RenderStack::BitmapText
 Class representing text drawn using a Bitmap-based engine font. More...
 
class  BlamRendering::RenderStack::Text
 Class used to wrap around BitmapText and DWText, making the usage of both of them directly unnecessary. More...
 

Namespaces

 BlamRendering
 Namespace for things relating to rendering.
 
 BlamRendering::RenderStack
 Namespace containing things relating to the Render Stack.
 

Macros

#define STACKTYPE_GENERIC   StackType::Generic
 
#define STACKTYPE_IMGUI   StackType::ImGUI
 
#define STACKTYPE_RECT   StackType::ST_Rectangle
 
#define STACKTYPE_ROUNDED_RECT   StackType::RoundedRect
 
#define STACKTYPE_DWTEXT   StackType::DWText
 
#define STACKTYPE_ELLIPSE   StackType::ST_Ellipse
 
#define STACKTYPE_LINE   StackType::Line
 
#define STACKTYPE_BITMAP   StackType::Bitmap
 
#define STACKTYPE_GEOMETRY   StackType::Geometry
 
#define STACKTYPE_GLYPHRUN   StackType::GlyphRun
 
#define STACKTYPE_FILLEDMESH   StackType::FilledMesh
 
#define STACKTYPE_BITMAP_TEXT   StackType::BitmapText
 
#define STACKTYPE_FPS_COUNTER   StackType::FPSCounter
 
#define STACKTYPE_CONSOLE   StackType::Console
 
#define STACKTYPE_STATS   StackType::Stats
 
#define STACKTYPE_DEBUG_MENU   StackType::DebugMenu
 
#define STACKTYPE_TEXT   StackType::Text
 
#define DRAWMODE_FILL   StackItemDrawMode::Fill
 
#define DRAWMODE_OUTLINE   StackItemDrawMode::Outline
 
#define DRAWMODE_BOTH   StackItemDrawMode::Both
 
#define DEFAULT_DRAWMODE   DRAWMODE_OUTLINE
 
#define BLAM
 
#define AREA_DEBUG_THICKNESS   2
 

Enumerations

enum  StackType {
  Generic, ImGUI, ST_Rectangle, RoundedRect,
  DWText, ST_Ellipse, Line, Bitmap,
  Geometry, GlyphRun, FilledMesh, BitmapText,
  Text, FPSCounter, Console, Stats,
  DebugMenu
}
 Enumerator to determine the type of render stack item. More...
 
enum  StackItemDrawMode { Fill, Outline, Both }
 Enumerator to specify the stack item draw mode. More...
 

Functions

BLAM int BlamRendering::RenderStack::AddToStack (std::string id, StackObjectBase *object)
 Adds an item to the render stack. More...
 
BLAM void BlamRendering::RenderStack::RemoveFromStack (std::string id)
 Removes an item from the render stack. More...
 
BLAM void BlamRendering::RenderStack::RemoveFromStack (int index)
 Removes an item from the render stack. More...
 
BLAM StackObjectBaseBlamRendering::RenderStack::GetStackItem (std::string id)
 Retrieves an item from the render stack. More...
 
BLAM bool BlamRendering::RenderStack::ContainsImGUIObject ()
 Determines whether or not an ImGUI stack object has been added. More...
 
BLAM void BlamRendering::RenderStack::Cleanup ()
 Cleans up any render stack data. More...
 
BLAM std::vector< StackObjectBase * > * BlamRendering::RenderStack::GetStack ()
 Retrieves the render stack contents. More...
 
BLAM std::string BlamRendering::RenderStack::GetStackTypeLabel (StackType type)
 Retrieves a string representation of the specified stack type. More...
 
BLAM std::string BlamRendering::RenderStack::GetDrawModeLabel (StackItemDrawMode type)
 Retrieves a string representation of the specified drawing mode. More...
 
BLAM std::vector< StackTypeBlamRendering::RenderStack::GetStackTypesList ()
 Retrieves a list of all available stack types. More...
 
BLAM std::vector< StackItemDrawModeBlamRendering::RenderStack::GetDrawModesList ()
 Retrieves a list of all available drawing modes. More...
 

Macro Definition Documentation

◆ AREA_DEBUG_THICKNESS

#define AREA_DEBUG_THICKNESS   2

◆ BLAM

#define BLAM

◆ DEFAULT_DRAWMODE

#define DEFAULT_DRAWMODE   DRAWMODE_OUTLINE

◆ DRAWMODE_BOTH

#define DRAWMODE_BOTH   StackItemDrawMode::Both

◆ DRAWMODE_FILL

#define DRAWMODE_FILL   StackItemDrawMode::Fill

◆ DRAWMODE_OUTLINE

#define DRAWMODE_OUTLINE   StackItemDrawMode::Outline

◆ STACKTYPE_BITMAP

#define STACKTYPE_BITMAP   StackType::Bitmap

◆ STACKTYPE_BITMAP_TEXT

#define STACKTYPE_BITMAP_TEXT   StackType::BitmapText

◆ STACKTYPE_CONSOLE

#define STACKTYPE_CONSOLE   StackType::Console

◆ STACKTYPE_DEBUG_MENU

#define STACKTYPE_DEBUG_MENU   StackType::DebugMenu

◆ STACKTYPE_DWTEXT

#define STACKTYPE_DWTEXT   StackType::DWText

◆ STACKTYPE_ELLIPSE

#define STACKTYPE_ELLIPSE   StackType::ST_Ellipse

◆ STACKTYPE_FILLEDMESH

#define STACKTYPE_FILLEDMESH   StackType::FilledMesh

◆ STACKTYPE_FPS_COUNTER

#define STACKTYPE_FPS_COUNTER   StackType::FPSCounter

◆ STACKTYPE_GENERIC

#define STACKTYPE_GENERIC   StackType::Generic

◆ STACKTYPE_GEOMETRY

#define STACKTYPE_GEOMETRY   StackType::Geometry

◆ STACKTYPE_GLYPHRUN

#define STACKTYPE_GLYPHRUN   StackType::GlyphRun

◆ STACKTYPE_IMGUI

#define STACKTYPE_IMGUI   StackType::ImGUI

◆ STACKTYPE_LINE

#define STACKTYPE_LINE   StackType::Line

◆ STACKTYPE_RECT

#define STACKTYPE_RECT   StackType::ST_Rectangle

◆ STACKTYPE_ROUNDED_RECT

#define STACKTYPE_ROUNDED_RECT   StackType::RoundedRect

◆ STACKTYPE_STATS

#define STACKTYPE_STATS   StackType::Stats

◆ STACKTYPE_TEXT

#define STACKTYPE_TEXT   StackType::Text

Enumeration Type Documentation

◆ StackItemDrawMode

Enumerator to specify the stack item draw mode.

Enumerator
Fill 

The item will be drawn as a fill with no outline.

Outline 

The item will be drawn as an outline, with no fill color.

Both 

The item will have both a fill and outline drawn.

◆ StackType

enum StackType

Enumerator to determine the type of render stack item.

Enumerator
Generic 

Generic stack type - should probably not be used.

ImGUI 

Specialized stack type to wrap ImGUI.

ST_Rectangle 

Direct2D Rectangle.

RoundedRect 

Direct2D Rounded Rectangle.

DWText 

DirectWrite Text, does not utilize our font system - probably dont use this.

ST_Ellipse 

Direct2D Ellipse.

Line 

Direct2D Line.

Bitmap 

Direct2D Bitmap.

Geometry 

Direct2D Geometry (NYI)

GlyphRun 

Direct2D Glyph Run (NYI)

FilledMesh 

Direct2D Filled Mesh (NYI)

BitmapText 

Bitmap-based text, uses Blamite font system.

Text 

Master text object that wraps around both BitmapText and DWText.

FPSCounter 

FPS Counter widget.

Console 

Console widget.

Stats 

Stats widget.

DebugMenu 

Debug menu.