Namespaces
Enumerations
enum Status
| Name | Value |
|---|---|
| kOk | 0 |
| kNotReady | 1 |
| kTimeout | 2 |
| kOutOfHostMemory | 3 |
| kOutOfDeviceMemory | 4 |
| kDeviceLost | 5 |
| kInternalError | 6 |
Defined at line 10 of file ../../src/ui/lib/escher/status.h
enum ResourceType
| Name | Value |
|---|---|
| kResource | 1 |
| kImage | 1 << 2 |
| kImageView | 1 << 3 |
| kSampler | 1 << 4 |
| kTexture | 1 << 5 |
| kFramebuffer | 1 << 6 |
| kBuffer | 1 << 7 |
| kMesh | 1 << 8 |
| kRenderPass | 1 << 9 |
| kPipelineLayout | 1 << 10 |
| kShaderProgram | 1 << 11 |
| kFrame | 1 << 12 |
| kImplModelPipelineCache | 1 << 27 |
| kImplModelDisplayList | 1 << 28 |
| kImplDescriptorSetAllocation | 1 << 29 |
| kImplFramebuffer | 1 << 30 |
| kImplRenderPass | 1 << 31 |
All subclasses of Resource are represented here.
Defined at line 13 of file ../../src/ui/lib/escher/resources/resource_type_info.h
enum PaperRenderQueueFlagBits
| Name | Value |
|---|---|
| kOpaque | 1U << 0 |
| kTranslucent | 1U << 1 |
| kWireframe | 1U << 2 |
| kShadowCaster | 1U << 3 |
| kAllFlags | 0x7u |
Specifies which |PaperRenderQueue| sub-queues a |PaperDrawCall| should
be enqueued in. More than one may be specified.
Defined at line 14 of file ../../src/ui/lib/escher/paper/paper_render_queue_flags.h
enum ShaderStage
| Name | Value |
|---|---|
| kVertex | 0 |
| kTessellationControl | 1 |
| kTessellationEvaluation | 2 |
| kGeometry | 3 |
| kFragment | 4 |
| kCompute | 5 |
| kEnumCount | 6 |
Defined at line 14 of file ../../src/ui/lib/escher/vk/shader_stage.h
enum TestEnumBits
| Name | Value |
|---|---|
| test1 | 1 |
| test2 | 2 |
| test3 | 4 |
| kAllFlags | 7 |
Simple enum class with only a few members
in sequential order with no gaps.
Defined at line 17 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
enum PaperDrawableFlagBits
| Name | Value |
|---|---|
| kDebug | 1U << 0 |
| kDisableShadowCasting | 1U << 1 |
| kBt709Oetf | 1U << 2 |
| kAllFlags | 0x7u |
These flags modify how |PaperDrawables| are rendered by |PaperRenderer|.
They become part of the |PaperDrawCalls| generated from the |PaperDrawable|
by |PaperDrawCallFactory|.
Defined at line 17 of file ../../src/ui/lib/escher/paper/paper_drawable_flags.h
enum CameraEye
| Name | Value |
|---|---|
| kLeft | 0 |
| kRight | 1 |
Used to indicate which eye a camera represents, in order to distinguish them
for stereo rendering.
Defined at line 18 of file ../../src/ui/lib/escher/scene/camera.h
enum PaperRendererShadowType
| Name | Value |
|---|---|
| kNone | 0 |
| kSsdo | 1 |
| kShadowMap | 2 |
| kMomentShadowMap | 3 |
| kShadowVolume | 4 |
| kEnumCount | 5 |
A list of shadow types which may be supported by |PaperRenderer|. Some
shadow techniques will not be supported on some target devices.
Defined at line 18 of file ../../src/ui/lib/escher/paper/paper_renderer_config.h
enum MeshAttribute
| Name | Value |
|---|---|
| kPosition2D | 1 |
| kPosition3D | 1 << 1 |
| kPositionOffset | 1 << 2 |
| kUV | 1 << 3 |
| kPerimeterPos | 1 << 4 |
| kBlendWeight1 | 1 << 5 |
| kStride | 1 << 6 |
These are the attributes which can be present in a MeshSpec. Each of them has a semantic meaning
which is distinct from its representation. For example, kPosition2 and kUV are both represented
as vec2, but the data meant for one shouldn't be confused with the other.
Defined at line 18 of file ../../src/ui/lib/escher/shape/mesh_spec.h
enum PaperShaderListSelector
| Name | Value |
|---|---|
| kAmbientLighting | 0 |
| kPointLighting | 1 |
| kShadowCaster | 2 |
| kShadowCasterDebug | 3 |
| kEnumCount | 4 |
Acts as an index into a PaperShaderList (see below).
NOTE: if we wanted to reduce the size of PaperShaderList, we could reuse the same index
for multiple shaders. For example, PaperDrawCallFactory currently emits separate draw calls for
drawing shadow casters, and casting shadows from them. So we could make kShadowCaster == 0 if we
wanted to. However, without more data, this would be a premature optimization.
Defined at line 24 of file ../../src/ui/lib/escher/paper/paper_shader_list.h
enum ColorSpace
| Name | Value |
|---|---|
| kInvalid | 0 |
| kSrgb | 1 |
| kRec601Ntsc | 2 |
| kRec601NtscFullRange | 3 |
| kRec601Pal | 4 |
| kRec601PalFullRange | 5 |
| kRec709 | 6 |
| kRec2020 | 7 |
| kRec2100 | 8 |
| kPassThrough | 9 |
| kDoNotCare | 0xFFFFFFFE |
Color spaces used in Escher images.
This corresponds to Fuchsia sysmem |ColorSpaceType| enum.
Similar to Fuchsia |ColorSpaceType|, This list has a separate entry for each
variant of a color space standard, since different variants may use
different samplers and thus different render passes.
So should we ever add support for the RGB variant of 709, for example, we'd
add a separate entry to this list for that variant. Similarly for the RGB
variants of 2020 or 2100. Similarly for the YcCbcCrc variant of 2020.
Similarly for the ICtCp variant of 2100.
Defined at line 24 of file ../../src/ui/lib/escher/vk/color_space.h
enum LargeEnumBits
| Name | Value |
|---|---|
| large1 | 1U << 0 |
| large2 | 1U << 1 |
| large3 | 1U << 2 |
| large4 | 1U << 3 |
| large5 | 1U << 4 |
| large6 | 1U << 5 |
| large7 | 1U << 6 |
| large8 | 1U << 7 |
| large9 | 1U << 8 |
| large10 | 1U << 9 |
| large11 | 1U << 10 |
| large12 | 1U << 11 |
| large13 | 1U << 12 |
| kAllFlags | 0x1FFF |
More complex enum class with many more members
but likewise in sequential order with no gaps.
Defined at line 27 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
enum SparseEnumBits
| Name | Value |
|---|---|
| sparse1 | 1U << 2 |
| sparse2 | 1U << 5 |
| sparse3 | 1U << 9 |
| sparse4 | 1U << 12 |
| sparse5 | 1U << 17 |
| sparse6 | 1U << 29 |
| kAllFlags | sparse1 | sparse2 | sparse3 | sparse4 | sparse5 | sparse6 |
Enum class where there are gaps between members.
Defined at line 46 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
Records
-
class AmbientLight -
class BatchGpuDownloader -
class BatchGpuDownloaderTest_CallbackTriggeredOnEmptyDownloader_Test -
class BatchGpuDownloaderTest_CreateDestroyDownloader_Test -
class BatchGpuDownloaderTest_DISABLED_ReadAfterWriteSucceeds_Test -
class BatchGpuDownloaderTest_InitializeUploaderAndDownloader_Test -
class BatchGpuDownloaderTest_InvalidDownloader_Test -
class BatchGpuDownloaderTest_LazyInitializationTest_Test -
class BatchGpuDownloaderTest_MultipleReadToSameBuffer_Test -
class BatchGpuDownloaderTest_ReadBufferTest_Test -
class BatchGpuDownloaderTest_ReadImageTest_Test -
class BatchGpuDownloaderTest_ReadTheSameImageTwice_Test -
class BatchGpuDownloaderTest_SubmitEmptyDownloader_Test -
class BatchGpuDownloaderTest_SubmitToCommandBuffer_Test -
class BatchGpuDownloaderTest_SupportAllCommandBufferTypes_Test -
class BatchGpuUploader -
class Bitmap -
class BitmapWithStorage -
class BlockAllocator -
class BoundingBox -
class Buffer -
class BufferCache -
class BufferCache_CreateBuffer_Test -
class BufferCache_CreateDestroyCache_Test -
class BufferCache_DontRecycleLargeBuffer_Test -
class BufferCache_RecycleBuffer_Test -
class BufferCache_RecycleMany_Test -
class BufferCache_SlightlyLargerBufferShouldRecycle_Test -
class BufferCache_SmallerBufferShouldNotRecycle_Test -
class BufferFactory -
class BufferFactoryAdapter -
class BufferTest_CreateWithPreExistingMemory_Test -
class Camera -
class ChainedSemaphoreGenerator -
class ChainedSemaphoreGeneratorTest_SequentialUpload_Test -
class ColorBgra -
class ColorConversionParams -
class ColorHistogram -
class ColorRgba -
class CommandBuffer -
class CommandBufferPipelineState -
class DebugFont -
class DebugRects -
class DefaultObjectPoolPolicy -
class DefaultShaderProgramFactory -
class DirectionalLight -
class EnumFlags -
class Escher -
class FenceListener -
class FenceQueue -
class FenceSetListener -
class Frame -
class Framebuffer -
class FuchsiaDataSource -
class GpuAllocator -
class GpuMem -
class HackFilesystem -
class HackFilesystemWatcher -
class Hash -
class HashCache -
class HashCacheItem -
class HashCacheObjectPoolPolicy -
class HashMapHasher -
class HashMapHasher -
class HashMapHasher -
class Hashable -
class Hasher -
class Image -
class ImageConstraintsInfo -
class ImageFactory -
class ImageFactoryAdapter -
class ImageInfo -
class ImageLayoutUpdater -
class ImageView -
class ImageViewAllocator -
class IndexedTriangleMesh -
class Interval -
class IntrusiveList -
class IntrusiveListItem -
class LinuxDataSource -
class Material -
class Mesh -
class MeshAttributeBindingLocations -
class MeshBuilder -
class MeshBuilderFactory -
class MeshSpec -
class Model -
class NaiveGpuAllocator -
class Object -
class ObjectPool -
class Ownable -
class Owner -
class PairHasher -
class PaperAmbientLight -
class PaperDrawCall -
class PaperDrawCallFactory -
class PaperDrawable -
class PaperPointLight -
class PaperRenderFuncs -
class PaperRenderQueue -
class PaperRenderQueueContext -
class PaperRenderer -
class PaperRendererConfig -
class PaperScene -
class PaperShaderLatchedPoseBuffer -
class PaperShaderList -
class PaperShaderMeshInstance -
class PaperShaderPointLight -
class PaperShaderPushConstants -
class PaperShaderSceneData -
class PaperShapeCache -
class PaperShapeCacheEntry -
class PaperTester -
class PaperTransformStack -
class PipelineBuilder -
class PipelineLayout -
class Quad -
class ReadbackTest -
class Rectangle2D -
class RectangleCompositor -
class RectangleCompositorParameterizedOpacityTest -
class RectangleCompositorParameterizedOpacityTest_TransparencyTest_Test -
class RectangleCompositorTest -
class RectangleCompositorTest_ColorConversionTest_Test -
class RectangleCompositorTest_MultiRenderableTest_Test -
class RectangleCompositorTest_OverlapTest_Test -
class RectangleCompositorTest_RotatedTextureTest_Test -
class RectangleCompositorTest_SetsAFBCCompatibleConstraints_Test -
class RectangleCompositorTest_SimpleTextureNonStandardUVsTest_Test -
class RectangleCompositorTest_SimpleTextureTest_Test -
class RectangleCompositorTest_SingleRenderableTest_Test -
class RectangleCompositorTest_StressTest_Test -
class RectangleCompositorTest_TransparencyFlagOffTest_Test -
class RectangleCompositorTest_TwoColorTextureTest_Test -
class Reffable -
class RenderFuncs -
class RenderPass -
class RenderPassInfo -
class RenderQueue -
class RenderQueueContext -
class RenderQueueItem -
class Renderer -
class Resource -
class ResourceManager -
class ResourceRecycler -
class RoundedRectSpec -
class Sampler -
class SamplerCache -
class Semaphore -
class ShaderModule -
class ShaderModuleListener -
class ShaderModuleTemplate -
class ShaderProgram -
class ShaderProgramData -
class ShaderProgramFactory -
class ShaderVariantArgs -
class Shape -
class StackAllocator -
class Stage -
class Stopwatch -
class Texture -
class TimestampProfiler -
class Tracer -
class Trait -
class Transform -
class TypeInfo -
class TypedReffable -
class UniformAllocation -
class UniformBinding -
class UniformBlockAllocator -
class VertexAttributePointers -
class ViewingVolume -
class VmaGpuAllocator -
class VulkanContext -
class VulkanDeviceQueues -
class VulkanInstance -
class VulkanLimits -
class VulkanSwapchain -
class VulkanSwapchainHelper -
class VulkanTester -
class plane2 -
class plane3 -
class planeN -
class ray4
Functions
-
bool CompareFloat (float f0, float f1, float epsilon)Returns true iff |f0| and |f1| are the same within optional |epsilon|.
Defined at line 15 of file ../../src/ui/lib/escher/util/epsilon_compare.cc
-
bool IntersectRayBox (const escher::ray4 & ray, const escher::BoundingBox & box, Interval * out_interval)Returns whether a ray intersects an axis-aligned bounding box. Upon return,
|out_interval| returns the interval containing the ray's entry and exit distances
through the box. These values are only valid if a hit took place.
Defined at line 9 of file ../../src/ui/lib/escher/geometry/intersection.cc
-
template <typename ValT>ValT Lerp (const ValT & a, const ValT & b, float t)Linearly interpolate between the two values. ValT can be any type that
supports addition, as well as multiplication by a scalar.
Defined at line 13 of file ../../src/ui/lib/escher/math/lerp.h
-
template <typename E>typename std::underlying_type<E>::type EnumCast (E x)Defined at line 13 of file ../../src/ui/lib/escher/util/enum_cast.h
-
template <typename T>std::string ToString (const T & obj)Defined at line 13 of file ../../src/ui/lib/escher/util/string_utils.h
-
vec4 Homo4 (const vec3 & v, float w)Extend |v| to be a homogeneous vec4. The w-component is set to |w|,
which should be 0 for vectors and 1 for points.
Defined at line 14 of file ../../src/ui/lib/escher/geometry/type_utils.h
-
vec4 Homo4 (const vec2 & v, float w)Defined at line 15 of file ../../src/ui/lib/escher/geometry/type_utils.h
-
template <typename T, typename... Args>fxl::RefPtr<T> Make (Args &&... args)Convenient syntax for instantiating a new Reffable object. For example,
assuming that Foo inherits from Reffable or fxl::RefCountedThreadSafe:
fxl::RefPtr
<Foo
> foo = Make
<Foo
>(int_arg, "string_arg");
Defined at line 16 of file ../../src/ui/lib/escher/base/make.h
-
template <typename E>size_t EnumCount ()Return the number of elements in an enum, which must properly define
kEnumCount: they should start at zero and monotonically increase by 1,
so that kEnumCount is equal to the number of previous values in the enum.
Defined at line 16 of file ../../src/ui/lib/escher/util/enum_count.h
-
void RotationBetweenVectors (const glm::vec3 & from, const glm::vec3 & to, glm::quat * rotation)Generate a quaternion that will rotate between two unnormalized vectors, i.e.
it will transform |from| to be parallel to |to|. Store the output quaternion
in |rotation|.
Defined at line 16 of file ../../src/ui/lib/escher/math/rotations.cc
-
uint64_t hash_fnv_1a_64 (const uint8_t * data, size_t len, uint64_t previous)FNV-1a 64-bit Hash (http://www.isthe.com/chongo/tech/comp/fnv/index.html)
Defined at line 17 of file ../../src/ui/lib/escher/util/hash_fnv_1a.h
-
size_t AlignedToNext (size_t position, size_t alignment)If |position| is already aligned to |alignment|, return it. Otherwise,
return the next-larger value that is so aligned. |alignment| must be
positive; the result is undefined otherwise.
Defined at line 18 of file ../../src/ui/lib/escher/util/align.h
-
std::pair<escher::SemaphorePtr, zx::event> NewSemaphoreEventPair (escher::Escher * escher)Create a new escher::Semaphore and a corresponding zx::event using
the VK_KHR_EXTERNAL_SEMAPHORE_FD extension. If it fails, both elements
of the pair will be null.
Defined at line 18 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
template <typename E>E EnumCycle (E e, bool reverse)Cycle through an enum's values, safely wrapping around in either direction.
The enum must meet the requirements of EnumCount().
Defined at line 19 of file ../../src/ui/lib/escher/util/enum_utils.h
-
template <typename IntT>IntT RotateLeft (IntT val, size_t len)Rotate the value the specified number of bits to the left. In other words,
this is a bit-shift where any high-order bits that are "shifted out" are
"rotated in" as the low-order bytes instead of being discarded.
Defined at line 20 of file ../../src/ui/lib/escher/util/bit_ops.h
-
void RotationBetweenVectors (const glm::vec3 & from, const glm::vec3 & to, glm::mat4 * rotation)Generate a matrix that will rotate between two unnormalized vectors, i.e.
it will transform |from| to be parallel to |to|. Store the output matrix
in |rotation|.
Defined at line 20 of file ../../src/ui/lib/escher/math/rotations.h
-
template <typename IndexedTriangleMeshT>MeshPtr IndexedTriangleMeshUpload (Escher * escher, BatchGpuUploader * uploader, const MeshSpec & mesh_spec, const BoundingBox & bounding_box, IndexedTriangleMeshT mesh)Uploads the contents of an IndexedTriangleMesh
<
> to a Vulkan buffer, and
returns a new Mesh that is bound to this buffer.
Defined at line 20 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_upload.h
-
PaperRenderQueueFlags operator| (PaperRenderQueueFlagBits bit1, PaperRenderQueueFlagBits bit2)Defined at line 22 of file ../../src/ui/lib/escher/paper/paper_render_queue_flags.h
-
PaperRenderQueueFlags operator~ (PaperRenderQueueFlagBits bit)Defined at line 22 of file ../../src/ui/lib/escher/paper/paper_render_queue_flags.h
-
TestEnumFlags operator| (TestEnumBits bit1, TestEnumBits bit2)Defined at line 23 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
TestEnumFlags operator~ (TestEnumBits bit)Defined at line 23 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
bool CompareMatrix (glm::mat4 m0, glm::mat4 m1, float epsilon)Defined at line 23 of file ../../src/ui/lib/escher/util/epsilon_compare.cc
-
uint8_t * AlignedToNext (uint8_t * ptr, size_t alignment)Defined at line 24 of file ../../src/ui/lib/escher/util/align.h
-
TexturePtr CreateWhiteTexture (EscherWeakPtr escher, BatchGpuUploader * gpu_uploader)Default 1x1 texture for Renderables with no texture.
Defined at line 25 of file ../../src/ui/lib/escher/test/flatland/rectangle_compositor_unittest.cc
-
vk::ShaderStageFlagBits ShaderStageToFlags (ShaderStage stage)Defined at line 25 of file ../../src/ui/lib/escher/vk/shader_stage.h
-
bool CompileAndWriteShader (HackFilesystemPtr filesystem, ShaderProgramData program_data)Compiles all of the provided shader modules and writes out their spirv
to disk in the source tree.
Defined at line 25 of file ../../src/ui/tools/paper_shader_compiler/main.cc
-
void WriteEvent (std::ostream & str, const Tracer::Event & event)Defined at line 26 of file ../../src/ui/lib/escher/util/tracer.cc
-
template <typename PlaneT>PlaneT TransformPlane (const mat4 & model_to_world_matrix, const PlaneT & plane)Transform the world-space plane into object space. NOTE: use the same matrix
that you would to transform an object into world space. This may seem
counter-intuitive; here is the reasoning:
In order to transform a plane in world-space, you multiply it by the
transpose of the inverse of the transform matrix. For example, see:
https://stackoverflow.com/questions/7685495/transforming-a-3d-plane-using-a-4x4-matrix
However, we don't want to move a plane in world space, we want to move it to
object space. To do this, we need the inverse of |model_to_world_matrix|.
However, once we have that matrix, the first thing we would naively do is
invert it again, then transpose it. The two inversions cancel each other
out, and we can also avoid the transpose (see comment below).
Defined at line 26 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
PaperDrawableFlags operator| (PaperDrawableFlagBits bit1, PaperDrawableFlagBits bit2)Defined at line 27 of file ../../src/ui/lib/escher/paper/paper_drawable_flags.h
-
PaperDrawableFlags operator~ (PaperDrawableFlagBits bit)Defined at line 27 of file ../../src/ui/lib/escher/paper/paper_drawable_flags.h
-
int32_t CountLeadingZeros (uint32_t value)Defined at line 27 of file ../../src/ui/lib/escher/util/bit_ops.h
-
int32_t CountTrailingZeros (uint32_t value)Defined at line 28 of file ../../src/ui/lib/escher/util/bit_ops.h
-
uint32_t CountOnes (uint32_t value)Defined at line 29 of file ../../src/ui/lib/escher/util/bit_ops.h
-
template <typename T>T * NextAlignedPtr (void * ptr)Defined at line 29 of file ../../src/ui/lib/escher/util/align.h
-
template <typename E>std::array<E, EnumCount<E>()> EnumArray ()Return an array populated with all of the enum's values. The enum must meet the requirements
of EnumCount().
Defined at line 30 of file ../../src/ui/lib/escher/util/enum_utils.h
-
VertexAttributePointers GetVertexAttributePointers (uint8_t * vertex, size_t vertex_size, const MeshSpec & spec, MeshBuilderPtr builder)Get pointers to each of the supported vertex attributes within the
memory pointed to by |vertex|. This is based on the attributes' offsets
(looked up in the MeshBuilder).
If the |MeshSpec| does not include an attribute, its corresponding pointer
will be null.
Defined at line 30 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
void ESCHER_DCHECK_VK_RESULT (typename vk::Result result)Defined at line 32 of file ../../src/ui/lib/escher/impl/vulkan_utils.h
-
TexturePtr CreateFourColorTexture (EscherWeakPtr escher, BatchGpuUploader * gpu_uploader)2x2 texture with white, red, green and blue pixels.
Defined at line 34 of file ../../src/ui/lib/escher/test/flatland/rectangle_compositor_unittest.cc
-
template <typename T>T * NextAlignedTriviallyDestructiblePtr (void * ptr)Defined at line 35 of file ../../src/ui/lib/escher/util/align.h
-
template <typename T>T ESCHER_DCHECK_VK_RESULT (typename vk::ResultValue<T> result)Panic if operation was unsuccessful, on debug mode only.
Defined at line 38 of file ../../src/ui/lib/escher/impl/vulkan_utils.h
-
template <typename VecT>float IntersectLinePlane (const VecT & ray_origin, const VecT & ray_direction, const planeN<VecT> & plane)Return the distance from the ray origin to the intersection point in units
of ray length, or FLT_MAX if the line and plane are (nearly) parallel. This
can be used to test line, ray, and line-segment intersection:
- lines intersect the plane when the return value is
<
FLT_MAX.
- rays intersect when the return value is >= 0 and
<
FLT_MAX.
- line segments intersect when the return value is >= 0 and
<
= 1.
Defined at line 38 of file ../../src/ui/lib/escher/geometry/intersection.h
-
LargeEnumFlags operator| (LargeEnumBits bit1, LargeEnumBits bit2)Defined at line 43 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
LargeEnumFlags operator~ (LargeEnumBits bit)Defined at line 43 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
void ESCHER_CHECKED_VK_RESULT (typename vk::Result result)Defined at line 43 of file ../../src/ui/lib/escher/impl/vulkan_utils.h
-
TexturePtr CreateTwoColorTexture (EscherWeakPtr escher, BatchGpuUploader * gpu_uploader, uint32_t width, uint32_t height)WxH texture with red(top) and green(bottom) pixels.
Defined at line 43 of file ../../src/ui/lib/escher/test/flatland/rectangle_compositor_unittest.cc
-
template <typename PlaneT>PlaneT TranslatePlane (const typename PlaneT::VectorType & model_to_world_vec, const PlaneT & plane)Transform the world-space plane into object space. This is an optimization
of TransformPlane(): it computes the same result without needing a matrix
multiplication.
Defined at line 46 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
template <typename MeshT, typename PlaneT>std::pair<MeshT, std::vector<PlaneT>> IndexedTriangleMeshClip (MeshT input_mesh, const std::vector<PlaneT> & planes)IndexedTriangleMeshClip() generates the output mesh resulting from
iteratively clipping the input mesh against a list of input planes; the input
to each iteration is the output of the previous iteration.
Algorithm overview (simplified):
- for each plane:
- for each vertex:
- set bit if vertex is clipped by current plane
- if no vertices are clipped, proceed to next plane
- otherwise, for each triangle:
- if 0 vertices are clipped, the triangle is copied to the output mesh
- if 3 vertices are clipped, no triangle is added to the output mesh
- if 1 or 2 vertices are clipped, then two new vertices are generated
where the triangle edges intersect the plane.
- if 2 vertices are clipped, the resulting triangle consists of the
unclipped tip of the triangle + the two new edge vertices.
- if 1 vertex is clipped, the result is a quad consisting of the two
unclipped vertices + the two new edge vertices. This quad is split
diagonally into two triangles, which are added to the output mesh.
The implementation is slightly more complicated than the simplified overview
above. The extra complexity is mostly to avoid generating redundant vertex
data, by ensuring that indices are reused when multiple triangles share the
same vertices.
Defined at line 47 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
template <typename ColorT>std::ostream & operator<< (std::ostream & os, const ColorHistogram<ColorT> & histogram)Defined at line 47 of file ../../src/ui/lib/escher/types/color_histogram.h
-
template <typename T>T ESCHER_CHECKED_VK_RESULT (typename vk::ResultValue<T> result)Panic if operation was unsuccessful.
Defined at line 49 of file ../../src/ui/lib/escher/impl/vulkan_utils.h
-
template <typename PlaneT>PlaneT ScalePlane (float model_to_world_scale, const PlaneT & plane)Transform the world-space plane into object space. This is an optimization
of TransformPlane(): it computes the same result without needing a matrix
multiplication.
Defined at line 54 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
SparseEnumFlags operator| (SparseEnumBits bit1, SparseEnumBits bit2)Defined at line 55 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
SparseEnumFlags operator~ (SparseEnumBits bit)Defined at line 55 of file ../../src/ui/lib/escher/test/util/enum_flags_unittest.cc
-
MeshAttributes operator| (MeshAttribute bit0, MeshAttribute bit1)Defined at line 56 of file ../../src/ui/lib/escher/shape/mesh_spec.h
-
template <typename AttrT>void IndexedTriangleMeshPushLerpedAttribute (std::vector<AttrT> * target, std::vector<AttrT> * source_ptr, size_t index1, size_t index2, float interp_param)Helper functions that interpolate two attributes from a source mesh, and push
the interpolated value to a target mesh.
Defined at line 56 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
RoundedRectSpec operator* (float t, const RoundedRectSpec & spec)Provide a corresponding function to RoundedRectSpec::operator*, so that
scalar multiplication is commutative.
Defined at line 59 of file ../../src/ui/lib/escher/shape/rounded_rect.h
-
bool operator== (const ColorRgba & a, const ColorRgba & b)Color equality.
Defined at line 59 of file ../../src/ui/lib/escher/types/color.h
-
bool VulkanIsSupported ()This attempts to create a VkInstance and then a VkDevice, and returns true
if successful and false otherwise. These are both destroyed before the
function returns. Therefore, this shouldn't be called from production code
where fast startup time is an issue.
Defined at line 85 of file ../../src/ui/lib/escher/util/check_vulkan_support.cc
-
MeshPtr NewCircleMesh (MeshBuilderFactory * factory, BatchGpuUploader * gpu_uploader, const MeshSpec & spec, int subdivisions, vec2 center, float radius, float offset_magnitude)Tessellate a circle. The coarsest circle (i.e. subdivisions == 0) is a
square; increasing the number of subdivisions doubles the number of vertices.
Defined at line 226 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
std::ostream & operator<< (std::ostream & str, const ShaderStage & )Defined at line 203 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
IndexedTriangleMesh2d<vec2> NewCircleIndexedTriangleMesh (const MeshSpec & spec, uint32_t subdivisions, vec2 center, float radius)Tessellate a circle and return it as an IndexedTriangleMesh suitable for
further processing on the CPU.
Defined at line 61 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
zx::event GetEventForSemaphore (VulkanDeviceQueues * device, const escher::SemaphorePtr & semaphore)Exports a Semaphore into an event.
Defined at line 38 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
escher::SemaphorePtr GetSemaphoreForEvent (VulkanDeviceQueues * device, zx::event event)Imports an event into a Semaphore.
Defined at line 52 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
bool IntersectRayTriangle (const escher::ray4 & ray, const glm::vec3 & v1, const glm::vec3 & v2, const glm::vec3 & v3, float * out_distance)Returns whether a ray intersects a 3D triangle or not. Upon return, |out_distance|
contains the distance from the ray origin to the intersection point in units of
"ray length" (i.e. the length of the ray's direction vector).
Defined at line 80 of file ../../src/ui/lib/escher/geometry/intersection.cc
-
void GlslangInitializeProcess ()Defined at line 12 of file ../../src/ui/lib/escher/escher_process_init.cc
-
std::ostream & operator<< (std::ostream & str, const PaperRendererShadowType & )Defined at line 251 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
void GlslangFinalizeProcess ()Defined at line 14 of file ../../src/ui/lib/escher/escher_process_init.cc
-
std::ostream & operator<< (std::ostream & str, const vec2 & )Defined at line 54 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const vec3 & )Defined at line 58 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
zx::vmo ExportMemoryAsVmo (escher::Escher * escher, const escher::GpuMemPtr & mem)Export the escher::GpuMem as a zx::vmo.
Defined at line 70 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
MeshPtr NewRectangleMesh (MeshBuilderFactory * factory, BatchGpuUploader * gpu_uploader, const MeshSpec & spec, int subdivisions, vec2 extent, vec2 top_left, float top_offset_magnitude, float bottom_offset_magnitude)Tessellate a rectangle with multiple vertices along the top and bottom edges.
Increasing subdivisions by 1 doubles the number of vertices. If the spec
has kPositionOffset, the top offset points up and the bottom points down.
Defined at line 380 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
std::ostream & operator<< (std::ostream & str, const vec4 & )Defined at line 62 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const mat2 & )Defined at line 32 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const mat3 & ) -
std::ostream & operator<< (std::ostream & str, const mat4 & )Defined at line 43 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const quat & )Defined at line 66 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::pair<escher::GpuMemPtr, escher::ImagePtr> GenerateExportableMemImage (vk::Device device, escher::ResourceManager * resource_manager, const escher::ImageInfo & image_info)Generate an escher Image and GPU memory dedicated to that image.
The GPU memory will be exportable as a vmo object in Fuchsia by calling
escher::ExportMemoryAsVmo function.
Defined at line 82 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
Tracer * GetTracer ()Defined at line 58 of file ../../src/ui/lib/escher/util/tracer.cc
-
MeshPtr NewRingMesh (MeshBuilderFactory * factory, BatchGpuUploader * gpu_uploader, const MeshSpec & spec, int subdivisions, vec2 center, float outer_radius, float inner_radius, float outer_offset_magnitude, float inner_offset_magnitude)Tessellate a ring whose area is bounded by an inner and an outer circle.
Increasing subdivisions by 1 doubles the number of vertices. If the spec
has kPositionOffset, the outer offset points outward (away from the center of
the ring) and the inner offset points inward (toward the center of the ring).
Defined at line 297 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
vk::Format SysmemPixelFormatTypeToVkFormat (fuchsia::sysmem::PixelFormatType pixel_format)Converts sysmem pixel format to equivalent vk::Format.
Defined at line 120 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
std::ostream & operator<< (std::ostream & str, const ViewingVolume & )Debugging.
Defined at line 163 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::pair<uint32_t, uint32_t> GetRoundedRectMeshVertexAndIndexCounts (const RoundedRectSpec & spec)Return the number of vertices and indices that are required to tessellate the
specified rounded-rect.
Defined at line 71 of file ../../src/ui/lib/escher/shape/rounded_rect.cc
-
std::ostream & operator<< (std::ostream & str, const Transform & )Debugging.
Defined at line 27 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
void GenerateRoundedRectIndices (const RoundedRectSpec & spec, const MeshSpec & mesh_spec, void * indices_out, uint32_t max_bytes)See escher/shape/doc/RoundedRectTessellation.JPG.
Defined at line 76 of file ../../src/ui/lib/escher/shape/rounded_rect.cc
-
MeshPtr NewFullScreenMesh (MeshBuilderFactory * factory, BatchGpuUploader * gpu_uploader)Tessellate a full-screen mesh. The returned mesh has only position and UV
coordinates.
Defined at line 441 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
void GenerateRoundedRectVertices (const RoundedRectSpec & spec, const MeshSpec & mesh_spec, void * vertices_out, uint32_t max_bytes)Defined at line 252 of file ../../src/ui/lib/escher/shape/rounded_rect.cc
-
bool IntersectRayPlane (const escher::ray4 & ray, const escher::plane3 & plane, float * out_distance)Convenient wrapper function for the above IntersectLinePlane function to allow
for a more idiomatic way to test ray-plane intersections.
Defined at line 149 of file ../../src/ui/lib/escher/geometry/intersection.cc
-
std::ostream & operator<< (std::ostream & str, const impl::ShaderModuleResourceLayout & )Defined at line 192 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
void GenerateRoundedRectVertices (const RoundedRectSpec & spec, const MeshSpec & mesh_spec, void * primary_attributes_out, uint32_t max_primary_attribute_bytes, void * secondary_attributes_out, uint32_t max_secondary_attribute_bytes)Defined at line 276 of file ../../src/ui/lib/escher/shape/rounded_rect.cc
-
vk::ImageFormatConstraintsInfoFUCHSIA GetDefaultImageFormatConstraintsInfo (const vk::ImageCreateInfo & create_info)Given a VkImageCreateInfo with a specific format, this returns the default
VkImageFormatConstraintsInfoFUCHSIA which could be used in
VkImageConstraintsInfoFUCHSIA to set Vulkan drivers sysmem constraints.
- The |format| field of VkImageCreateInfo cannot be |eUndefined|, and
the |usage| field cannot be null.
- It will only request format features based on |usage| field.
- It will not request any extra sysmem pixel format.
- It will use SRGB color space for images with SRGB formats, otherwise it
will use REC709 for YUV formats.
Defined at line 160 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
std::ostream & operator<< (std::ostream & str, const PaperRendererConfig & )Defined at line 255 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
ColorSpace GetDefaultColorSpace (vk::Format format)Textures created by Escher (e.g. output textures, textures for testing
purposes) will use the default color space defined by this function and will
be only determined by the image format (i.e. whether it is a YUV image).
Defined at line 11 of file ../../src/ui/lib/escher/vk/color_space.cc
-
std::ostream & operator<< (std::ostream & str, const ShaderVariantArgs & )Defined at line 393 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const Interval & )Debugging.
-
uint32_t GetMeshAttributeSize (MeshAttribute attr)Return the per-vertex size of the specified attribute, as documented above
(e.g. kPosition2D == sizeof(vec2)).
Defined at line 22 of file ../../src/ui/lib/escher/shape/mesh_spec.cc
-
std::ostream & operator<< (std::ostream & str, const Rectangle2D & )Defined at line 78 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
MeshPtr NewSphereMesh (MeshBuilderFactory * factory, BatchGpuUploader * gpu_uploader, const MeshSpec & spec, int subdivisions, vec3 center, float radius)Tessellate a sphere with the specified center and radius. If subdivisions ==
0, the result is a regular octahedron. Increasing the number of subdivisions
by 1 subdivides each triangle into 3 by adding a vertex at the triangle
midpoint, and moving it outward to match the desired radius.
If UV-coordinates are to be generated, the surface is parameterized as
follows. Looking at the un-subdivided octahedron from the right (i.e. in the
direction of the negative X-axis), the 4 visible faces are mapped to the
rotated square with corners (0, .5), (.5, 0), (1, .5), (.5, 1), and the
vertex at (radius, 0, 0) is mapped to the center of the texture: (.5, .5).
The unmapped 4 corners of the texture are "folded over" to map to the 4
hidden faces of the octahedron. During subdivision, the UV coordinates are
linearly interpolated for each new vertex.
TODO(https://fxbug.dev/42152845): the approach described above is wrong: the newly-inserted
vertices are correct positions, but the all of the initial octahedron edges
are left untouched. The proper approach is to double the number of vertices
at each subdivision level (and quadruple the triangle count) by splitting
each edge at the mid-point. However, doing this with an indexed mesh (i.e.
without inserting two vertices for every edge, one at each half-edge) is
non-trivial, especially without a traversal-friendly mesh representation such
as Rossignac's "corner table".
Defined at line 460 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
uint32_t GetMeshAttributeOffset (const MeshAttributes & attributes, MeshAttribute attr)Return the byte-offset of the specified attribute |attr| within a vertex that contains all of the
attributes specified by |attributes|. For example, if |attributes| is "kPosition3D | kUV" and
|attr| is "kUV" then the result will be 12, because the UV coordinates will immediately follow
the vec3 position, and sizeof(vec3) == 12.
NOTE: this can also be used to find the stride of the vertex. In the above
example, if we replace |attr| with "kStride", then the result will be 20,
because the vertex consists of a vec3 position followed by vec2 UV coords,
and sizeof(vec3) + sizeof(vec2) == 20.
Defined at line 58 of file ../../src/ui/lib/escher/shape/mesh_spec.cc
-
std::ostream & operator<< (std::ostream & str, const impl::DescriptorSetLayout & )Defined at line 181 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
IndexedTriangleMesh3d<vec2> NewCubeIndexedTriangleMesh (const MeshSpec & spec)Constructs an axis-aligned unit cube mesh.
Defined at line 155 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
std::ostream & operator<< (std::ostream & str, const Camera & )Debugging.
Defined at line 176 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & os, const ColorRgba & c)Color printing.
Defined at line 11 of file ../../src/ui/lib/escher/types/color.cc
-
std::ostream & operator<< (std::ostream & os, const ColorBgra & c)Defined at line 15 of file ../../src/ui/lib/escher/types/color.cc
-
bool operator== (const ColorBgra & a, const ColorBgra & b)Defined at line 62 of file ../../src/ui/lib/escher/types/color.h
-
template <>void IndexedTriangleMeshPushLerpedAttribute<std::nullptr_t> (std::vector<nullptr_t> * target, std::vector<nullptr_t> * source, size_t index1, size_t index2, float interp_param)Defined at line 62 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
TexturePtr CreateDepthBuffer (Escher * escher, const ImagePtr & output_image)Defined at line 62 of file ../../src/ui/lib/escher/test/flatland/rectangle_compositor_unittest.cc
-
int32_t CountLeadingOnes (uint32_t value)Defined at line 64 of file ../../src/ui/lib/escher/util/bit_ops.h
-
template <typename VecT>float PlaneDistanceToPoint (const planeN<VecT> & plane, const VecT & point)Return the distance from the point to the plane. This distance is oriented:
it can be positive or negative (or zero, if the point is on the plane). A
positive value means that the point is inside the half-space defined by the
plane, and a negative value means that the point is outside.
Defined at line 64 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
int32_t CountTrailingOnes (uint32_t value)Defined at line 66 of file ../../src/ui/lib/escher/util/bit_ops.h
-
template <typename MeshT>void IndexedTriangleMeshPushLerpedAttributes (MeshT * target, MeshT * source, size_t index1, size_t index2, float interp_param)Defined at line 67 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
float PlaneDistanceToPoint (const planeN<vec3> & plane, const vec2 & point)Promote |point| to 3D in order to be tested against 3D plane.
Defined at line 69 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
std::ostream & operator<< (std::ostream & str, const plane2 & )Defined at line 70 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
template <typename T>void ForEachBitIndex (uint32_t value, const T & func)Invoke |func| with the index of each non-zero bit in |value|.
Defined at line 70 of file ../../src/ui/lib/escher/util/bit_ops.h
-
bool operator< (const ColorRgba & a, const ColorRgba & b)Color ordering. There is no guarantee that two colors will sort the same
way when represented as different formats. For example, if A and B are
instances of ColorRgba and A
<
B, then if they are mapped to equivalent
instances of ColorBgra A` and B`, it is possible that B` > A`. The rationale
is that although this guarantee would be easy to provide for RGBA and BGRA,
it can't be provided for HSV without converting to something RGB-like.
Defined at line 72 of file ../../src/ui/lib/escher/types/color.h
-
float PlaneDistanceToPoint (const planeN<vec2> & plane, const vec3 & point)Demote |point| to 2D in order to be tested against 2D plane.
Defined at line 74 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
std::ostream & operator<< (std::ostream & str, const plane3 & )Defined at line 74 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
bool operator< (const ColorBgra & a, const ColorBgra & b)Defined at line 75 of file ../../src/ui/lib/escher/types/color.h
-
template <typename AttrT>void IndexedTriangleMeshPushCopiedAttribute (std::vector<AttrT> * target, std::vector<AttrT> * source, size_t index)Helper functions that copy an attribute from a source mesh, pushing it to
the back of a target mesh.
Defined at line 82 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
template <typename BitT>EnumFlags<BitT> operator& (BitT bit, const EnumFlags<BitT> & flags)Defined at line 83 of file ../../src/ui/lib/escher/util/enum_flags.h
-
template <typename PlaneT, typename VecT>bool PlaneClipsPoint (const PlaneT & plane, const VecT & point, const float_t & epsilon)Return true if point is contained within the half-space of the oriented
plane, or on the boundary.
Epsilon controls the aggressiveness of the clipping. A higher epsilon
means less aggressive clipping, with a minimum allowed value of 0.f.
Defined at line 83 of file ../../src/ui/lib/escher/geometry/plane_ops.h
-
template <typename T>void ForEachBitRange (uint32_t value, const T & func)Invoke |func| for each contiguous range of non-zero bits in |value|. Two
arguments are passed to each invocation of |func|:
- the index of the initial bit of the range
- the number of bits in the range
Defined at line 83 of file ../../src/ui/lib/escher/util/bit_ops.h
-
template <>void IndexedTriangleMeshPushCopiedAttribute<std::nullptr_t> (std::vector<nullptr_t> * target, std::vector<nullptr_t> * source, size_t index)Defined at line 86 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
template <typename BitT>EnumFlags<BitT> operator| (BitT bit, const EnumFlags<BitT> & flags)Defined at line 88 of file ../../src/ui/lib/escher/util/enum_flags.h
-
ray4 operator* (const glm::mat4 & matrix, const ray4 & ray)Defined at line 89 of file ../../src/ui/lib/escher/geometry/types.h
-
template <typename MeshT>void IndexedTriangleMeshPushCopiedAttributes (MeshT * target, MeshT * source, size_t index)Defined at line 90 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
template <typename BitT>EnumFlags<BitT> operator^ (BitT bit, const EnumFlags<BitT> & flags)Defined at line 93 of file ../../src/ui/lib/escher/util/enum_flags.h
-
BoundingBox operator* (const mat4 & matrix, const BoundingBox & box)Return a new BoundingBox that encloses the 8 corners of this box, after
they are transformed by the matrix. Note: this can cause the box to grow,
e.g. if you rotate it by 45 degrees.
Defined at line 93 of file ../../src/ui/lib/escher/geometry/bounding_box.cc
-
std::ostream & operator<< (std::ostream & str, const MeshAttribute & attr)Debugging.
Defined at line 84 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
BoundingBox operator+ (const vec3 & translation, const BoundingBox & box)Return a new Bounding box by translating the input box.
Defined at line 96 of file ../../src/ui/lib/escher/geometry/bounding_box.h
-
template <typename T>void SetBitsAtAndAboveIndex (T * input, uint32_t index)Set to 1 all bits in |input| at and above |index|.
Defined at line 98 of file ../../src/ui/lib/escher/util/bit_ops.h
-
template <typename MeshT, typename PlaneT>std::pair<MeshT, std::vector<PlaneT>> IndexedTriangleMeshClip (MeshT input_mesh, const PlaneT * planes, size_t num_planes)Defined at line 98 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh_clip.h
-
BoundingBox operator+ (const BoundingBox & box, const vec3 & translation)Return a new Bounding box by translating the input box.
Defined at line 102 of file ../../src/ui/lib/escher/geometry/bounding_box.h
-
std::ostream & operator<< (std::ostream & str, const MeshAttributes & attributes)Defined at line 111 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
IndexedTriangleMesh2d<vec2> NewFlatRectangleMesh (vec2 origin, vec2 extent, vec2 top_left_uv, vec2 bottom_right_uv)Tessellate a basic rectangle on the XY plane with no depth. The origin refers
to the top-left hand corner of rectangle, and the extent is the width and height.
UV coordinates are also provided directly by the caller.
Defined at line 117 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
bool operator== (const MeshSpec & spec1, const MeshSpec & spec2)Inline function definitions.
Defined at line 143 of file ../../src/ui/lib/escher/shape/mesh_spec.h
-
template <typename AttrT>void IndexedTriangleMeshPrintAttribute (std::ostream & str, const std::vector<AttrT> & attributes, size_t index, const char * prefix)Print IndexedTriangleMesh on ostream.
Defined at line 165 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh.h
-
template <>void IndexedTriangleMeshPrintAttribute<std::nullptr_t> (std::ostream & str, const std::vector<nullptr_t> & attributes, size_t index, const char * prefix)Defined at line 169 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh.h
-
ImageConstraintsInfo GetDefaultImageConstraintsInfo (const vk::ImageCreateInfo & create_info, bool allow_protected_memory)Given a VkImageCreateInfo with or without a specific format, this returns the
default VkImageConstraintsInfoFUCHSIA which could be used to set Vulkan
drivers sysmem constraints.
- If the |format| is not |eUndefined|, the generated constraints info will
only support that given format. Otherwise, the generated constraints info
will include support for all the Scenic-preferred RGBA and YUV formats.
- All the other assumptions are the same as |GetDefaultImageFormatConstraintsInfo|.
Defined at line 175 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
ColorSpace FromSysmemColorSpace (fuchsia::sysmem::ColorSpaceType sysmem_color_space)Converts sysmem ColorSpace enum to Escher ColorSpace enum.
Defined at line 202 of file ../../src/ui/lib/escher/util/fuchsia_utils.cc
-
IndexedTriangleMesh2d<vec2> GetStandardTestMesh2d ()Helper function that returns a standard mesh used for testing. It looks like
like this in the standard Vulkan coordinate system (positive y down).
(-1,-1) _______ (1,-1)
/
\
/
\
3 4
/
\
/
\
indices:
/______
\
/______
\
0 1 2
(-2,1) (0,1) (2,1)
Defined at line 563 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
IndexedTriangleMesh3d<vec2> GetStandardTestMesh3d ()Defined at line 570 of file ../../src/ui/lib/escher/mesh/tessellation.cc
-
std::ostream & operator<< (std::ostream & str, const BoundingBox & )Debugging.
Defined at line 168 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const ImageInfo & )Debugging.
Defined at line 151 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const VulkanDeviceQueues::Caps & )Defined at line 261 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const MeshSpec & spec)Defined at line 134 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
template <typename PositionT, typename AttrT1, typename AttrT2, typename AttrT3>std::ostream & operator<< (std::ostream & str, const IndexedTriangleMesh<PositionT, AttrT1, AttrT2, AttrT3> & mesh)Defined at line 174 of file ../../src/ui/lib/escher/mesh/indexed_triangle_mesh.h
-
std::ostream & operator<< (std::ostream & str, const impl::PipelineLayoutSpec & )Defined at line 222 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const RenderPassInfo & )Defined at line 374 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & str, const RenderPassInfo::AttachmentInfo & )Defined at line 369 of file ../../src/ui/lib/escher/impl/debug_print.cc
-
std::ostream & operator<< (std::ostream & strconst CommandBufferPipelineState::StaticState & )Defined at line 336 of file ../../src/ui/lib/escher/impl/debug_print.cc
Variables
const std::vector<std::string> kFlatlandShaderPaths
Defined at line 9 of file ../../src/ui/lib/escher/flatland/flatland_static_config.cc
const std::vector<std::string> kPaperRendererShaderPaths
Defined at line 9 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kFlatlandStandardProgram
Defined at line 13 of file ../../src/ui/lib/escher/flatland/flatland_static_config.cc
const ShaderProgramData kFlatlandColorConversionProgram
Defined at line 18 of file ../../src/ui/lib/escher/flatland/flatland_static_config.cc
const std::vector<std::string> kPaperRendererShaderSpirvPaths
Defined at line 22 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kAmbientLightProgramData
Defined at line 24 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kNoLightingProgramData
Defined at line 35 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kPointLightProgramData
Defined at line 47 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kShadowVolumeGeometryProgramData
Defined at line 58 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc
const ShaderProgramData kShadowVolumeGeometryDebugProgramData
Defined at line 69 of file ../../src/ui/lib/escher/paper/paper_renderer_static_config.cc