Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
6ec11ac3
Commit
6ec11ac3
authored
Nov 16, 2008
by
Christian Costa
Committed by
Alexandre Julliard
Nov 17, 2008
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3dxof: Finish support for objects binary format.
parent
b67bbc92
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
10 deletions
+60
-10
d3dxof.c
dlls/d3dxof/d3dxof.c
+60
-10
No files found.
dlls/d3dxof/d3dxof.c
View file @
6ec11ac3
...
...
@@ -276,13 +276,6 @@ static HRESULT WINAPI IDirectXFileImpl_CreateEnumObject(IDirectXFile* iface, LPV
goto
error
;
}
if
(
header
[
2
]
==
XOFFILE_FORMAT_BINARY
)
{
FIXME
(
"Binary format not supported yet
\n
"
);
hr
=
DXFILEERR_NOTDONEYET
;
goto
error
;
}
if
(
header
[
2
]
==
XOFFILE_FORMAT_COMPRESSED
)
{
FIXME
(
"Compressed formats not supported yet
\n
"
);
...
...
@@ -803,10 +796,50 @@ static WORD parse_TOKEN(parse_buffer * buf)
}
else
{
static
int
nb_elem
;
static
int
is_float
;
if
(
!
nb_elem
)
{
if
(
!
read_bytes
(
buf
,
&
token
,
2
))
return
0
;
switch
(
token
)
/* Convert integer and float list into sereparate elements */
if
(
token
==
TOKEN_INTEGER_LIST
)
{
if
(
!
read_bytes
(
buf
,
&
nb_elem
,
4
))
return
0
;
token
=
TOKEN_INTEGER
;
is_float
=
FALSE
;
TRACE
(
"Integer list (TOKEN_INTEGER_LIST) of size %d
\n
"
,
nb_elem
);
}
else
if
(
token
==
TOKEN_FLOAT_LIST
)
{
if
(
!
read_bytes
(
buf
,
&
nb_elem
,
4
))
return
0
;
token
=
TOKEN_FLOAT
;
is_float
=
TRUE
;
TRACE
(
"Float list (TOKEN_FLOAT_LIST) of size %d
\n
"
,
nb_elem
);
}
}
if
(
nb_elem
)
{
token
=
is_float
?
TOKEN_FLOAT
:
TOKEN_INTEGER
;
nb_elem
--
;
{
DWORD
integer
;
if
(
!
read_bytes
(
buf
,
&
integer
,
4
))
return
0
;
*
(
DWORD
*
)
buf
->
value
=
integer
;
}
dump_TOKEN
(
token
);
return
token
;
}
switch
(
token
)
{
case
TOKEN_NAME
:
{
...
...
@@ -850,8 +883,25 @@ static WORD parse_TOKEN(parse_buffer * buf)
}
break
;
case
TOKEN_STRING
:
case
TOKEN_INTEGER_LIST
:
case
TOKEN_FLOAT_LIST
:
{
DWORD
count
;
WORD
tmp_token
;
char
strname
[
100
];
if
(
!
read_bytes
(
buf
,
&
count
,
4
))
return
0
;
if
(
!
read_bytes
(
buf
,
strname
,
count
))
return
0
;
strname
[
count
]
=
0
;
if
(
!
read_bytes
(
buf
,
&
tmp_token
,
2
))
return
0
;
if
((
tmp_token
!=
TOKEN_COMMA
)
&&
(
tmp_token
!=
TOKEN_SEMICOLON
))
ERR
(
"No comma or semicolon (got %d)
\n
"
,
tmp_token
);
/*TRACE("name = %s\n", strname);*/
strcpy
((
char
*
)
buf
->
value
,
strname
);
token
=
TOKEN_LPSTR
;
}
break
;
case
TOKEN_OBRACE
:
case
TOKEN_CBRACE
:
case
TOKEN_OPAREN
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment