42 #define GL_STATE_UPDATE
63 glViewport(x, y, width, height);
127 glGetFloatv(GL_PROJECTION_MATRIX, m.
GetData());
134 glGetDoublev(GL_MODELVIEW_MATRIX, m);
139 glGetDoublev(GL_PROJECTION_MATRIX, m);
144 glRotated(angle, x, y, z);
152 glRotatef(angle, x, y, z);
176 glTranslated(x, y, z);
184 glTranslatef(x, y, z);
192 GLdouble bottom, GLdouble top,
193 GLdouble nearVal, GLdouble farVal)
195 glOrtho(left, right, bottom, top, nearVal, farVal);
198 GLdouble zNear, GLdouble zFar)
200 gluPerspective(fovy, aspect, zNear, zFar);
228 LOG_POST(
Error <<
"Attribute stack underflow - no state to pop");
247 #ifdef GL_STATE_UPDATE
256 LOG_POST(
Error <<
"CGlRender::Disable() called between Begin() and End()");
259 #ifdef GL_STATE_UPDATE
269 LOG_POST(
Error <<
"CGlRender::LineWidth() called between Begin() and End()");
272 #ifdef GL_STATE_UPDATE
281 LOG_POST(
Error <<
"CGlRender::PointSize() called between Begin() and End()");
284 #ifdef GL_STATE_UPDATE
293 LOG_POST(
Error <<
"CGlRender::ShadeModel() called between Begin() and End()");
296 #ifdef GL_STATE_UPDATE
304 GLsizei width, GLsizei height)
307 LOG_POST(
Error <<
"CGlRender::ShadeModel() called between Begin() and End()");
310 #ifdef GL_STATE_UPDATE
311 glScissor(x,y,width,height);
323 LOG_POST(
Error <<
"CGlRender::ColorMask() called between Begin() and End()");
326 #ifdef GL_STATE_UPDATE
327 glColorMask(red, green, blue, alpha);
335 LOG_POST(
Error <<
"CGlRender::PolygonMode() called between Begin() and End()");
338 #ifdef GL_STATE_UPDATE
339 glPolygonMode(face,
mode);
347 LOG_POST(
Error <<
"CGlRender::LineStipple() called between Begin() and End()");
350 #ifdef GL_STATE_UPDATE
351 glLineStipple(factor, pattern);
359 LOG_POST(
Error <<
"CGlRender::PolygonStipple() called between Begin() and End()");
362 #ifdef GL_STATE_UPDATE
363 glPolygonStipple(
mask);
371 LOG_POST(
Error <<
"CGlRender::BlendFunc() called between Begin() and End()");
374 #ifdef GL_STATE_UPDATE
375 glBlendFunc(sfactor, dfactor);
383 glTexEnvi(target, pname, param);
387 GLenum srcAlpha, GLenum dstAlpha)
390 LOG_POST(
Error <<
"CGlRender::BlendFuncSeparate() called between Begin() and End()");
393 #ifdef GL_STATE_UPDATE
403 LOG_POST(
Error <<
"CGlRender::BlendColor() called between Begin() and End()");
406 #ifdef GL_STATE_UPDATE
417 LOG_POST(
Error <<
"CGlRender::ScaleInvarient() called between Begin() and End()");
425 LOG_POST(
Error <<
"CGlRender::ScaleFactor() called between Begin() and End()");
433 LOG_POST(
Error <<
"CGlRender::LineJoinStyle() called between Begin() and End()");
441 LOG_POST(
Error <<
"CGlRender::LineCapStyle() called between Begin() and End()");
449 LOG_POST(
Error <<
"CGlRender::PdfShadeStyle() called between Begin() and End()");
456 glHint(target,
mode);
461 glUseProgram(program);
466 glHint(target,
mode);
579 LOG_POST(
Error <<
"Unable to write text - must call BeginText() first");
631 glHint(target,
mode);
650 GLsizei width, GLsizei height)
652 glScissor(x,y,width,height);
660 glColorMask(red, green, blue, alpha);
665 glPolygonMode(face,
mode);
670 glLineStipple(factor, pattern);
675 glPolygonStipple(
mask);
680 glBlendFunc(sfactor, dfactor);
684 GLenum srcAlpha, GLenum dstAlpha)
CRef< CGlState > m_State
state used by all nodes
CRgbaColor m_TextColor
color and alpha for text only (other GL options do not apply to text)
GLenum m_CurrentMode
rendering mode from Begin()
virtual void Clear()
Clear/delete any graphics/OpenGL memory.
const CGlTextureFont * m_CurrentFont
text parameters
virtual void Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
GLenum m_MatrixMode
current modelview matrix and matrix mode
class CRgbaColor provides a simple abstraction for managing colors.
#define LOG_POST(message)
This macro is deprecated and it's strongly recomended to move in all projects (except tests) to macro...
void Error(CExceptionArgs_Base &args)
void Warning(CExceptionArgs_Base &args)
const T * GetData() const
virtual void Hint(GLenum target, GLenum mode)
virtual void BeginText(const CGlTextureFont *font, const CRgbaColor &color)
Text interface.
virtual void PushAttrib(GLbitfield mask)
These commands just forward their parameters to the render managers CGlState object m_State.
virtual void Enable(GLenum glstate)
virtual void MergeStates(CGlState &s, GLbitfield mask)
This is for pushing and popping states - retain state variables not included in the mask (as per glPu...
ELineJoinStyle
Enumerators for non-enumerated state values (e.g. pdf-only state values)
CMatrix4< float > m_ModelView
current modelview matrix and matrix mode
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)
Options to be used when GL_BLEND is enabled.
vector< pair< GLbitfield, CGlState > > m_PushedState
state pushed/poped by PushAttrib/PopAttrib and the corresponding bitmask
virtual void PointSize(GLfloat s)
Set point size for drawing: glPointSize()
virtual void ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
Color{3,4}{f,d}{v} commands are defined above....
virtual void Viewport(GLint x, GLint y, GLsizei width, GLsizei height)
virtual void PdfShadeStyle(EPdfShadeStyle s)
In (our) PDF files there are two kinds of polys, flat ones (move to, line to, fill) which can have an...
virtual void PolygonMode(GLenum face, GLenum mode)
Set the polygon rasterization mode.
virtual void PolygonStipple(GLubyte *mask)
Set polygon stipple pattern: glPolygonStipple(). Deprecated in gl 3.2+.
virtual void Rotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
virtual void PushMatrix()
virtual void ScaleFactor(const CVect2< TModelUnit > &scale)
virtual void Disable(GLenum glstate)
glDisable()
virtual void ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
Set the color mask (glColorMask)
virtual void ScaleFactor(const CVect2< TModelUnit > &scale)
virtual void ScaleInvarient(bool b, CVect2< TModelUnit > scale=CVect2< TModelUnit >(TModelUnit(1), TModelUnit(1)))
Generic rendering options not specfically tied to OpenGL (or pdf..)
virtual void LineStipple(GLint factor, GLushort pattern)
Set line stipple pattern: glLineStipple(). Deprecated in gl 3.2+.
virtual void PointSize(GLfloat s)
Set point size for drawing: glPointSize()
virtual void BlendColor(const CRgbaColor &c)
glBlendColor() - Optional constant color for blending
virtual void MatrixMode(GLenum mode)
void glRectC(const TModelRect &rc)
virtual void Disable(GLenum glstate)
glDisable()
virtual void MultMatrixf(const GLfloat *m)
virtual void ShadeModel(GLenum mode)
Set shade model for default lighting: glShadeModel(GL_FLAT or GL_SMOOTH)
virtual void Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
Rect() functions also do Begin() and End() (as in OpenGL)
virtual void TexCoord2f(GLfloat s, GLfloat t)
Texture coords.
virtual void ScaleInvarient(bool b, CVect2< TModelUnit > scale=CVect2< TModelUnit >(TModelUnit(1), TModelUnit(1)))
void WriteText(TModelUnit x, TModelUnit y, const char *text, TModelUnit rotate_degrees=0.0) const
Write text at specified model coords.
virtual void ScaleFactor(const CVect2< TModelUnit > &scale)
After setting scale invarient rendering need to update the scale whenever projection matrix changes.
virtual void LineJoinStyle(IGlState::ELineJoinStyle s)
PDF-specific rendering state.
virtual void Scalef(GLfloat x, GLfloat y, GLfloat z)
virtual void Enable(GLenum glstate)
glEnable() all options in m_Enabled
virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
Set clipping window: glScissor(x,y,width,height)
virtual void End()
Finish rendering (create buffer and send to renderer)
virtual void BlendColor(const CRgbaColor &c)
virtual void UseProgram(GLuint program)
Set OpenGL shader program. Other subclasses will not implement this.
virtual void PolygonMode(GLenum face, GLenum mode)
Set the polygon rasterization mode.
virtual void Rotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
virtual void LineWidth(GLfloat w)
Set line width for drawing: glLineWidth()
virtual void RectC(const TModelRect &rc)
virtual void LineWidth(GLfloat w)
Set line width for drawing: glLineWidth()
virtual void BlendColor(const CRgbaColor &c)
virtual void Clear()
Clear/delete any graphics/OpenGL memory.
virtual void PointSize(GLfloat s)
Set point size for drawing: glPointSize()
virtual void LineCapStyle(ELineCapStyle c)
Set line cap ending style (pdf only)
virtual void BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
virtual void Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
virtual void TexEnvi(GLenum target, GLenum pname, GLint param)
virtual void ColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
Color{3,4}{f,d}{v} commands are defined above....
virtual void EndText()
Pops matrices and attributes after writing text.
virtual void PdfShadeStyle(IGlState::EPdfShadeStyle s)
Set (override defualt) shading style for polygons.
virtual void LoadMatrixd(const GLdouble *m)
virtual void MultMatrixd(const GLdouble *m)
virtual void Vertex3f(GLfloat x, GLfloat y, GLfloat z)
Polygon rendering interface - render similar to matching OpenGL calls.
virtual void Hint(GLenum target, GLenum mode)
virtual void PushAttrib(GLbitfield mask)
Rendering state interface.
virtual void Translated(GLdouble x, GLdouble y, GLdouble z)
void BeginText() const
WriteText interface The WriteText functions produce the same results as TextOut but they are more eff...
virtual void PdfShadeStyle(IGlState::EPdfShadeStyle s)
Set (override defualt) shading style for polygons.
virtual void Disable(GLenum glstate)
glDisable() all options in m_Disabled
virtual void ScaleInvarient(bool b, CVect2< TModelUnit > scale=CVect2< TModelUnit >(TModelUnit(1), TModelUnit(1)))
virtual void LineCapStyle(IGlState::ELineCapStyle c)
Set line cap ending style (pdf only)
virtual void WriteText(TModelUnit x, TModelUnit y, const char *text, TModelUnit rotate_degrees=0.0)
Write text at specified model coords.
virtual void LoadMatrixf(const GLfloat *m)
virtual void PolygonStipple(GLubyte *mask)
Set polygon stipple pattern: glPolygonStipple(). Deprecated in gl 3.2+.
virtual void LineStipple(GLint factor, GLushort pattern)
Set line stipple pattern: glLineStipple(). Deprecated in gl 3.2+.
virtual void BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
virtual void LineCapStyle(IGlState::ELineCapStyle c)
Set line cap ending style (pdf only)
CRgbaColor GetColor() const
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)
Options to be used when GL_BLEND is enabled.
virtual void Translatef(GLfloat x, GLfloat y, GLfloat z)
void EndText() const
Pops matrices and attributes after writing text.
virtual void Ortho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble nearVal, GLdouble farVal)
virtual CMatrix4< float > GetProjectionMatrix() const
virtual void LineStipple(GLint factor, GLushort pattern)
Set line stipple pattern: glLineStipple(). Deprecated in gl 3.2+.
virtual void LineJoinStyle(ELineJoinStyle s)
PDF-specific rendering state.
virtual void ShadeModel(GLenum mode)
Set shade model for default lighting: glShadeModel(GL_FLAT or GL_SMOOTH)
virtual void LineWidth(GLfloat w)
Set line width for drawing: glLineWidth()
virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
Set clipping window: glScissor(x,y,width,height)
virtual void BlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
Options for glBlendFuncSeparate, also enabled via Enable(GL_BLEND).
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)
Options to be used when GL_BLEND is enabled.
virtual void LoadIdentity()
virtual void PolygonMode(GLenum face, GLenum mode)
Set the polygon rasterization mode.
virtual void ShadeModel(GLenum mode)
Set shade model for default lighting: glShadeModel(GL_FLAT or GL_SMOOTH)
virtual void Perspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar)
virtual void Hint(GLenum target, GLenum mode)
virtual void LineJoinStyle(IGlState::ELineJoinStyle s)
PDF-specific rendering state.
virtual void PolygonStipple(GLubyte *mask)
Set polygon stipple pattern: glPolygonStipple(). Deprecated in gl 3.2+.
virtual void Enable(GLenum glstate)
virtual CMatrix4< float > GetModelViewMatrix() const
virtual void Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
Set clipping window: glScissor(x,y,width,height)
virtual void Scaled(GLdouble x, GLdouble y, GLdouble z)
virtual void Begin(GLenum mode)
Start rendering.
const float * GetColorArray(void) const
Access the color array directly.
TObjectType & GetNCObject(void) const
Get object.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
static void text(MDB_val *v)
double r(size_t dimension_, const Int4 *score_, const double *prob_, double theta_)
int g(Seg_Gsm *spe, Seq_Mtf *psm, Thd_Gsm *tdg)