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])