class Frame

Defined at line 33 of file ../../src/ui/lib/escher/renderer/frame.h

Represents a single render pass on a command queue. There may be multiple

frames issuing commands per render draw call. Frame is passed into a

Renderer, which uses it to obtain command buffers, submit partial frames, do

profiling, etc.

Public Members

static const ResourceTypeInfo kTypeInfo

Public Methods

const ResourceTypeInfo & type_info ()

Defined at line 36 of file ../../src/ui/lib/escher/renderer/frame.h

void ~Frame ()

Defined at line 48 of file ../../src/ui/lib/escher/renderer/frame.cc

uint64_t frame_number ()

Defined at line 61 of file ../../src/ui/lib/escher/renderer/frame.h

CommandBuffer * cmds ()

Defined at line 63 of file ../../src/ui/lib/escher/renderer/frame.h

void SubmitPartialFrame (const SemaphorePtr & partial_frame_done)

Submit the current CommandBuffer, and obtain a new CommandBuffer for subsequent commands. If

|partial_frame_done| is not null, it will be signaled when the submitted CommandBuffer is

finished.

Defined at line 84 of file ../../src/ui/lib/escher/renderer/frame.cc

void EndFrame (const SemaphorePtr & frame_done, FrameRetiredCallback frame_retired_callback)

Submit the frame's final CommandBuffer. When it is finished, |frame_done| will be signaled and

|frame_retired_callback| will be invoked; the latter occurs when the command-buffer is cleaned

up in Escher::Cleanup(), perhaps more than a millisecond later.

Defined at line 104 of file ../../src/ui/lib/escher/renderer/frame.cc

void EndFrame (const std::vector<SemaphorePtr> & semaphores, FrameRetiredCallback frame_retired_callback)

Submit the frame's final CommandBuffer. When it is finished, all of the semaphores in the

vector |semaphores| will signaled and |frame_retired_callback| will be invoked; the latter

occurs when the the command-buffer is cleaned up in Escher::Cleanup(), perhaps more than a

millisecond later.

Defined at line 109 of file ../../src/ui/lib/escher/renderer/frame.cc

void DisableLazyPipelineCreation ()

See |CommandBuffer::DisableLazyPipelineCreation()|. Disables lazy pipeline creation on the

frame's current and subsequent CommandBuffers.

Defined at line 175 of file ../../src/ui/lib/escher/renderer/frame.cc

vk::CommandBuffer vk_command_buffer ()

Defined at line 59 of file ../../src/ui/lib/escher/renderer/frame.cc

uint64_t command_buffer_sequence_number ()

Defined at line 65 of file ../../src/ui/lib/escher/renderer/frame.h

BlockAllocator * host_allocator ()

Defined at line 67 of file ../../src/ui/lib/escher/renderer/frame.h

template <typename T>
T * Allocate ()

Allocate temporary CPU memory that is valid until EndFrame() is called.

Defined at line 71 of file ../../src/ui/lib/escher/renderer/frame.h

template <typename T>
T * AllocateMany (size_t count)

Allocate temporary CPU memory that is valid until EndFrame() is called.

Defined at line 77 of file ../../src/ui/lib/escher/renderer/frame.h

UniformAllocation AllocateUniform (size_t size, size_t alignment)

Allocate temporary GPU uniform buffer memory that is valid until the frame is finished

rendering (after EndFrame() is called).

Defined at line 83 of file ../../src/ui/lib/escher/renderer/frame.h

bool use_protected_memory ()

Defined at line 87 of file ../../src/ui/lib/escher/renderer/frame.h

GpuAllocator * gpu_allocator ()

Defined at line 173 of file ../../src/ui/lib/escher/renderer/frame.cc

Friends

class BatchGpuDownloader
class BatchGpuUploader
class FrameManager