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:
1 parent
2653926d85
commit
0669d102ce
35 files changed
+1844
-314
No files matched your search
+17
-14
@@ -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
|
||||
|
||||
Reference in new issue
Block a user