9 #ifndef __RE_RenderUI__ 
   10 #define __RE_RenderUI__ 
   38     virtual void                 clearAllData();
 
   42     static void                  initUIShaderUniforms(
RE_Render *r,
 
   44     static void                  initUIShaderUniforms(
RE_Render *r,
 
   46     static fpreal32              getBufferedRenderZBump();
 
   50     void                         bumpLayer(
int delta);
 
   54     virtual void                 setZStart(
fpreal32 zStart);
 
   61                                  { 
return myXPerPixel; }
 
   63                                  { 
return myYPerPixel; }
 
   90     void                         pushLineSmoothing(
bool smooth_lines);
 
   91     void                         pushLineSmoothing();
 
   92     void                         setLineSmoothing(
bool smooth_lines);
 
   93     void                         popLineSmoothing();
 
  104     void                         beginTriangles();
 
  106     void                         beginTriangleFan();
 
  107     void                         endTriangleFan();
 
  113     void                         beginQuadStrip();
 
  116     void                         beginPolygon(
int concave);
 
  120     void                         beginClosedLine();
 
  135     void                         v2DI(
const int vtx[2]);
 
  137     void                         vertex2DI(
int x, 
int y);
 
  138     void                         vertex2DS(
int x, 
int y);
 
  143     void                         textMoveS(
int x, 
int y);
 
  144     void                         putMultiLineString(
const utf8 *str);
 
  153                                  { putString(font,sv.
begin(),sv.
end(),xform); }
 
  155     void                         putString(
const utf8 *str);
 
  161     void                         rect2DS(
int x1, 
int y1,
 
  163     void                         box2DS(
int x1, 
int y1,
 
  168     void                         rectf2DS(
int x1, 
int y1,
 
  170     void                         boxf2DS(
int x1, 
int y1,
 
  174     void                         circleW(
float x, 
float y, 
float r);
 
  175     void                         circleS(
int x, 
int y, 
int r);
 
  176     void                         arcW(
float x, 
float y, 
float r,
 
  177                                         int angle_start, 
int angle_end);
 
  178     void                         arcS(
int x, 
int y, 
int r,
 
  179                                         int angle_start, 
int angle_end);
 
  182     void                         circlefW(
float x, 
float y, 
float r);
 
  183     void                         circlefS(
int x, 
int y, 
int r);
 
  184     void                         arcfW(
float x, 
float y, 
float r,
 
  185                                         int angle_start, 
int angle_end);
 
  186     void                         arcfS(
int x, 
int y, 
int r,
 
  187                                         int angle_start, 
int angle_end);
 
  190     void                         ringfW(
float x, 
float y,
 
  191                                         float inner_r, 
float outer_r);
 
  192     void                         ringfS(
int x, 
int y, 
int inner_r, 
int outer_r);
 
  195     void                         sectorW(
float x, 
float y,
 
  196                                         float inner_r, 
float outer_r, 
 
  197                                         float angle_start, 
float angle_end);
 
  198     void                         sectorfW(
float x, 
float y,
 
  199                                         float inner_r, 
float outer_r, 
 
  200                                         float angle_start, 
float angle_end);
 
  203     void                         v3DW(
const float vtx[3]);
 
  204     void                         vertex3DW(
float x, 
float y, 
float z);
 
  205     void                         textMove3W(
float x, 
float y, 
float z);
 
  212     virtual void                 createVertexArrays(
RE_Render *r, 
int nelems);
 
  213     virtual void                 fillVertexArrays(
RE_Render *r, 
int nelems);
 
  214     virtual void                 bindVertexArrays(
RE_Render *r);
 
  215     virtual void                 unbindVertexArrays(
RE_Render *r);
 
  216     virtual bool                 applyDepthTestingToText() 
const;
 
  219     void                         pushDepthStateBeforeDraw(
RE_Render *r);
 
  220     void                         popDepthStateAfterDraw(
RE_Render *r);
 
  222                                             bool use_shared_buffers);
 
  225     void                         resetCurrentZ();
 
  227     void                         clearSourceData();
 
  258     bool                         getPrimitiveIsActive() 
const;
 
  259     inline void                  incrementLinePatternPos(
 
  264     int                                  myTriangleVertexCount;
 
  265     bool                                 myTriangleBuildFan;
 
  266     bool                                 myTriangleBuildStrip;
 
  267     int                                  myPolygonMaxVertexCount;
 
  268     int                                  myLineVertexCount;
 
  272     int                                  myPointVertexCount;
 
  310     myImageUV.
assign(tx[0], tx[1]);
 
  322     setColor(clr[0], clr[1], clr[2], clr[3]);
 
  354 #endif // __RE_RenderUI__ 
void v2DI(const int vtx[2])
 
UT_UniquePtr< RE_VertexArray > myLineElementArray
 
UT_Vector2Array myImageUVData
 
UT_Vector2Array myPatternUVData
 
UT_IntArray myLineWideElementData
 
UT_Array< UT_FRGBA > myColorData
 
GLdouble GLdouble GLdouble z
 
GLboolean GLboolean GLboolean GLboolean a
 
SYS_NO_DISCARD_RESULT SYS_FORCE_INLINE const_iterator end() const 
Returns a constant iterator pointing to the end of the string. 
 
UT_SharedPtr< RE_RenderUI > RE_RenderUIHandle
 
void putString(RE_Font &font, const UT_StringView &sv, UT_Unicode::transform *xform=nullptr)
 
UT_UniquePtr< RE_VertexArray > myLineSmoothElementArray
 
UT_UniquePtr< RE_VertexArray > myTriangleElementArray
 
void vertex2DW(fpreal32 x, fpreal32 y)
 
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects. 
 
fpreal32 getYPerPixel() const 
 
UT_IntArray myTriangleElementData
Triangle primitives. 
 
A utility class to do read-only operations on a subset of an existing string. 
 
UT_Vector3Array myPositionData
Basic vertex properties. 
 
void setColor(const UT_Color &c, fpreal32 a=1.0f)
 
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr. 
 
UT_UniquePtr< RE_VertexArray > myImageUVArray
 
void c4DW(const fpreal32 clr[4])
 
UT_UniquePtr< RE_VertexArray > myColorArray
 
UT_UniquePtr< RE_VertexArray > myPointElementArray
 
void t2DW(const fpreal32 tx[2])
Set vertex attributes. 
 
UT_UniquePtr< RE_VertexArray > myPointSizeArray
 
UT_UniquePtr< RE_VertexArray > myPositionArray
 
UT_Fpreal32Array myPointSizeData
 
UT_IntArray myPointElementData
Point primitives. 
 
GLboolean GLboolean GLboolean b
 
UT_Array< RE_RenderUIHandle > RE_RenderUIArray
 
UT_UniquePtr< RE_VertexArray > myLineWideElementArray
 
void vertex2DS(int x, int y)
 
fpreal32 getYOrigin() const 
 
void vertex2DI(int x, int y)
 
UT_UniquePtr< RE_VertexArray > myPatternUVArray
 
UT_IntArray myLineSmoothElementData
 
SYS_NO_DISCARD_RESULT SYS_FORCE_INLINE const_iterator begin() const 
Returns a constant iterator pointing to the beginning of the string. 
 
void assign(T xx=0.0f, T yy=0.0f)
Set the values of the vector components. 
 
GLdouble GLdouble GLdouble y2
 
void v2DW(const fpreal32 vtx[2])
Create vertices for primitives. 
 
fpreal32 getXOrigin() const 
 
UT_IntArray myLineElementData
Line primitives. 
 
fpreal32 getXPerPixel() const 
Get x or y distance in current units that corresponds to 1 pixel. 
 
Simple interface to building a shader from a .prog file. 
 
void c3DW(const fpreal32 clr[3])