Free Electron
|
Drawing functions not specific to the graphics language. More...
#include <DrawCommon.h>
Public Member Functions | |
void | initialize (void) |
virtual void | setDrawMode (sp< DrawMode > spMode) |
Set rendering mode. More... | |
virtual sp< DrawMode > | drawMode (void) const |
Get rendering mode. More... | |
virtual void | pushDrawMode (sp< DrawMode > mode) |
Push rendering mode onto stack. More... | |
virtual sp< DrawMode > | popDrawMode (void) |
Pop rendering mode from stack. More... | |
virtual void | pushMatrixState (void) |
Push transform matrices. More... | |
virtual void | popMatrixState (void) |
Pop transform matrices. More... | |
virtual void | pushMatrix (MatrixMode a_mode, Real a_values[16]) |
push a new 4x4 matrix on a particular stack More... | |
virtual void | popMatrix (MatrixMode a_mode) |
pop the top 4x4 matrix from a particular stack More... | |
virtual void | unbindVertexArray (void) |
currently, sets vertex array to zero in OpenGL More... | |
virtual void | setBrightness (Real a_brightness) |
set additive lightening More... | |
virtual Real | brightness (void) |
get lightening More... | |
virtual void | setContrast (Real a_contrast) |
set multiplicitive light scaling More... | |
virtual Real | contrast (void) |
get light scaling More... | |
virtual void | setView (sp< ViewI > spViewI) |
Set current view. More... | |
virtual sp< ViewI > | view (void) const |
Get current view. More... | |
virtual void | drawCurve (const SpatialVector *vertex, const SpatialVector *normal, const Real *radius, U32 vertices, BWORD multicolor, const Color *color) |
Draw one curve. More... | |
virtual void | draw (cp< DrawableI > cpDrawableI, const Color *color) |
Draw DrawableI. More... | |
virtual void | draw (cp< DrawableI > cpDrawableI, const Color *color, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawTransformed (const SpatialTransform &transform, cp< DrawableI > cpDrawableI, const Color *color) |
virtual void | drawTransformed (const SpatialTransform &transform, cp< DrawableI > cpDrawableI, const Color *color, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawBox (const Box2 &box, const Color &color) |
Draw 2D box. More... | |
virtual void | drawBox (const Box2i &box, const Color &color) |
Draw 2D box with pixel adjustments. More... | |
virtual void | drawBox (const Box3 &box, const Color &color) |
Draw 3D box. More... | |
virtual void | drawCircle (const SpatialTransform &transform, const SpatialVector *scale, const Color &color) |
virtual void | drawSphere (const SpatialTransform &transform, const SpatialVector *scale, const Color &color) |
virtual void | drawCylinder (const SpatialTransform &transform, const SpatialVector *scale, Real baseScale, const Color &color, U32 slices) |
Draw a transformed cylinder or cone. More... | |
virtual void | drawCylinder (const SpatialVector &location1, const SpatialVector &location2, Real radius1, Real radius2, const Color &color, U32 slices) |
virtual void | drawCylinders (const SpatialTransform *transform, const SpatialVector *scale, const Real *baseScale, const U32 *slices, U32 cylinders, BWORD multicolor, const Color *color) |
virtual void | drawTransformedCylinders (const SpatialTransform &pretransform, const SpatialTransform *transform, const SpatialVector *scale, const Real *baseScale, const U32 *slices, U32 cylinders, BWORD multicolor, const Color *color) |
virtual void | drawArc (const SpatialTransform &transform, const SpatialVector *scale, Real startangle, Real endangle, const Color &color) |
virtual void | drawTransformedPoints (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, BWORD multicolor, const Color *color) |
virtual void | drawTransformedPoints (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, BWORD multicolor, const Color *color, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawTransformedLines (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, StripMode strip, BWORD multicolor, const Color *color) |
virtual void | drawTransformedLines (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, StripMode strip, BWORD multicolor, const Color *color, BWORD multiradius, const Real *radius, const Vector3i *element, U32 elementCount, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawTransformedCurve (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, const Real *radius, U32 vertices, BWORD multicolor, const Color *color) |
virtual void | drawTransformedTriangles (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, const Vector2 *texture, U32 vertices, StripMode strip, BWORD multicolor, const Color *color) |
virtual void | drawTransformedTriangles (const SpatialTransform &transform, const SpatialVector *scale, const SpatialVector *vertex, const SpatialVector *normal, const Vector2 *texture, U32 vertices, StripMode strip, BWORD multicolor, const Color *color, const Array< I32 > *vertexMap, const Array< I32 > *hullPointMap, const Array< Vector4i > *hullFacePoint, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawTransformedBox (const SpatialTransform &transform, const Box3 &box, const Color &color) |
virtual void | drawTransformedBoxes (const SpatialTransform *transform, const SpatialVector *scale, U32 boxes, BWORD multicolor, const Color *color) |
virtual void | drawAxes (Real scale) |
virtual void | drawTransformedAxes (const SpatialTransform &transform, Real scale) |
virtual void | drawMarker (Real radius, const Color &color) |
virtual void | drawTransformedMarker (const SpatialTransform &transform, Real radius, const Color &color) |
virtual BWORD | isDirect (void) const |
Returns TRUE is display is local and rendered directly. More... | |
virtual void | setDrawChain (sp< DrawI > a_spDrawI) |
Set next DrawI in a chain. More... | |
virtual sp< DrawI > | drawChain (void) |
virtual void | setTransform (const SpatialTransform &a_rTransform) |
Impose a spatial translation. More... | |
virtual void | flush (void) |
Called once after each frame. More... | |
virtual void | flushLive (void) |
Pass on current input data as is. More... | |
virtual void | clearInput (void) |
Reset the current input queue. More... | |
virtual BWORD | empty (void) const |
Returns TRUE if the current input queue is empty. More... | |
virtual sp< FontI > | font (void) |
Get current font. More... | |
virtual Real | multiplication (void) |
Select the GL-specific index/handle. More... | |
virtual void | drawPoints (const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, BWORD multicolor, const Color *color) |
Draw points vertex[vertices]. More... | |
virtual void | drawPoints (const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, BWORD multicolor, const Color *color, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawLines (const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, StripMode strip, BWORD multicolor, const Color *color) |
Draw lines. More... | |
virtual void | drawLines (const SpatialVector *vertex, const SpatialVector *normal, U32 vertices, StripMode strip, BWORD multicolor, const Color *color, BWORD multiradius, const Real *radius, const Vector3i *element, U32 elementCount, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawTriangles (const SpatialVector *vertex, const SpatialVector *normal, const Vector2 *texture, U32 vertices, StripMode strip, BWORD multicolor, const Color *color) |
Draw triangles. More... | |
virtual void | drawTriangles (const SpatialVector *vertex, const SpatialVector *normal, const Vector2 *texture, U32 vertices, StripMode strip, BWORD multicolor, const Color *color, const Array< I32 > *vertexMap, const Array< I32 > *hullPointMap, const Array< Vector4i > *hullFacePoint, sp< DrawBufferI > spDrawBuffer) |
virtual void | drawRectangles (const SpatialVector *vertex, U32 vertices, BWORD multicolor, const Color *color) |
Draw rectangles. More... | |
virtual void | drawAlignedText (const SpatialVector &location, const String text, const Color &color) |
Draw screen-aligned single color text. More... | |
virtual void | drawRaster (sp< ImageI > spImageI, const SpatialVector &location) |
virtual sp< DrawBufferI > | createBuffer (void) |
Public Member Functions inherited from fe::Initialized | |
void | initializeAll (void) |
void | setActive (bool a_active) |
Public Member Functions inherited from fe::Component | |
const String & | name (void) const |
Return the components chosen name. More... | |
const String | verboseName (void) const |
Return the annotated chosen name. More... | |
void | setName (const String &name) |
Rename the component to anything you want. More... | |
hp< Registry > | registry (void) const |
Get the Registry that created this component. More... | |
void | adjoin (sp< Component > spComponent) |
Tie this component's lifetime to another. More... | |
sp< Component > | create (const String &implementation, BWORD quiet=FALSE) const |
Convienience function to registry()->create() More... | |
void | disjoin (void) |
Untie component from Hub, if connected. More... | |
String | factoryName (void) |
void | setLibrary (sp< Library > spLibrary) |
Store a reference to the library used to instantiate this component. More... | |
sp< Library > | library (void) |
Get the library that created the component. More... | |
void | setFactoryIndex (I32 a_factoryIndex) |
Set the library's factory index. More... | |
I32 | factoryIndex (void) |
Get the library's factory index. More... | |
void | setSingleton (BWORD set) |
Specify whether component is a singleton. More... | |
BWORD | isSingleton (void) |
Return whether component is a singleton. More... | |
virtual void | acquire (void) |
Specialized reference increment. More... | |
virtual void | release (void) |
Specialized reference decrement. More... | |
Public Member Functions inherited from fe::Handled< Component > | |
const hp< Component > & | getHandle (void) const |
Get a safe handle to this object. More... | |
Public Member Functions inherited from fe::Protectable | |
virtual I32 | protection (void) const |
virtual void | protect (void) |
virtual void | unprotect (void) |
virtual Protectable * | clone (Protectable *pInstance=NULL) |
Public Member Functions inherited from fe::Counted | |
virtual void | acquire (int &rCount) |
Increment the reference count (and get the count) More... | |
virtual void | abandon (void) |
Decrement the reference count. More... | |
int | count (void) const |
Return the count of references. More... | |
void | setName (const String &) |
void | trackReference (void *pReference, String what) |
void | untrackReference (void *pReference) |
void | registerRegion (void *pT, U32 bytes) |
Protected Member Functions | |
DrawMode::DrawStyle | drawStyle (void) const |
sp< ImageI > | textureImage (void) const |
I32 | textureImageID (void) const |
Real | pointSize (void) const |
Real | lineWidth (void) const |
BWORD | antialias (void) const |
BWORD | frontfaceCulling (void) const |
BWORD | backfaceCulling (void) const |
BWORD | twoSidedLighting (void) const |
BWORD | zBuffering (void) const |
BWORD | isLit (void) const |
BWORD | isUvSpace (void) const |
virtual void | createDefaultView (void) |
Protected Member Functions inherited from fe::Initialized | |
void | addInitializer (InitializeFunction function) |
Protected Member Functions inherited from fe::Handled< Component > | |
void | abandonHandle (void) |
Protected Member Functions inherited from fe::Counted | |
int | releaseInternal (void) |
Decrement the reference count. More... | |
void | suppressReport (void) |
Protected Attributes | |
sp< ViewI > | m_spDefaultView |
Real | m_brightness |
Real | m_contrast |
Private Member Functions | |
void | drawOrthogonalCircles (const SpatialTransform &transform, const SpatialVector *scale, const Color &color) |
void | drawIcosahedron (const SpatialTransform &transform, const SpatialVector *scale, const Color &color) |
void | createCircle (void) |
void | createIcosahedron (void) |
void | createCylinders (void) |
void | destroyCylinders (void) |
Private Attributes | |
SpatialVector | m_circleVertex [FE_DC_CIRCLE_SIDES+2] |
SpatialVector | m_circleNormal [FE_DC_CIRCLE_SIDES+2] |
SpatialVector | m_transformBuffer [FE_DC_BUFFER_VERTICES] |
SpatialVector | m_normalBuffer [FE_DC_BUFFER_VERTICES] |
SpatialVector | m_icosahedronVertex [FE_DC_ICOSAHEDRON_VERTICES] |
SpatialVector | m_icosahedronNormal [FE_DC_ICOSAHEDRON_VERTICES] |
Vector2 | m_icosahedronTexture [FE_DC_ICOSAHEDRON_VERTICES] |
SpatialVector * | m_pCylinderVertex [FE_DC_CYLINDER_MAXSLICES-2] |
SpatialVector * | m_pCylinderNormal [FE_DC_CYLINDER_MAXSLICES-2] |
Vector2 * | m_pCylinderTexture [FE_DC_CYLINDER_MAXSLICES-2] |
sp< DrawMode > | m_spDefaultMode |
sp< DrawMode > | m_spDrawMode |
sp< ViewI > | m_spViewI |
std::vector< sp< DrawMode > > | m_drawStack |
Additional Inherited Members | |
Public Types inherited from fe::ext::DrawI | |
enum | StripMode { e_discrete, e_strip, e_fan, e_triple } |
Format of vertices for tri-stripping. More... | |
enum | MatrixMode { e_modelview, e_projection, e_texture, e_color } |
Static Public Member Functions inherited from fe::Counted | |
static String | reportTracker (void) |
static U32 | trackerCount (void) |
Protected Types inherited from fe::Initialized | |
typedef void(* | InitializeFunction) (Initialized *) |
Related Functions inherited from fe::Component | |
FE_DL_EXPORT void FE_CDECL | checkUnload (sp< Library > &pLibrary, Component *pComponent=NULL) |
Delete the component and unload libraries where appropriate. More... | |
Drawing functions not specific to the graphics language.
Using setDrawMode(NULL) activates the default mode, which you can get with drawMode() and change. The default mode is also the initial mode.
|
inlinevirtual |
get lightening
Implements fe::ext::DrawI.
|
inlinevirtual |
|
inlinevirtual |
get light scaling
Implements fe::ext::DrawI.
Draw DrawableI.
If color is NULL, the surface is expected to use its own color data.
Implements fe::ext::DrawI.
References draw().
Referenced by draw(), and fe::ext::DrawCached::multiplication().
|
inlinevirtual |
Draw screen-aligned single color text.
Text is drawn at the given location, transformed and projected by the current state of the underlying graphics system.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, fe::ext::DrawOpenGL, and fe::ext::DrawMaya.
Draw 2D box.
Implements fe::ext::DrawI.
Draw 2D box with pixel adjustments.
Implements fe::ext::DrawI.
Draw 3D box.
Implements fe::ext::DrawI.
|
virtual |
Draw one curve.
Uses vertices and colors as explained in drawPoints.
This is similar to drawLines in strip mode and with a radius property.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::TerminalDraw, and fe::ext::GodotDraw.
|
virtual |
Draw a transformed cylinder or cone.
The baseScale is a additional scale at the base of the cylinder. For a cone, specify a baseScale of 0.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached.
Referenced by fe::ext::DrawCached::multiplication().
|
virtual |
Draw lines.
Uses vertices and colors as explained in drawPoints.
If strip is DrawI::e_strip, vertices are contiguous with vertices-1 segments, else vertices are independent pairs with vertices/2 segments.
Implements fe::ext::DrawI.
Referenced by fe::ext::DrawMaya::font(), fe::ext::DrawOpenGL::font(), and fe::ext::DrawCached::multiplication().
Get rendering mode.
Implements fe::ext::DrawI.
|
virtual |
Draw points vertex[vertices].
The array vertex is assumed to contain vertices elements. If multicolor, points are independently colored with color[vertices], else only color[0] is used. If color is NULL, no colors are specified, so the current color state is left in effect.
Implements fe::ext::DrawI.
Referenced by fe::ext::DrawMaya::font(), fe::ext::DrawOpenGL::font(), and fe::ext::DrawCached::multiplication().
|
inlinevirtual |
Draw rectangles.
Uses vertices and colors as explained in drawPoints.
Rectangles are never stripped.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, fe::ext::DrawOpenGL, and fe::ext::DrawMaya.
|
virtual |
Draw triangles.
Uses vertices and colors as explained in drawPoints.
Normals are treated the same as vertices. If strip is DrawI::e_strip, vertices are tri-striped with vertices-2 triangles, else vertices are independent triplets with vertices/3 triangles.
Implements fe::ext::DrawI.
Referenced by fe::ext::DrawMaya::font(), fe::ext::DrawOpenGL::font(), and fe::ext::DrawCached::multiplication().
|
inlinevirtual |
Returns TRUE if the current input queue is empty.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached.
|
inlinevirtual |
Called once after each frame.
This shifts data access to freeze the current input buffer and prepare a new empty input buffer.
The resulting output buffer is sent on to the next DrawI interface.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, fe::ext::DrawOpenGL, fe::ext::DrawHydra, and fe::ext::DrawThreaded.
|
inlinevirtual |
Pass on current input data as is.
This sends the current input to the next DrawI interface without shifting buffers. The same input can still be written to afterwards.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached.
Get current font.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, fe::ext::DrawOpenGL, and fe::ext::DrawMaya.
|
inlinevirtual |
Returns TRUE is display is local and rendered directly.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, and fe::ext::DrawOpenGL.
|
inlinevirtual |
Select the GL-specific index/handle.
An index of 0 indicates no font. upscaling preference, such as for high DPI
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached, fe::ext::DrawOpenGL, and fe::ext::DrawMaya.
Pop rendering mode from stack.
Implements fe::ext::DrawI.
|
inlinevirtual |
pop the top 4x4 matrix from a particular stack
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawOpenGL.
|
inlinevirtual |
Push rendering mode onto stack.
Implements fe::ext::DrawI.
|
inlinevirtual |
push a new 4x4 matrix on a particular stack
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawOpenGL.
|
inlinevirtual |
|
inlinevirtual |
set additive lightening
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawOpenGL.
Referenced by fe::ext::DrawOpenGL::setBrightness().
|
inlinevirtual |
set multiplicitive light scaling
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawOpenGL.
Referenced by fe::ext::DrawOpenGL::setContrast().
Set next DrawI in a chain.
If this DrawI is designed to pass drawing commands to another DrawI, such as for conversion or caching, this commands specifies that next component.
Any implementation may ignore this request.
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawCached.
|
inlinevirtual |
Impose a spatial translation.
If supported, this adjusts the output in an implementation-specific manner.
Any implementation may ignore this request or just use part of the transform, such as translation only.
Implements fe::ext::DrawI.
Set current view.
Implements fe::ext::DrawI.
|
inlinevirtual |
currently, sets vertex array to zero in OpenGL
Implements fe::ext::DrawI.
Reimplemented in fe::ext::DrawOpenGL.
Get current view.
Implements fe::ext::DrawI.