base

警告

这部分内容涉及 JAnim 实现原理,可能较为复杂,若没有研究源码的需求,你应酌情阅读

class janim.render.base.Programs(cache: 'dict[Any, mgl.Program | mgl.ComputeShader]' = <factory>, additional: 'list[mgl.Program]' = <factory>)

基类:object

cache: dict[Any, Program | ComputeShader]
additional: list[Program]
janim.render.base.get_programs(ctx: Context)
class janim.render.base.Renderer

基类:object

渲染器的基类

重写 render() 以实现具体功能

data_ctx: ContextVar = <ContextVar name='Renderer.data_ctx'>
render(item) None
static get_u_fix_in_frame(prog: Program) Uniform
static update_fix_in_frame(uniform: mgl.Uniform, item: Item) None
static update_dynamic_buffer_data(new_data: ~numpy.ndarray, vbo: ~moderngl.Buffer, resize_target: int, use_32bit_align: bool = False, assert_dtype: ~typing.Any = <class 'numpy.float32'>) None
static update_static_buffer_data(new_data: ndarray, vbo: Buffer, resize_target: int) None
static depth_test_if_enabled(ctx: mgl.Context, item: Item)
class janim.render.base.RenderData(*, ctx: Context, camera_info: CameraInfo, light_source_location: ndarray, anti_alias_radius: float)

基类:object

在渲染过程中需要配置的属性

通过 Renderer.data_ctx 进行设置和获取

ctx: Context
camera_info: CameraInfo
light_source_location: ndarray
anti_alias_radius: float
janim.render.base.apply_blend_flags(ctx: Context) None
janim.render.base.create_context(**kwargs) Context
janim.render.base.create_context_430_or_330(**kwargs) Context