render3d: @creates / @releases on its handles

GpuBuffer (gpu_buffer_new/free), GpuTexture, GpuFramebuffer, GpuRenderbuffer, Target (target_new/free),
Model (gltf_load / model_release), Mesh (gpu_mesh_new / gpu_mesh_free, mesh_release), Actor
(actor_new / actor_release) and SkinClone (skin_clone / skin_clone_free), for ludic deps --resources.
Compiled (steady).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-28 16:58:31 +03:00
parent a0c6f8ce7f
commit 0b89ed85b7
6 changed files with 19 additions and 0 deletions

View file

@ -71,6 +71,7 @@ property Target {
h: int = 0
}
@alloc_ok("made once per resource and kept for its life (a texture, program, sampler, view, layout or memory block is created when first asked for)")
@creates(Target)
function target_new(render3d_st: mut Render3dState, w: int, h: int, ifmt: int, fmt: int, ty: int, with_depth: bool, filter: int) -> Target {
let t = new Target
t.w = w; t.h = h
@ -87,6 +88,7 @@ function target_new(render3d_st: mut Render3dState, w: int, h: int, ifmt: int, f
gpu_fb_bind(render3d_st, 0)
return t
}
@releases(Target)
function target_free(render3d_st: mut Render3dState, t: Target) -> void {
if t == null { return }
gpu_fb_free(render3d_st, t.fbo)