mirror of
https://github.com/open-goal/jak-project
synced 2026-07-07 06:05:15 -04:00
decomp: ocean-transition (#616)
* some work on `ocean-transition` * decomp: finished non-blocked `ocean-transition` functions * decompiler: Support <0 unsigned comparison * decompiler/goalc: Support half-word and byte parallel extend ops * attempt to add support for byte stack spills, assertion errors `Assertion failed: idx < n_src, file ..\..\..\decompiler\Disasm\Instruction.cpp, line 353` * decomp: fix byte stack spills, only 1 issue remains in `draw-ocean-transition` * almost there... * closer, but unknowns about `dma-buffer` blocking * dealing with dma-buffer issues * some more fixes, only an obscure xmm issue remains * add two problematic functions to blacklists, avoid goal_src additions for now * fix building/compilation but TypeConsistency hits an assertion error the `ocean-mid-masks`'s `data` field is none of the types * decomp: finalize `ocean-transition` * address feedback - 1 issue remains * decomp: finalize `ocean-transition`
This commit is contained in:
@@ -3636,15 +3636,6 @@ FormElement* ConditionElement::make_generic(const Env& env,
|
||||
return make_less_than_zero_signed_check_generic(env, pool, source_forms, types);
|
||||
}
|
||||
|
||||
case IR2_Condition::Kind::LEQ_ZERO_SIGNED: {
|
||||
auto casted = make_casts_if_needed(source_forms, types, TypeSpec("int"), pool, env);
|
||||
auto zero = pool.alloc_single_element_form<SimpleAtomElement>(
|
||||
nullptr, SimpleAtom::make_int_constant(0));
|
||||
casted.push_back(zero);
|
||||
return pool.alloc_element<GenericElement>(GenericOperator::make_fixed(FixedOperatorKind::LEQ),
|
||||
casted);
|
||||
}
|
||||
|
||||
case IR2_Condition::Kind::LESS_THAN_ZERO_UNSIGNED: {
|
||||
auto casted = make_casts_if_needed(source_forms, types, TypeSpec("uint"), pool, env);
|
||||
auto zero = pool.alloc_single_element_form<SimpleAtomElement>(
|
||||
@@ -3654,6 +3645,15 @@ FormElement* ConditionElement::make_generic(const Env& env,
|
||||
casted);
|
||||
}
|
||||
|
||||
case IR2_Condition::Kind::LEQ_ZERO_SIGNED: {
|
||||
auto casted = make_casts_if_needed(source_forms, types, TypeSpec("int"), pool, env);
|
||||
auto zero = pool.alloc_single_element_form<SimpleAtomElement>(
|
||||
nullptr, SimpleAtom::make_int_constant(0));
|
||||
casted.push_back(zero);
|
||||
return pool.alloc_element<GenericElement>(GenericOperator::make_fixed(FixedOperatorKind::LEQ),
|
||||
casted);
|
||||
}
|
||||
|
||||
case IR2_Condition::Kind::GEQ_ZERO_SIGNED: {
|
||||
return make_geq_zero_signed_check_generic(env, pool, source_forms, types);
|
||||
}
|
||||
|
||||
@@ -84,7 +84,9 @@ constexpr StackInstrInfo stack_instrs[] = {{InstructionKind::SQ, false, 16, fals
|
||||
//{InstructionKind::LWU, true, 4, false}
|
||||
{InstructionKind::SD, false, 8, false},
|
||||
{InstructionKind::SWC1, false, 4, false},
|
||||
{InstructionKind::LWC1, true, 4, false}};
|
||||
{InstructionKind::LWC1, true, 4, false},
|
||||
{InstructionKind::SB, false, 1, false},
|
||||
{InstructionKind::LBU, true, 1, false}};
|
||||
} // namespace
|
||||
|
||||
StackSpillMap build_spill_map(const std::vector<Instruction>& instructions, Range<int> range) {
|
||||
|
||||
@@ -4284,9 +4284,7 @@
|
||||
(debug-buf dma-buffer :offset 36)
|
||||
(global-buf dma-buffer :offset 40)
|
||||
(bucket-group dma-bucket :offset 44)
|
||||
(buffer uint32 11 :offset 4) ;; for debugging?
|
||||
|
||||
|
||||
(buffer dma-buffer 11 :offset 4)
|
||||
(profile-bar profile-bar 2 :offset 48)
|
||||
(run-time uint64 :offset 56)
|
||||
)
|
||||
@@ -6615,7 +6613,7 @@
|
||||
)
|
||||
|
||||
(deftype ocean-mid-mask (structure)
|
||||
((mask uint8 8 :offset-assert 0 :do-not-decompile) ;; avoid huge arrays.
|
||||
((mask uint8 8 :offset-assert 0) ;; avoid huge arrays. (this causes an ocean-transition function to not decompile!)
|
||||
(dword uint64 :offset 0)
|
||||
)
|
||||
:pack-me
|
||||
@@ -6642,7 +6640,7 @@
|
||||
)
|
||||
|
||||
(deftype ocean-trans-mask (structure)
|
||||
((mask uint16 4 :offset-assert 0)
|
||||
((mask uint8 4 :offset-assert 0)
|
||||
(word uint64 :offset 0)
|
||||
)
|
||||
:pack-me
|
||||
@@ -6751,9 +6749,9 @@
|
||||
(corner-array ocean-corner 25 :inline :offset-assert 80)
|
||||
(corner-count int32 :offset-assert 2080)
|
||||
(temp-vecs vector 4 :inline :offset-assert 2096)
|
||||
(mid-mask-ptrs pointer 36 :offset-assert 2160)
|
||||
(mid-mask-ptrs (pointer int32) 36 :offset-assert 2160)
|
||||
(mid-camera-masks uint64 36 :offset-assert 2304)
|
||||
(trans-mask-ptrs pointer 64 :offset-assert 2592)
|
||||
(trans-mask-ptrs (pointer int32) 64 :offset-assert 2592)
|
||||
(trans-camera-masks ocean-trans-mask 16 :inline :offset-assert 2848)
|
||||
(trans-temp-masks ocean-trans-mask 16 :inline :offset-assert 2976)
|
||||
(near-mask-indices uint16 16 :offset-assert 3104)
|
||||
@@ -6992,9 +6990,9 @@
|
||||
(define-extern *ocean-trans-down-right-table* (pointer float))
|
||||
(define-extern *ocean-trans-up-right-table* (pointer float))
|
||||
(define-extern *ocean-trans-up-left-table* (pointer float))
|
||||
(define-extern *ocean-trans-corner-table* (pointer float))
|
||||
(define-extern *ocean-trans-strip-array* (pointer float))
|
||||
(define-extern *ocean-trans-st-table* (pointer float))
|
||||
(define-extern *ocean-trans-corner-table* (inline-array vector4w-2))
|
||||
(define-extern *ocean-trans-strip-array* (pointer float)) ;; TODO this should probably be a ocean-trans-strip-array ?
|
||||
(define-extern *ocean-trans-st-table* (inline-array vector))
|
||||
|
||||
|
||||
;; ----------------------
|
||||
@@ -20901,10 +20899,10 @@
|
||||
(define-extern ocean-interp-wave function)
|
||||
(define-extern ocean-generate-verts function)
|
||||
(define-extern draw-ocean-texture function)
|
||||
(define-extern ocean-init-buffer function)
|
||||
(define-extern draw-ocean-far function)
|
||||
(define-extern draw-ocean-mid function)
|
||||
(define-extern ocean-end-buffer function)
|
||||
(define-extern ocean-init-buffer (function dma-buffer none)) ; not confirmed
|
||||
(define-extern draw-ocean-far (function dma-buffer none)) ; not confirmed
|
||||
(define-extern draw-ocean-mid (function dma-buffer none)) ; not confirmed
|
||||
(define-extern ocean-end-buffer (function dma-buffer none)) ; not confirmed
|
||||
(define-extern draw-ocean-near function)
|
||||
(define-extern init-ocean-far-regs function)
|
||||
(define-extern render-ocean-far function)
|
||||
@@ -20913,9 +20911,12 @@
|
||||
(define-extern draw-ocean (function none))
|
||||
(define-extern update-ocean (function none))
|
||||
|
||||
;; - Symbols
|
||||
|
||||
(define-extern *ocean-map* ocean-map)
|
||||
|
||||
;; - Unknowns
|
||||
|
||||
(define-extern *ocean-map* ocean-map) ;; unknown type
|
||||
;;(define-extern *swamp-low-ocean-marker* object) ;; unknown type
|
||||
|
||||
|
||||
@@ -20963,7 +20964,7 @@
|
||||
;; - Functions
|
||||
|
||||
(define-extern ocean-mid-add-constants function)
|
||||
(define-extern ocean-mid-add-call function)
|
||||
(define-extern ocean-mid-add-call (function dma-buffer int none))
|
||||
(define-extern ocean-mid-add-upload function)
|
||||
(define-extern ocean-mid-add-call-flush (function dma-buffer uint none))
|
||||
(define-extern draw-ocean-transition (function dma-buffer none))
|
||||
@@ -20976,7 +20977,7 @@
|
||||
(define-extern ocean-mid-mask-ptrs-bit? (function uint uint))
|
||||
(define-extern ocean-mid-add-upload-table function)
|
||||
(define-extern ocean-mid-camera-masks-set! function)
|
||||
(define-extern ocean-mid-add-matrices function)
|
||||
(define-extern ocean-mid-add-matrices (function dma-buffer none)) ;; not verified
|
||||
(define-extern ocean-mid-check function)
|
||||
(define-extern ocean-matrix*! function)
|
||||
(define-extern ocean-mid-setup-constants function)
|
||||
@@ -20995,16 +20996,16 @@
|
||||
|
||||
;; - Functions
|
||||
|
||||
(define-extern ocean-make-trans-camera-masks (function uint uint uint uint none))
|
||||
(define-extern ocean-trans-add-upload-strip (function dma-buffer uint uint uint uint none))
|
||||
(define-extern ocean-trans-add-constants (function dma-buffer none))
|
||||
(define-extern draw-ocean-transition-seams (function dma-buffer none))
|
||||
(define-extern ocean-trans-camera-masks-bit? function)
|
||||
(define-extern ocean-trans-add-upload function)
|
||||
(define-extern ocean-trans-mask-ptrs-bit? function)
|
||||
(define-extern ocean-trans-add-upload-table function)
|
||||
(define-extern ocean-transition-check function)
|
||||
(define-extern ocean-trans-mask-ptrs-set! function)
|
||||
(define-extern ocean-make-trans-camera-masks (function uint uint uint uint symbol))
|
||||
(define-extern ocean-trans-add-upload-strip (function dma-buffer uint uint uint uint uint none))
|
||||
(define-extern ocean-trans-add-constants (function dma-buffer pointer))
|
||||
(define-extern draw-ocean-transition-seams (function dma-buffer symbol))
|
||||
(define-extern ocean-trans-camera-masks-bit? (function uint uint symbol))
|
||||
(define-extern ocean-trans-add-upload (function dma-buffer int int none))
|
||||
(define-extern ocean-trans-mask-ptrs-bit? (function int int symbol))
|
||||
(define-extern ocean-trans-add-upload-table (function dma-buffer int int (pointer float) int symbol none))
|
||||
(define-extern ocean-transition-check (function ocean-trans-mask int int vector symbol))
|
||||
(define-extern ocean-trans-mask-ptrs-set! (function int int symbol))
|
||||
|
||||
|
||||
;; ----------------------
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
"ocean-h": [["L2", "ocean-work", true]],
|
||||
|
||||
"ocean-trans-tables": [
|
||||
["L1", "(pointer float)", true, 16],
|
||||
["L1", "(inline-array vector)", true, 4],
|
||||
["L2", "(pointer float)", true, 160],
|
||||
["L3", "(pointer float)", true, 100],
|
||||
["L4", "(pointer float)", true, 72],
|
||||
|
||||
@@ -216,8 +216,6 @@
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"make-light-kit": [[16, "matrix"]],
|
||||
|
||||
"(method 23 trsqv)": [[16, "vector"]],
|
||||
"(method 24 trsqv)": [[16, "vector"]],
|
||||
|
||||
@@ -391,9 +389,19 @@
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"draw-ocean-transition": [[16, "sphere"]],
|
||||
"(method 18 tracking-spline)": [
|
||||
[16, "tracking-spline-sampler"],
|
||||
[32, "tracking-spline-sampler"]
|
||||
],
|
||||
|
||||
"draw-ocean-transition": [
|
||||
[16, "sphere"]
|
||||
],
|
||||
|
||||
"dm-cam-mode-func": [[16, "event-message-block"]],
|
||||
"ocean-trans-add-upload-table": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"dm-cam-settings-func": [[16, "event-message-block"]],
|
||||
|
||||
@@ -719,6 +727,11 @@
|
||||
[32, "quaternion"],
|
||||
[48, "vector"]
|
||||
],
|
||||
|
||||
"ocean-make-trans-camera-masks": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 28 task-control)": [[16, "event-message-block"]],
|
||||
|
||||
@@ -796,5 +809,17 @@
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"ocean-transition-check": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"ocean-trans-add-upload-strip": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"draw-ocean-transition-seams": [
|
||||
[16, "sphere"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below!": []
|
||||
}
|
||||
|
||||
@@ -1745,5 +1745,42 @@
|
||||
[110, "s5", "vector"]
|
||||
],
|
||||
|
||||
"ocean-trans-add-upload-table": [
|
||||
[44, "a0", "dma-packet"],
|
||||
[46, "a0", "dma-packet"],
|
||||
[51, "a0", "dma-packet"],
|
||||
[[55, 59], "v1", "vector4w"], // TODO - very likely wrong, but it's something that has 4 int32's,
|
||||
[[87, 228], "v1", "(inline-array vector)"],
|
||||
[241, "a0", "dma-packet"],
|
||||
[243, "a0", "dma-packet"],
|
||||
[248, "a0", "dma-packet"]
|
||||
],
|
||||
|
||||
"ocean-trans-add-upload-strip": [
|
||||
[39, "a0", "dma-packet"],
|
||||
[41, "a0", "dma-packet"],
|
||||
[46, "a0", "dma-packet"],
|
||||
[[57, 61], "v1", "vector4w"], // TODO - very likely wrong, but it's something that has 4 int32's,
|
||||
[[64, 147], "v1", "(inline-array vector)"], // TODO - very likely wrong, but it's something that has 4 int32's,
|
||||
[166, "a0", "dma-packet"],
|
||||
[168, "a0", "dma-packet"],
|
||||
[173, "a0", "dma-packet"]
|
||||
],
|
||||
|
||||
"ocean-trans-add-constants": [
|
||||
[7, "a1", "dma-packet"],
|
||||
[9, "a1", "dma-packet"],
|
||||
[14, "a1", "dma-packet"],
|
||||
[[17, 46], "v1", "matrix"]
|
||||
],
|
||||
|
||||
"draw-ocean-transition": [
|
||||
[255, "v1", "ocean-mid-mask"]
|
||||
],
|
||||
|
||||
// "ocean-trans-mask-ptrs-bit?": [
|
||||
// [[32, 41], "a0", "(pointer ocean-trans-mask)"]
|
||||
// ],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
(debug-buf dma-buffer :offset 36)
|
||||
(global-buf dma-buffer :offset 40)
|
||||
(bucket-group dma-bucket :offset 44)
|
||||
(buffer uint32 11 :offset 4) ;; for debugging?
|
||||
(buffer dma-buffer 11 :offset 4)
|
||||
(profile-bar profile-bar 2 :offset 48)
|
||||
(run-time uint64 :offset 56)
|
||||
)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
)
|
||||
|
||||
(deftype ocean-mid-masks (basic)
|
||||
((data (inline-array ocean-mid-mask) :offset-assert 4)
|
||||
((data (inline-array ocean-mid-mask) :offset-assert 4)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 9
|
||||
@@ -89,7 +89,7 @@
|
||||
)
|
||||
|
||||
(deftype ocean-trans-mask (structure)
|
||||
((mask uint16 4 :offset-assert 0)
|
||||
((mask uint8 4 :offset-assert 0)
|
||||
(word uint64 :offset 0)
|
||||
)
|
||||
:pack-me
|
||||
@@ -124,7 +124,6 @@
|
||||
:flag-assert #x900000020
|
||||
)
|
||||
|
||||
|
||||
(deftype ocean-near-indices (basic)
|
||||
((data (inline-array ocean-near-index) :offset-assert 4)
|
||||
)
|
||||
@@ -175,7 +174,6 @@
|
||||
:flag-assert #x900000280
|
||||
)
|
||||
|
||||
|
||||
(deftype ocean-wave-data (structure)
|
||||
((data uint8 1024 :offset-assert 0)
|
||||
)
|
||||
@@ -184,7 +182,6 @@
|
||||
:flag-assert #x900000400
|
||||
)
|
||||
|
||||
;; the size of this type overflows.
|
||||
(deftype ocean-wave-frames (structure)
|
||||
((frame ocean-wave-data 64 :inline :offset-assert 0)
|
||||
)
|
||||
@@ -201,9 +198,9 @@
|
||||
(corner-array ocean-corner 25 :inline :offset-assert 80)
|
||||
(corner-count int32 :offset-assert 2080)
|
||||
(temp-vecs vector 4 :inline :offset-assert 2096)
|
||||
(mid-mask-ptrs pointer 36 :offset-assert 2160)
|
||||
(mid-camera-masks uint64 36 :offset-assert 2304)
|
||||
(trans-mask-ptrs pointer 64 :offset-assert 2592)
|
||||
(mid-mask-ptrs (pointer int32) 36 :offset-assert 2160)
|
||||
(mid-camera-masks uint64 36 :offset-assert 2304)
|
||||
(trans-mask-ptrs (pointer int32) 64 :offset-assert 2592)
|
||||
(trans-camera-masks ocean-trans-mask 16 :inline :offset-assert 2848)
|
||||
(trans-temp-masks ocean-trans-mask 16 :inline :offset-assert 2976)
|
||||
(near-mask-indices uint16 16 :offset-assert 3104)
|
||||
@@ -416,3 +413,4 @@
|
||||
:flag-assert #x900000110
|
||||
)
|
||||
|
||||
(define-extern *ocean-trans-corner-table* (inline-array vector4w-2))
|
||||
|
||||
@@ -5,3 +5,10 @@
|
||||
;; name in dgo: ocean-mid
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; TODO - for ocean-transition
|
||||
(define-extern ocean-mid-add-matrices (function dma-buffer none)) ;; not verified
|
||||
(define-extern ocean-mid-add-call-flush (function dma-buffer uint none))
|
||||
(define-extern draw-ocean-transition (function dma-buffer none))
|
||||
(define-extern ocean-mid-add-call (function dma-buffer int none))
|
||||
(define-extern ocean-mid-camera-masks-bit? (function uint uint))
|
||||
(define-extern ocean-mid-mask-ptrs-bit? (function uint uint))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,3 +5,5 @@
|
||||
;; name in dgo: ocean
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; TODO - for ocean-transition
|
||||
(define-extern *ocean-map* ocean-map)
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
(debug-buf dma-buffer :offset 36)
|
||||
(global-buf dma-buffer :offset 40)
|
||||
(bucket-group dma-bucket :offset 44)
|
||||
(buffer uint32 11 :offset 4)
|
||||
(buffer dma-buffer 11 :offset 4)
|
||||
(profile-bar profile-bar 2 :offset 48)
|
||||
(run-time uint64 :offset 56)
|
||||
)
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
;; definition for method 3 of type ocean-mid-mask
|
||||
(defmethod inspect ocean-mid-mask ((obj ocean-mid-mask))
|
||||
(format #t "[~8x] ~A~%" obj 'ocean-mid-mask)
|
||||
(format #t "~Tmask[8] @ #x~X~%" (&-> obj dword))
|
||||
(format #t "~Tmask[8] @ #x~X~%" (-> obj mask))
|
||||
(format #t "~Tdword: #x~X~%" (-> obj dword))
|
||||
obj
|
||||
)
|
||||
@@ -161,7 +161,7 @@
|
||||
|
||||
;; definition of type ocean-trans-mask
|
||||
(deftype ocean-trans-mask (structure)
|
||||
((mask uint16 4 :offset-assert 0)
|
||||
((mask uint8 4 :offset-assert 0)
|
||||
(word uint64 :offset 0)
|
||||
)
|
||||
:pack-me
|
||||
@@ -374,9 +374,9 @@
|
||||
(corner-array ocean-corner 25 :inline :offset-assert 80)
|
||||
(corner-count int32 :offset-assert 2080)
|
||||
(temp-vecs vector 4 :inline :offset-assert 2096)
|
||||
(mid-mask-ptrs pointer 36 :offset-assert 2160)
|
||||
(mid-mask-ptrs (pointer int32) 36 :offset-assert 2160)
|
||||
(mid-camera-masks uint64 36 :offset-assert 2304)
|
||||
(trans-mask-ptrs pointer 64 :offset-assert 2592)
|
||||
(trans-mask-ptrs (pointer int32) 64 :offset-assert 2592)
|
||||
(trans-camera-masks ocean-trans-mask 16 :inline :offset-assert 2848)
|
||||
(trans-temp-masks ocean-trans-mask 16 :inline :offset-assert 2976)
|
||||
(near-mask-indices uint16 16 :offset-assert 3104)
|
||||
|
||||
@@ -849,110 +849,112 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *ocean-trans-corner-table*, type (pointer float)
|
||||
;; definition for symbol *ocean-trans-corner-table*, type (inline-array vector4w-2)
|
||||
(define
|
||||
*ocean-trans-corner-table*
|
||||
(new 'static 'array float 100
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.25
|
||||
0.0
|
||||
0.0
|
||||
0.5
|
||||
0.5
|
||||
0.0
|
||||
0.0
|
||||
0.25
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.25
|
||||
0.0
|
||||
0.5625
|
||||
0.1875
|
||||
0.1875
|
||||
0.0625
|
||||
0.375
|
||||
0.375
|
||||
0.125
|
||||
0.125
|
||||
0.1875
|
||||
0.5625
|
||||
0.0625
|
||||
0.1875
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.25
|
||||
0.5
|
||||
0.0
|
||||
0.5
|
||||
0.0
|
||||
0.375
|
||||
0.125
|
||||
0.375
|
||||
0.125
|
||||
0.25
|
||||
0.25
|
||||
0.25
|
||||
0.25
|
||||
0.125
|
||||
0.375
|
||||
0.125
|
||||
0.375
|
||||
0.0
|
||||
0.5
|
||||
0.0
|
||||
0.5
|
||||
0.25
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.1875
|
||||
0.0625
|
||||
0.5625
|
||||
0.1875
|
||||
0.125
|
||||
0.125
|
||||
0.375
|
||||
0.375
|
||||
0.0625
|
||||
0.1875
|
||||
0.1875
|
||||
0.5625
|
||||
0.0
|
||||
0.25
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.25
|
||||
0.0
|
||||
0.0
|
||||
0.5
|
||||
0.5
|
||||
0.0
|
||||
0.0
|
||||
0.25
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
(the-as (inline-array vector4w-2)
|
||||
(new 'static 'array float 100
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.25
|
||||
0.0
|
||||
0.0
|
||||
0.5
|
||||
0.5
|
||||
0.0
|
||||
0.0
|
||||
0.25
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.25
|
||||
0.0
|
||||
0.5625
|
||||
0.1875
|
||||
0.1875
|
||||
0.0625
|
||||
0.375
|
||||
0.375
|
||||
0.125
|
||||
0.125
|
||||
0.1875
|
||||
0.5625
|
||||
0.0625
|
||||
0.1875
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.25
|
||||
0.5
|
||||
0.0
|
||||
0.5
|
||||
0.0
|
||||
0.375
|
||||
0.125
|
||||
0.375
|
||||
0.125
|
||||
0.25
|
||||
0.25
|
||||
0.25
|
||||
0.25
|
||||
0.125
|
||||
0.375
|
||||
0.125
|
||||
0.375
|
||||
0.0
|
||||
0.5
|
||||
0.0
|
||||
0.5
|
||||
0.25
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.1875
|
||||
0.0625
|
||||
0.5625
|
||||
0.1875
|
||||
0.125
|
||||
0.125
|
||||
0.375
|
||||
0.375
|
||||
0.0625
|
||||
0.1875
|
||||
0.1875
|
||||
0.5625
|
||||
0.0
|
||||
0.25
|
||||
0.0
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
0.75
|
||||
0.25
|
||||
0.0
|
||||
0.0
|
||||
0.5
|
||||
0.5
|
||||
0.0
|
||||
0.0
|
||||
0.25
|
||||
0.75
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1123,29 +1125,13 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *ocean-trans-st-table*, type (pointer float)
|
||||
;; definition for symbol *ocean-trans-st-table*, type (inline-array vector)
|
||||
(define
|
||||
*ocean-trans-st-table*
|
||||
(new 'static 'array float 16
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
0.0
|
||||
1.0
|
||||
1.0
|
||||
0.0
|
||||
1.0
|
||||
1.0
|
||||
1.0
|
||||
0.0
|
||||
(new 'static 'inline-array vector 4
|
||||
(new 'static 'vector :z 1.0)
|
||||
(new 'static 'vector :x 1.0 :z 1.0)
|
||||
(new 'static 'vector :y 1.0 :z 1.0)
|
||||
(new 'static 'vector :x 1.0 :y 1.0 :z 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user