|
Blender V4.3
|
#include <mtl_immediate.hh>
Inherits blender::gpu::Immediate.
Public Member Functions | |
| MTLImmediate (MTLContext *ctx) | |
| ~MTLImmediate () | |
| uchar * | begin () override |
| void | end () override |
| bool | imm_is_recording () |
Public Member Functions inherited from blender::gpu::Immediate | |
| Immediate () | |
| virtual | ~Immediate () |
Additional Inherited Members | |
Public Attributes inherited from blender::gpu::Immediate | |
| uchar * | vertex_data = nullptr |
| uint | vertex_idx = 0 |
| uint | vertex_len = 0 |
| uint16_t | unassigned_attr_bits = 0 |
| uint16_t | enabled_attr_bits = 0 |
| GPUPrimType | prim_type = GPU_PRIM_NONE |
| GPUVertFormat | vertex_format = {} |
| GPUShader * | shader = nullptr |
| bool | strict_vertex_len = true |
| Batch * | batch = nullptr |
| std::optional< eGPUBuiltinShader > | prev_builtin_shader |
| std::optional< eGPUBuiltinShader > | builtin_shader_bound |
| float | uniform_color [4] |
Definition at line 22 of file mtl_immediate.hh.
| blender::gpu::MTLImmediate::MTLImmediate | ( | MTLContext * | ctx | ) |
Definition at line 26 of file mtl_immediate.mm.
| blender::gpu::MTLImmediate::~MTLImmediate | ( | ) |
Definition at line 31 of file mtl_immediate.mm.
|
overridevirtual |
Implements blender::gpu::Immediate.
Definition at line 33 of file mtl_immediate.mm.
References BLI_assert, blender::gpu::MTLBufferRange::data, blender::gpu::MTLContext::get_scratchbuffer_manager(), GPU_PRIM_LINE_LOOP, blender::gpu::gpu_prim_type_to_metal(), blender::gpu::MTLBufferRange::metal_buffer, blender::gpu::mtl_prim_type_to_topology_class(), blender::gpu::Immediate::prim_type, blender::gpu::MTLScratchBufferManager::scratch_buffer_allocate_range_aligned(), vertex_buffer_size(), blender::gpu::Immediate::vertex_format, and blender::gpu::Immediate::vertex_len.
|
overridevirtual |
Implements blender::gpu::Immediate.
Definition at line 58 of file mtl_immediate.mm.
References GPUVertFormat::attr_len, blender::gpu::MTLVertexDescriptor::attributes, GPUVertFormat::attrs, blender::gpu::MTLRenderPassState::bind_vertex_buffer(), BLI_assert, BLI_assert_msg, BLI_assert_unreachable, blender::gpu::MTLShaderInputAttribute::buffer_index, blender::gpu::MTLVertexAttributeDescriptorPSO::buffer_index, blender::gpu::MTLVertexDescriptor::buffer_layouts, blender::gpu::MTLBufferRange::buffer_offset, blender::gpu::MTLRenderPassState::cached_vertex_buffer_bindings, GPUVertAttr::comp_len, GPUVertAttr::comp_type, blender::gpu::MTLBufferRange::data, blender::gpu::MTLContext::ensure_begin_render_pass(), blender::gpu::MTLContext::ensure_depth_stencil_state(), blender::gpu::MTLContext::ensure_render_pipeline_state(), GPUVertAttr::fetch_mode, blender::gpu::MTLShaderInputAttribute::format, blender::gpu::MTLVertexAttributeDescriptorPSO::format, blender::gpu::MTLVertexAttributeDescriptorPSO::format_conversion_mode, G, G_DEBUG_GPU, blender::gpu::MTLContext::get(), blender::gpu::MTLShader::get_interface(), blender::gpu::MTLShaderInterface::get_name(), blender::gpu::MTLContext::get_null_buffer(), blender::gpu::MTLStateManager::get_pipeline_descriptor(), blender::gpu::MTLCommandBufferManager::get_render_pass_state(), blender::gpu::MTLContext::get_scratchbuffer_manager(), blender::gpu::MTLShader::get_ssbo_vertex_fetch_output_num_verts(), blender::gpu::MTLShader::get_ssbo_vertex_fetch_output_prim_type(), blender::gpu::MTLShader::get_uses_ssbo_vertex_fetch(), GPU_COMP_F32, GPU_FETCH_FLOAT, GPU_FETCH_INT, gpu_get_prim_count_from_type(), GPU_PRIM_LINE_LOOP, GPU_PRIM_LINE_STRIP, GPU_PRIM_NONE, GPU_PRIM_TRI_FAN, blender::gpu::gpu_prim_type_to_metal(), GPU_shader_bind(), GPU_shader_uniform_int_ex(), GPU_vertformat_attr_name_get(), blender::gpu::MTLShaderInputAttribute::index, blender::gpu::MTLShader::is_valid(), blender::gpu::MTLContext::main_command_buffer, blender::gpu::MTLVertexDescriptor::max_attribute_value, max_ii(), blender::gpu::BufferBindingCached::metal_buffer, blender::gpu::MTLBufferRange::metal_buffer, blender::gpu::mtl_convert_vertex_format(), MTL_LOG_ERROR, MTL_LOG_WARNING, blender::gpu::mtl_needs_topology_emulation(), MTL_SSBO_VERTEX_FETCH_IBO_INDEX, MTL_SSBO_VERTEX_FETCH_MAX_VBOS, blender::gpu::mtl_vertex_count_fits_primitive_type(), blender::gpu::mtl_vertex_format_resize(), blender::gpu::Shader::name_get(), GPUVertAttr::name_len, blender::gpu::MTLShaderInputAttribute::name_offset, blender::gpu::MTLVertexDescriptor::num_ssbo_attributes, blender::gpu::MTLVertexDescriptor::num_vert_buffers, blender::gpu::MTLVertexAttributeDescriptorPSO::offset, GPUVertAttr::offset, blender::gpu::Immediate::prim_type, ptr, blender::gpu::MTLCommandBufferManager::register_draw_counters(), blender::gpu::MTLRenderPipelineStateDescriptor::reset_vertex_descriptor(), blender::gpu::MTLScratchBufferManager::scratch_buffer_allocate_range_aligned(), blender::gpu::MTLVertexDescriptor::ssbo_attributes, blender::gpu::MTLShader::ssbo_vertex_fetch_bind_attribute(), blender::gpu::MTLShader::ssbo_vertex_fetch_bind_attributes_begin(), blender::gpu::MTLShader::ssbo_vertex_fetch_bind_attributes_end(), blender::gpu::MTLShader::ssbo_vertex_type_to_attr_type(), blender::gpu::Context::state_manager, blender::gpu::MTLVertexBufferLayoutDescriptorPSO::step_function, blender::gpu::MTLVertexBufferLayoutDescriptorPSO::step_rate, blender::gpu::MTLVertexBufferLayoutDescriptorPSO::stride, GPUVertFormat::stride, blender::gpu::MTLVertexDescriptor::total_attributes, blender::gpu::MTLShader::uni_ssbo_input_prim_type_loc, blender::gpu::MTLShader::uni_ssbo_input_vert_count_loc, blender::gpu::MTLShader::uni_ssbo_uses_indexed_rendering, blender::gpu::MTLShader::uniform_int(), blender::gpu::unwrap(), blender::gpu::MTLVertexDescriptor::uses_ssbo_vertex_fetch, blender::gpu::MTLRenderPipelineStateDescriptor::vertex_descriptor, blender::gpu::Immediate::vertex_format, blender::gpu::Immediate::vertex_idx, blender::gpu::Immediate::vertex_len, and blender::gpu::wrap().
|
inline |
Definition at line 36 of file mtl_immediate.hh.