#include "flutter/lib/gpu/render_pass.h"#include <future>#include <memory>#include "flutter/lib/gpu/formats.h"#include "flutter/lib/gpu/render_pipeline.h"#include "flutter/lib/gpu/shader.h"#include "fml/make_copyable.h"#include "fml/memory/ref_ptr.h"#include "impeller/core/buffer_view.h"#include "impeller/core/formats.h"#include "impeller/core/sampler_descriptor.h"#include "impeller/core/shader_types.h"#include "impeller/geometry/color.h"#include "impeller/renderer/command.h"#include "impeller/renderer/pipeline.h"#include "impeller/renderer/pipeline_descriptor.h"#include "impeller/renderer/pipeline_library.h"#include "lib/gpu/context.h"#include "lib/ui/ui_dart_state.h"#include "tonic/converter/dart_converter.h"Go to the source code of this file.
Namespaces | |
| namespace | flutter |
| namespace | flutter::gpu |
Functions | |
| flutter::gpu::IMPLEMENT_WRAPPERTYPEINFO (flutter_gpu, RenderPass) | |
| void | InternalFlutterGpu_RenderPass_Initialize (Dart_Handle wrapper) |
| Dart_Handle | InternalFlutterGpu_RenderPass_SetColorAttachment (flutter::gpu::RenderPass *wrapper, flutter::gpu::Context *context, int color_attachment_index, int load_action, int store_action, float clear_color_r, float clear_color_g, float clear_color_b, float clear_color_a, flutter::gpu::Texture *texture, Dart_Handle resolve_texture_wrapper) |
| Dart_Handle | InternalFlutterGpu_RenderPass_SetDepthStencilAttachment (flutter::gpu::RenderPass *wrapper, int depth_load_action, int depth_store_action, float depth_clear_value, int stencil_load_action, int stencil_store_action, int stencil_clear_value, flutter::gpu::Texture *texture) |
| Dart_Handle | InternalFlutterGpu_RenderPass_Begin (flutter::gpu::RenderPass *wrapper, flutter::gpu::CommandBuffer *command_buffer) |
| void | InternalFlutterGpu_RenderPass_BindPipeline (flutter::gpu::RenderPass *wrapper, flutter::gpu::RenderPipeline *pipeline) |
| static void | BindVertexBuffer (flutter::gpu::RenderPass *wrapper, const std::shared_ptr< const impeller::DeviceBuffer > &buffer, int offset_in_bytes, int length_in_bytes, int vertex_count) |
| void | InternalFlutterGpu_RenderPass_BindVertexBufferDevice (flutter::gpu::RenderPass *wrapper, flutter::gpu::DeviceBuffer *device_buffer, int offset_in_bytes, int length_in_bytes, int vertex_count) |
| static void | BindIndexBuffer (flutter::gpu::RenderPass *wrapper, const std::shared_ptr< const impeller::DeviceBuffer > &buffer, int offset_in_bytes, int length_in_bytes, int index_type, int index_count) |
| void | InternalFlutterGpu_RenderPass_BindIndexBufferDevice (flutter::gpu::RenderPass *wrapper, flutter::gpu::DeviceBuffer *device_buffer, int offset_in_bytes, int length_in_bytes, int index_type, int index_count) |
| static bool | BindUniform (flutter::gpu::RenderPass *wrapper, flutter::gpu::Shader *shader, Dart_Handle uniform_name_handle, const std::shared_ptr< const impeller::DeviceBuffer > &buffer, int offset_in_bytes, int length_in_bytes) |
| bool | InternalFlutterGpu_RenderPass_BindUniformDevice (flutter::gpu::RenderPass *wrapper, flutter::gpu::Shader *shader, Dart_Handle uniform_name_handle, flutter::gpu::DeviceBuffer *device_buffer, int offset_in_bytes, int length_in_bytes) |
| bool | InternalFlutterGpu_RenderPass_BindTexture (flutter::gpu::RenderPass *wrapper, flutter::gpu::Shader *shader, Dart_Handle uniform_name_handle, flutter::gpu::Texture *texture, int min_filter, int mag_filter, int mip_filter, int width_address_mode, int height_address_mode) |
| void | InternalFlutterGpu_RenderPass_ClearBindings (flutter::gpu::RenderPass *wrapper) |
| void | InternalFlutterGpu_RenderPass_SetColorBlendEnable (flutter::gpu::RenderPass *wrapper, int color_attachment_index, bool enable) |
| void | InternalFlutterGpu_RenderPass_SetColorBlendEquation (flutter::gpu::RenderPass *wrapper, int color_attachment_index, int color_blend_operation, int source_color_blend_factor, int destination_color_blend_factor, int alpha_blend_operation, int source_alpha_blend_factor, int destination_alpha_blend_factor) |
| void | InternalFlutterGpu_RenderPass_SetDepthWriteEnable (flutter::gpu::RenderPass *wrapper, bool enable) |
| void | InternalFlutterGpu_RenderPass_SetDepthCompareOperation (flutter::gpu::RenderPass *wrapper, int compare_operation) |
| void | InternalFlutterGpu_RenderPass_SetStencilReference (flutter::gpu::RenderPass *wrapper, int stencil_reference) |
| void | InternalFlutterGpu_RenderPass_SetScissor (flutter::gpu::RenderPass *wrapper, int x, int y, int width, int height) |
| void | InternalFlutterGpu_RenderPass_SetViewport (flutter::gpu::RenderPass *wrapper, int x, int y, int width, int height, float z_near, float z_far) |
| void | InternalFlutterGpu_RenderPass_SetStencilConfig (flutter::gpu::RenderPass *wrapper, int stencil_compare_operation, int stencil_fail_operation, int depth_fail_operation, int depth_stencil_pass_operation, int read_mask, int write_mask, int target_face) |
| void | InternalFlutterGpu_RenderPass_SetCullMode (flutter::gpu::RenderPass *wrapper, int cull_mode) |
| void | InternalFlutterGpu_RenderPass_SetPrimitiveType (flutter::gpu::RenderPass *wrapper, int primitive_type) |
| void | InternalFlutterGpu_RenderPass_SetWindingOrder (flutter::gpu::RenderPass *wrapper, int winding_order) |
| void | InternalFlutterGpu_RenderPass_SetPolygonMode (flutter::gpu::RenderPass *wrapper, int polygon_mode) |
| bool | InternalFlutterGpu_RenderPass_Draw (flutter::gpu::RenderPass *wrapper) |
|
static |
Definition at line 361 of file render_pass.cc.
References flutter::gpu::RenderPass::element_count, flutter::gpu::RenderPass::has_index_buffer, flutter::gpu::RenderPass::index_buffer, flutter::gpu::RenderPass::index_buffer_type, impeller::kNone, flutter::gpu::ToImpellerIndexType(), and type.
Referenced by InternalFlutterGpu_RenderPass_BindIndexBufferDevice().
|
static |
Definition at line 391 of file render_pass.cc.
References flutter::gpu::RenderPass::fragment_uniform_bindings, flutter::gpu::Shader::GetShaderStage(), flutter::gpu::Shader::GetUniformStruct(), impeller::kCompute, impeller::kFragment, impeller::kUnknown, impeller::kVertex, flutter::gpu::Shader::UniformBinding::metadata, flutter::gpu::RenderPass::BufferAndUniformSlot::slot, flutter::gpu::Shader::UniformBinding::slot, tonic::StdStringFromDart(), and flutter::gpu::RenderPass::vertex_uniform_bindings.
Referenced by InternalFlutterGpu_RenderPass_BindUniformDevice().
|
static |
Definition at line 329 of file render_pass.cc.
References flutter::gpu::RenderPass::element_count, flutter::gpu::RenderPass::has_index_buffer, and flutter::gpu::RenderPass::vertex_buffer.
Referenced by impeller::EncodeCommandsInReactor(), and InternalFlutterGpu_RenderPass_BindVertexBufferDevice().
| Dart_Handle InternalFlutterGpu_RenderPass_Begin | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::CommandBuffer * | command_buffer | ||
| ) |
Definition at line 313 of file render_pass.cc.
References flutter::gpu::RenderPass::Begin(), and tonic::ToDart().
| void InternalFlutterGpu_RenderPass_BindIndexBufferDevice | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::DeviceBuffer * | device_buffer, | ||
| int | offset_in_bytes, | ||
| int | length_in_bytes, | ||
| int | index_type, | ||
| int | index_count | ||
| ) |
Definition at line 380 of file render_pass.cc.
References BindIndexBuffer(), and flutter::gpu::DeviceBuffer::GetBuffer().
| void InternalFlutterGpu_RenderPass_BindPipeline | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::RenderPipeline * | pipeline | ||
| ) |
Definition at line 322 of file render_pass.cc.
References flutter::gpu::RenderPass::SetPipeline().
| bool InternalFlutterGpu_RenderPass_BindTexture | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::Shader * | shader, | ||
| Dart_Handle | uniform_name_handle, | ||
| flutter::gpu::Texture * | texture, | ||
| int | min_filter, | ||
| int | mag_filter, | ||
| int | mip_filter, | ||
| int | width_address_mode, | ||
| int | height_address_mode | ||
| ) |
Definition at line 449 of file render_pass.cc.
References flutter::gpu::RenderPass::fragment_texture_bindings, flutter::gpu::RenderPass::GetContext(), flutter::gpu::Shader::GetShaderStage(), flutter::gpu::Shader::GetUniformTexture(), impeller::SamplerDescriptor::height_address_mode, impeller::kCompute, impeller::kFragment, impeller::kUnknown, impeller::kVertex, impeller::SamplerDescriptor::mag_filter, flutter::gpu::Shader::TextureBinding::metadata, impeller::SamplerDescriptor::min_filter, impeller::SamplerDescriptor::mip_filter, impeller::TextureAndSampler::slot, flutter::gpu::Shader::TextureBinding::slot, tonic::StdStringFromDart(), texture, flutter::gpu::ToImpellerMinMagFilter(), flutter::gpu::ToImpellerMipFilter(), flutter::gpu::ToImpellerSamplerAddressMode(), flutter::gpu::RenderPass::vertex_texture_bindings, and impeller::SamplerDescriptor::width_address_mode.
| bool InternalFlutterGpu_RenderPass_BindUniformDevice | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::Shader * | shader, | ||
| Dart_Handle | uniform_name_handle, | ||
| flutter::gpu::DeviceBuffer * | device_buffer, | ||
| int | offset_in_bytes, | ||
| int | length_in_bytes | ||
| ) |
Definition at line 437 of file render_pass.cc.
References BindUniform(), and flutter::gpu::DeviceBuffer::GetBuffer().
| void InternalFlutterGpu_RenderPass_BindVertexBufferDevice | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::DeviceBuffer * | device_buffer, | ||
| int | offset_in_bytes, | ||
| int | length_in_bytes, | ||
| int | vertex_count | ||
| ) |
Definition at line 351 of file render_pass.cc.
References BindVertexBuffer(), and flutter::gpu::DeviceBuffer::GetBuffer().
| void InternalFlutterGpu_RenderPass_ClearBindings | ( | flutter::gpu::RenderPass * | wrapper | ) |
Definition at line 501 of file render_pass.cc.
References flutter::gpu::RenderPass::ClearBindings().
| bool InternalFlutterGpu_RenderPass_Draw | ( | flutter::gpu::RenderPass * | wrapper | ) |
Definition at line 653 of file render_pass.cc.
References flutter::gpu::RenderPass::Draw().
| void InternalFlutterGpu_RenderPass_Initialize | ( | Dart_Handle | wrapper | ) |
Exports
Definition at line 242 of file render_pass.cc.
| Dart_Handle InternalFlutterGpu_RenderPass_SetColorAttachment | ( | flutter::gpu::RenderPass * | wrapper, |
| flutter::gpu::Context * | context, | ||
| int | color_attachment_index, | ||
| int | load_action, | ||
| int | store_action, | ||
| float | clear_color_r, | ||
| float | clear_color_g, | ||
| float | clear_color_b, | ||
| float | clear_color_a, | ||
| flutter::gpu::Texture * | texture, | ||
| Dart_Handle | resolve_texture_wrapper | ||
| ) |
Definition at line 247 of file render_pass.cc.
References impeller::ColorAttachment::clear_color, flutter::gpu::Context::GetContext(), flutter::gpu::RenderPass::GetRenderTarget(), flutter::gpu::Texture::GetTexture(), impeller::kStore, impeller::Attachment::load_action, impeller::Attachment::resolve_texture, impeller::RenderTarget::SetColorAttachment(), impeller::Attachment::store_action, flutter::gpu::SupportsNormalOffscreenMSAA(), impeller::Attachment::texture, texture, flutter::gpu::ToImpellerLoadAction(), and flutter::gpu::ToImpellerStoreAction().
| void InternalFlutterGpu_RenderPass_SetColorBlendEnable | ( | flutter::gpu::RenderPass * | wrapper, |
| int | color_attachment_index, | ||
| bool | enable | ||
| ) |
Definition at line 506 of file render_pass.cc.
References impeller::ColorAttachmentDescriptor::blending_enabled, and flutter::gpu::RenderPass::GetColorAttachmentDescriptor().
| void InternalFlutterGpu_RenderPass_SetColorBlendEquation | ( | flutter::gpu::RenderPass * | wrapper, |
| int | color_attachment_index, | ||
| int | color_blend_operation, | ||
| int | source_color_blend_factor, | ||
| int | destination_color_blend_factor, | ||
| int | alpha_blend_operation, | ||
| int | source_alpha_blend_factor, | ||
| int | destination_alpha_blend_factor | ||
| ) |
Definition at line 514 of file render_pass.cc.
References impeller::ColorAttachmentDescriptor::color_blend_op, flutter::gpu::RenderPass::GetColorAttachmentDescriptor(), flutter::gpu::ToImpellerBlendFactor(), and flutter::gpu::ToImpellerBlendOperation().
| void InternalFlutterGpu_RenderPass_SetCullMode | ( | flutter::gpu::RenderPass * | wrapper, |
| int | cull_mode | ||
| ) |
Definition at line 618 of file render_pass.cc.
References flutter::gpu::RenderPass::GetPipelineDescriptor(), impeller::PipelineDescriptor::SetCullMode(), and flutter::gpu::ToImpellerCullMode().
| void InternalFlutterGpu_RenderPass_SetDepthCompareOperation | ( | flutter::gpu::RenderPass * | wrapper, |
| int | compare_operation | ||
| ) |
Definition at line 545 of file render_pass.cc.
References impeller::DepthAttachmentDescriptor::depth_compare, flutter::gpu::RenderPass::GetDepthAttachmentDescriptor(), and flutter::gpu::ToImpellerCompareFunction().
| Dart_Handle InternalFlutterGpu_RenderPass_SetDepthStencilAttachment | ( | flutter::gpu::RenderPass * | wrapper, |
| int | depth_load_action, | ||
| int | depth_store_action, | ||
| float | depth_clear_value, | ||
| int | stencil_load_action, | ||
| int | stencil_store_action, | ||
| int | stencil_clear_value, | ||
| flutter::gpu::Texture * | texture | ||
| ) |
Definition at line 283 of file render_pass.cc.
References impeller::DepthAttachment::clear_depth, impeller::StencilAttachment::clear_stencil, flutter::gpu::RenderPass::GetRenderTarget(), impeller::Attachment::load_action, impeller::RenderTarget::SetDepthAttachment(), impeller::RenderTarget::SetStencilAttachment(), impeller::Attachment::store_action, impeller::Attachment::texture, texture, flutter::gpu::ToImpellerLoadAction(), and flutter::gpu::ToImpellerStoreAction().
| void InternalFlutterGpu_RenderPass_SetDepthWriteEnable | ( | flutter::gpu::RenderPass * | wrapper, |
| bool | enable | ||
| ) |
Definition at line 538 of file render_pass.cc.
References impeller::DepthAttachmentDescriptor::depth_write_enabled, and flutter::gpu::RenderPass::GetDepthAttachmentDescriptor().
| void InternalFlutterGpu_RenderPass_SetPolygonMode | ( | flutter::gpu::RenderPass * | wrapper, |
| int | polygon_mode | ||
| ) |
Definition at line 644 of file render_pass.cc.
References flutter::gpu::RenderPass::GetPipelineDescriptor(), impeller::PipelineDescriptor::SetPolygonMode(), and flutter::gpu::ToImpellerPolygonMode().
| void InternalFlutterGpu_RenderPass_SetPrimitiveType | ( | flutter::gpu::RenderPass * | wrapper, |
| int | primitive_type | ||
| ) |
Definition at line 626 of file render_pass.cc.
References flutter::gpu::RenderPass::GetPipelineDescriptor(), impeller::PipelineDescriptor::SetPrimitiveType(), and flutter::gpu::ToImpellerPrimitiveType().
| void InternalFlutterGpu_RenderPass_SetScissor | ( | flutter::gpu::RenderPass * | wrapper, |
| int | x, | ||
| int | y, | ||
| int | width, | ||
| int | height | ||
| ) |
Definition at line 559 of file render_pass.cc.
References height, impeller::TRect< T >::MakeXYWH(), flutter::gpu::RenderPass::scissor, width, x, and y.
| void InternalFlutterGpu_RenderPass_SetStencilConfig | ( | flutter::gpu::RenderPass * | wrapper, |
| int | stencil_compare_operation, | ||
| int | stencil_fail_operation, | ||
| int | depth_fail_operation, | ||
| int | depth_stencil_pass_operation, | ||
| int | read_mask, | ||
| int | write_mask, | ||
| int | target_face | ||
| ) |
Definition at line 588 of file render_pass.cc.
References impeller::StencilAttachmentDescriptor::depth_failure, impeller::StencilAttachmentDescriptor::depth_stencil_pass, flutter::gpu::RenderPass::GetStencilBackAttachmentDescriptor(), flutter::gpu::RenderPass::GetStencilFrontAttachmentDescriptor(), impeller::StencilAttachmentDescriptor::read_mask, impeller::StencilAttachmentDescriptor::stencil_compare, impeller::StencilAttachmentDescriptor::stencil_failure, flutter::gpu::ToImpellerCompareFunction(), flutter::gpu::ToImpellerStencilOperation(), and impeller::StencilAttachmentDescriptor::write_mask.
| void InternalFlutterGpu_RenderPass_SetStencilReference | ( | flutter::gpu::RenderPass * | wrapper, |
| int | stencil_reference | ||
| ) |
Definition at line 553 of file render_pass.cc.
References flutter::gpu::RenderPass::stencil_reference.
| void InternalFlutterGpu_RenderPass_SetViewport | ( | flutter::gpu::RenderPass * | wrapper, |
| int | x, | ||
| int | y, | ||
| int | width, | ||
| int | height, | ||
| float | z_near, | ||
| float | z_far | ||
| ) |
Definition at line 567 of file render_pass.cc.
References height, impeller::TRect< T >::MakeXYWH(), flutter::gpu::RenderPass::viewport, width, x, and y.
| void InternalFlutterGpu_RenderPass_SetWindingOrder | ( | flutter::gpu::RenderPass * | wrapper, |
| int | winding_order | ||
| ) |
Definition at line 635 of file render_pass.cc.
References flutter::gpu::RenderPass::GetPipelineDescriptor(), impeller::PipelineDescriptor::SetWindingOrder(), and flutter::gpu::ToImpellerWindingOrder().