summaryrefslogtreecommitdiff
path: root/libs/hwui/OpenGLRenderer.h
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2014-06-02 16:27:04 -0700
committer Chris Craik <ccraik@google.com> 2014-06-10 01:53:17 +0000
commit05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 (patch)
tree14df3cad82b02a886b8e3a04fd4ec249e1d403e4 /libs/hwui/OpenGLRenderer.h
parentfaecafce62ca39a7693669f7c9eabf2d71c633cf (diff)
Tessellate on worker threads
Tessellate and cache (where possible) shadow and round rect tessellation tasks. Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
Diffstat (limited to 'libs/hwui/OpenGLRenderer.h')
-rw-r--r--libs/hwui/OpenGLRenderer.h23
1 files changed, 14 insertions, 9 deletions
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index fc279478cd64..b9b369fa226b 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -111,12 +111,6 @@ enum ModelViewMode {
kModelViewMode_TranslateAndScale = 1,
};
-enum VertexBufferMode {
- kVertexBufferMode_Standard = 0,
- kVertexBufferMode_OnePolyRingShadow = 1,
- kVertexBufferMode_TwoPolyRingShadow = 2
-};
-
///////////////////////////////////////////////////////////////////////////////
// Renderer
///////////////////////////////////////////////////////////////////////////////
@@ -213,8 +207,8 @@ public:
DrawOpMode drawOpMode = kDrawOpMode_Immediate);
virtual status_t drawRects(const float* rects, int count, const SkPaint* paint);
- status_t drawShadow(const mat4& casterTransformXY, const mat4& casterTransformZ,
- float casterAlpha, bool casterUnclipped, const SkPath* casterPerimeter);
+ status_t drawShadow(float casterAlpha,
+ const VertexBuffer* ambientShadowVertexBuffer, const VertexBuffer* spotShadowVertexBuffer);
virtual void resetPaintFilter();
virtual void setupPaintFilter(int clearBits, int setBits);
@@ -348,6 +342,9 @@ public:
}
#endif
+ const Vector3& getLightCenter() const { return mLightCenter; }
+ float getLightRadius() const { return mLightRadius; }
+
protected:
/**
* Perform the setup specific to a frame. This method does not
@@ -661,10 +658,18 @@ private:
* @param paint The paint to render with
* @param useOffset Offset the vertexBuffer (used in drawing non-AA lines)
*/
- status_t drawVertexBuffer(VertexBufferMode mode, const VertexBuffer& vertexBuffer,
+ status_t drawVertexBuffer(float translateX, float translateY, const VertexBuffer& vertexBuffer,
const SkPaint* paint, bool useOffset = false);
/**
+ * Convenience for translating method
+ */
+ status_t drawVertexBuffer(const VertexBuffer& vertexBuffer,
+ const SkPaint* paint, bool useOffset = false) {
+ return drawVertexBuffer(0.0f, 0.0f, vertexBuffer, paint, useOffset);
+ }
+
+ /**
* Renders the convex hull defined by the specified path as a strip of polygons.
*
* @param path The hull of the path to draw