25 lines
884 B
Plaintext
25 lines
884 B
Plaintext
Direct3D resources are going to be a little bit of a hack.
|
|
There is a tough situation, because precompiled resources
|
|
(XPR) can be loaded into memory manually by an Xbox Game,
|
|
and then "Registered" with pResource->Register(addr);
|
|
|
|
This is a problem because we never have an opportunity to
|
|
intercept the "this" pointer for this datatype. The base
|
|
resource class looks like this:
|
|
|
|
DWORD Common;
|
|
DWORD Data;
|
|
DWORD Lock;
|
|
|
|
The first idea is to tuck away the PC Direct3D resource
|
|
pointer inside of pResource->Data. The trouble with this
|
|
is that some Xbox Games will directly access and modify
|
|
this member.
|
|
|
|
Another technique is to hide the PC Direct3D resource pointer
|
|
inside of the buffer allocated by Data. This could work, as
|
|
long as Xbox Games do not access the resource Data after the
|
|
initial Register function is called.
|
|
|
|
I am currently using the first idea until we run into trouble.
|