feat: major engine overhaul - scene demo with lighting, sphere, ground

- Scene Demo: cube + sphere + ground plane with proper lighting
- Audio: XAudio2 dynamic loading + WAV playback
- Physics: expanded collision system
- Renderer: improved pipeline with materials
- UI: extended widget system
- VisualScript: enhanced serializer + block interactions
- ASM: optimized math/memory/profiling routines
- Window: mouse input + scroll support
This commit is contained in:
shuiyu1123 committed 2026-07-12 08:21:07 +08:00
1 parent 2653926d85
commit 0669d102ce
35 files changed
+1844 -314

No files matched your search

+17 -14
View File
@@ -114,7 +114,7 @@ mem_aligned_realloc PROC
push rdi
push rsi
push r12
sub rsp, 40
sub rsp, 56 ; shadow + 3 saved qwords
mov rbx, rdx ; rbx = new size
mov rdi, r8 ; rdi = alignment
@@ -124,8 +124,11 @@ mem_aligned_realloc PROC
jz realloc_alloc
; 保存旧信息
mov rsi, [rcx - 8] ; 原始指针
mov r12, [rcx - 16] ; 旧 size
mov [rsp + 32], rcx ; 旧对齐指针(即用户数据起始)
mov rax, [rcx - 8]
mov [rsp + 24], rax ; 旧原始 malloc 指针
mov rax, [rcx - 16]
mov [rsp + 16], rax ; 旧 size
; 分配新内存
mov rcx, rbx
@@ -134,26 +137,26 @@ mem_aligned_realloc PROC
test rax, rax
jz realloc_failed
mov rsi, rax ; rsi = 新对齐指针
; 复制旧数据 (取较小值)
mov rdx, r12
mov rdx, [rsp + 16] ; 旧 size
cmp rdx, rbx
jbe realloc_copy_ok
mov rdx, rbx
realloc_copy_ok:
mov rdi, rax ; 保存新指针
mov rcx, rax ; dst
; rsi = 旧数据起始
mov rsi, [rcx - 8] ; 旧原始指针
; 需要获取旧的对齐偏移
; 简化: 直接复制
; fast_memcpy(dst, src, count): rcx=dst, rdx=src, r8=count
mov rcx, rsi
mov r8, rdx
mov rdx, [rsp + 32] ; 旧对齐指针
call fast_memcpy
; 释放旧内存
mov rcx, rsi
; 释放旧内存(使用原始 malloc 指针)
mov rcx, [rsp + 24]
call mem_aligned_free
mov rax, rdi ; 返回新指针
mov rax, rsi ; 返回新指针
jmp realloc_done
realloc_alloc:
@@ -166,7 +169,7 @@ realloc_failed:
xor rax, rax
realloc_done:
add rsp, 40
add rsp, 56
pop r12
pop rsi
pop rdi