class PaperDrawCallFactory
Defined at line 24 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.h
PaperDrawCallFactory generates PaperDrawCalls and enqueues them into a
PaperRenderQueue. The number of draw-calls and the precise details of each
depend on the factory's configuration (e.g. the current shadow algorithm),
which is controlled by PaperRenderer that owns the factory.
Public Methods
void PaperDrawCallFactory (const PaperDrawCallFactory & )
Defined at line 28 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.h
void set_track_cache_entries (bool track)
TODO(ES203) - We will eventualy not need to do this as we will simply
inject PaperRenderer with a version of the PaperDrawCallFactory that
is used explicitly for testing.
When this is set to true, no draw calls get enqueued and instead,
PaperDrawCallFactory will accumulate a list of cache entries that
would have been drawn.
Defined at line 56 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.h
const std::vector<PaperShapeCacheEntry> & tracked_cache_entries ()
Defined at line 57 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.h
void PaperDrawCallFactory (EscherWeakPtr weak_escher, const PaperRendererConfig & config)
|weak_escher| is used only to create |white_texture_|; it is not retained.
Defined at line 70 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void ~PaperDrawCallFactory ()
Defined at line 80 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void DrawCircle (float radius, const PaperMaterial & material, PaperDrawableFlags flags)
Draw the specified shape by obtaining a mesh from |PaperShapeCache| and
generating/enqueuing draw calls via |EnqueueDrawCalls()|.
Defined at line 82 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void DrawRect (vec2 min, vec2 max, const PaperMaterial & material, PaperDrawableFlags flags)
Defined at line 101 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void DrawRoundedRect (const RoundedRectSpec & spec, const PaperMaterial & material, PaperDrawableFlags flags)
Defined at line 111 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void DrawBoundingBox (const PaperMaterial & material, PaperDrawableFlags flags)
Defined at line 122 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void DrawMesh (const MeshPtr & mesh, const PaperMaterial & material, PaperDrawableFlags flags)
We are currently unable to clip meshes that are already provided to us and not generated
from the PaperShapeCache, and so we render them directly without doing any clipping. It is
possible to clip on the GPU, but this functionality is not available on all hardware, and
performing clipping on the GPU means our existing stencil shadow implementation will no
longer work.
Defined at line 131 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
void SetConfig (const PaperRendererConfig & config)
Must not be called during a frame, i.e. between |BeginFrame()| and |EndFrame()|.
Defined at line 275 of file ../../src/ui/lib/escher/paper/paper_draw_call_factory.cc
Records
Friends
class PaperTester
class PaperRenderer