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
23e5ab1e
Commit
23e5ab1e
authored
Oct 26, 1998
by
Marcus Meissner
Committed by
Alexandre Julliard
Oct 26, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed no longer necessary commented out code, destroy old window
when SetDisplayMode is called again, EnumDisplayModes now returns all possible modes (using a static list).
parent
83383291
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
55 deletions
+45
-55
ddraw.c
graphics/ddraw.c
+45
-55
No files found.
graphics/ddraw.c
View file @
23e5ab1e
...
@@ -75,18 +75,6 @@ static struct IDirectDrawPalette_VTable dga_ddpalvt, xlib_ddpalvt;
...
@@ -75,18 +75,6 @@ static struct IDirectDrawPalette_VTable dga_ddpalvt, xlib_ddpalvt;
static
struct
IDirect3D_VTable
d3dvt
;
static
struct
IDirect3D_VTable
d3dvt
;
static
struct
IDirect3D2_VTable
d3d2vt
;
static
struct
IDirect3D2_VTable
d3d2vt
;
void
Xlib_MessagePump
(
HWND32
hwnd
)
{
MSG32
msg32
;
while
(
EVENT_WaitNetEvent
(
FALSE
,
FALSE
))
{
while
(
PeekMessage32A
(
&
msg32
,
0
,
0
,
0
,
0
))
{
GetMessage32A
(
&
msg32
,
0
,
0
,
0
);
TranslateMessage32
(
&
msg32
);
DispatchMessage32A
(
&
msg32
);
}
}
}
BOOL32
BOOL32
DDRAW_DGA_Available
()
DDRAW_DGA_Available
()
{
{
...
@@ -351,8 +339,6 @@ static HRESULT WINAPI DGA_IDirectDrawSurface3_Unlock(
...
@@ -351,8 +339,6 @@ static HRESULT WINAPI DGA_IDirectDrawSurface3_Unlock(
static
HRESULT
WINAPI
Xlib_IDirectDrawSurface3_Unlock
(
static
HRESULT
WINAPI
Xlib_IDirectDrawSurface3_Unlock
(
LPDIRECTDRAWSURFACE3
this
,
LPVOID
surface
LPDIRECTDRAWSURFACE3
this
,
LPVOID
surface
)
{
)
{
/* Xlib_MessagePump(this->s.ddraw->e.xlib.window); */
TRACE
(
ddraw
,
"(%p)->Unlock(%p)
\n
"
,
this
,
surface
);
TRACE
(
ddraw
,
"(%p)->Unlock(%p)
\n
"
,
this
,
surface
);
if
(
!
this
->
s
.
ddraw
->
e
.
xlib
.
paintable
)
if
(
!
this
->
s
.
ddraw
->
e
.
xlib
.
paintable
)
...
@@ -414,7 +400,6 @@ static HRESULT WINAPI Xlib_IDirectDrawSurface3_Flip(
...
@@ -414,7 +400,6 @@ static HRESULT WINAPI Xlib_IDirectDrawSurface3_Flip(
LPDIRECTDRAWSURFACE3
this
,
LPDIRECTDRAWSURFACE3
flipto
,
DWORD
dwFlags
LPDIRECTDRAWSURFACE3
this
,
LPDIRECTDRAWSURFACE3
flipto
,
DWORD
dwFlags
)
{
)
{
TRACE
(
ddraw
,
"(%p)->Flip(%p,%08lx)
\n
"
,
this
,
flipto
,
dwFlags
);
TRACE
(
ddraw
,
"(%p)->Flip(%p,%08lx)
\n
"
,
this
,
flipto
,
dwFlags
);
/* Xlib_MessagePump(this->s.ddraw->e.xlib.window); */
if
(
!
this
->
s
.
ddraw
->
e
.
xlib
.
paintable
)
if
(
!
this
->
s
.
ddraw
->
e
.
xlib
.
paintable
)
return
0
;
return
0
;
...
@@ -613,7 +598,7 @@ static HRESULT WINAPI IDirectDrawSurface3_BltFast(
...
@@ -613,7 +598,7 @@ static HRESULT WINAPI IDirectDrawSurface3_BltFast(
static
HRESULT
WINAPI
IDirectDrawSurface3_BltBatch
(
static
HRESULT
WINAPI
IDirectDrawSurface3_BltBatch
(
LPDIRECTDRAWSURFACE3
this
,
LPDDBLTBATCH
ddbltbatch
,
DWORD
x
,
DWORD
y
LPDIRECTDRAWSURFACE3
this
,
LPDDBLTBATCH
ddbltbatch
,
DWORD
x
,
DWORD
y
)
{
)
{
TRAC
E
(
ddraw
,
"(%p)->BltBatch(%p,%08lx,%08lx),stub!
\n
"
,
FIXM
E
(
ddraw
,
"(%p)->BltBatch(%p,%08lx,%08lx),stub!
\n
"
,
this
,
ddbltbatch
,
x
,
y
this
,
ddbltbatch
,
x
,
y
);
);
return
0
;
return
0
;
...
@@ -738,6 +723,7 @@ static HRESULT WINAPI IDirectDrawSurface3_Initialize(
...
@@ -738,6 +723,7 @@ static HRESULT WINAPI IDirectDrawSurface3_Initialize(
static
HRESULT
WINAPI
IDirectDrawSurface3_GetPixelFormat
(
static
HRESULT
WINAPI
IDirectDrawSurface3_GetPixelFormat
(
LPDIRECTDRAWSURFACE3
this
,
LPDDPIXELFORMAT
pf
LPDIRECTDRAWSURFACE3
this
,
LPDDPIXELFORMAT
pf
)
{
)
{
TRACE
(
ddraw
,
"(%p)->(%p)
\n
"
,
this
,
pf
);
return
_getpixelformat
(
this
->
s
.
ddraw
,
pf
);
return
_getpixelformat
(
this
->
s
.
ddraw
,
pf
);
}
}
...
@@ -824,15 +810,9 @@ static HRESULT WINAPI IDirectDrawSurface3_SetColorKey(
...
@@ -824,15 +810,9 @@ static HRESULT WINAPI IDirectDrawSurface3_SetColorKey(
FIXME
(
ddraw
,
"(%p)->(0x%08lx,%p),stub!
\n
"
,
this
,
dwFlags
,
ckey
);
FIXME
(
ddraw
,
"(%p)->(0x%08lx,%p),stub!
\n
"
,
this
,
dwFlags
,
ckey
);
if
(
dwFlags
&
DDCKEY_SRCBLT
)
if
(
dwFlags
&
DDCKEY_SRCBLT
)
{
dwFlags
&=
~
DDCKEY_SRCBLT
;
dwFlags
&=
~
DDCKEY_SRCBLT
;
}
if
(
dwFlags
)
if
(
dwFlags
)
{
TRACE
(
ddraw
,
"unhandled dwFlags: %08lx
\n
"
,
dwFlags
);
TRACE
(
ddraw
,
"unhandled dwFlags: %08lx
\n
"
,
dwFlags
);
}
return
DD_OK
;
return
DD_OK
;
}
}
...
@@ -1123,7 +1103,6 @@ static struct IDirectDrawClipper_VTable ddclipvt = {
...
@@ -1123,7 +1103,6 @@ static struct IDirectDrawClipper_VTable ddclipvt = {
static
HRESULT
WINAPI
IDirectDrawPalette_GetEntries
(
static
HRESULT
WINAPI
IDirectDrawPalette_GetEntries
(
LPDIRECTDRAWPALETTE
this
,
DWORD
x
,
DWORD
start
,
DWORD
count
,
LPPALETTEENTRY
palent
LPDIRECTDRAWPALETTE
this
,
DWORD
x
,
DWORD
start
,
DWORD
count
,
LPPALETTEENTRY
palent
)
{
)
{
XColor
xc
;
int
i
;
int
i
;
if
(
!
this
->
cm
)
/* should not happen */
{
if
(
!
this
->
cm
)
/* should not happen */
{
...
@@ -1131,15 +1110,6 @@ static HRESULT WINAPI IDirectDrawPalette_GetEntries(
...
@@ -1131,15 +1110,6 @@ static HRESULT WINAPI IDirectDrawPalette_GetEntries(
return
DDERR_GENERIC
;
return
DDERR_GENERIC
;
}
}
for
(
i
=
0
;
i
<
count
;
i
++
)
{
for
(
i
=
0
;
i
<
count
;
i
++
)
{
#if 0
PH
xc.pixel = i+start;
TSXQueryColor(display,this->cm,&xc);
palent[i].peRed = xc.red>>8;
palent[i].peGreen = xc.green>>8;
palent[i].peBlue = xc.blue>>8;
#endif
palent
[
i
].
peRed
=
this
->
palents
[
start
+
i
].
peRed
;
palent
[
i
].
peRed
=
this
->
palents
[
start
+
i
].
peRed
;
palent
[
i
].
peBlue
=
this
->
palents
[
start
+
i
].
peBlue
;
palent
[
i
].
peBlue
=
this
->
palents
[
start
+
i
].
peBlue
;
palent
[
i
].
peGreen
=
this
->
palents
[
start
+
i
].
peGreen
;
palent
[
i
].
peGreen
=
this
->
palents
[
start
+
i
].
peGreen
;
...
@@ -1626,7 +1596,7 @@ static HRESULT WINAPI IDirectDraw2_SetCooperativeLevel(
...
@@ -1626,7 +1596,7 @@ static HRESULT WINAPI IDirectDraw2_SetCooperativeLevel(
FE
(
DDSCL_CREATEDEVICEWINDOW
)
FE
(
DDSCL_CREATEDEVICEWINDOW
)
};
};
TRAC
E
(
ddraw
,
"(%p)->(%08lx,%08lx)
\n
"
,
this
,(
DWORD
)
hwnd
,
cooplevel
);
FIXM
E
(
ddraw
,
"(%p)->(%08lx,%08lx)
\n
"
,
this
,(
DWORD
)
hwnd
,
cooplevel
);
if
(
TRACE_ON
(
ddraw
)){
if
(
TRACE_ON
(
ddraw
)){
dbg_decl_str
(
ddraw
,
512
);
dbg_decl_str
(
ddraw
,
512
);
for
(
i
=
0
;
i
<
sizeof
(
flagmap
)
/
sizeof
(
flagmap
[
0
]);
i
++
)
for
(
i
=
0
;
i
<
sizeof
(
flagmap
)
/
sizeof
(
flagmap
[
0
]);
i
++
)
...
@@ -1711,6 +1681,8 @@ static HRESULT WINAPI Xlib_IDirectDraw_SetDisplayMode(
...
@@ -1711,6 +1681,8 @@ static HRESULT WINAPI Xlib_IDirectDraw_SetDisplayMode(
return DDERR_UNSUPPORTEDMODE;
return DDERR_UNSUPPORTEDMODE;
}
}
*/
*/
if
(
this
->
e
.
xlib
.
window
)
DestroyWindow32
(
this
->
e
.
xlib
.
window
);
this
->
e
.
xlib
.
window
=
CreateWindowEx32A
(
this
->
e
.
xlib
.
window
=
CreateWindowEx32A
(
0
,
0
,
"WINE_DirectDraw"
,
"WINE_DirectDraw"
,
...
@@ -1844,10 +1816,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2_CreatePalette(
...
@@ -1844,10 +1816,7 @@ static HRESULT WINAPI Xlib_IDirectDraw2_CreatePalette(
if
(
this
->
d
.
depth
<=
8
)
{
if
(
this
->
d
.
depth
<=
8
)
{
(
*
lpddpal
)
->
cm
=
TSXCreateColormap
(
display
,
this
->
e
.
xlib
.
drawable
,
DefaultVisualOfScreen
(
screen
),
AllocAll
);
(
*
lpddpal
)
->
cm
=
TSXCreateColormap
(
display
,
this
->
e
.
xlib
.
drawable
,
DefaultVisualOfScreen
(
screen
),
AllocAll
);
/* later installed ...
/* FIXME: this is not correct, when using -managed */
* TSXInstallColormap(display,(*lpddpal)->cm);
* TSXSetWindowColormap(display,this->e.xlib.drawable,(*lpddpal)->cm);
*/
TSXInstallColormap
(
display
,(
*
lpddpal
)
->
cm
);
TSXInstallColormap
(
display
,(
*
lpddpal
)
->
cm
);
}
}
else
else
...
@@ -2032,10 +2001,19 @@ static HRESULT WINAPI IDirectDraw2_EnumDisplayModes(
...
@@ -2032,10 +2001,19 @@ static HRESULT WINAPI IDirectDraw2_EnumDisplayModes(
LPDIRECTDRAW2
this
,
DWORD
dwFlags
,
LPDDSURFACEDESC
lpddsfd
,
LPVOID
context
,
LPDDENUMMODESCALLBACK
modescb
LPDIRECTDRAW2
this
,
DWORD
dwFlags
,
LPDDSURFACEDESC
lpddsfd
,
LPVOID
context
,
LPDDENUMMODESCALLBACK
modescb
)
{
)
{
DDSURFACEDESC
ddsfd
;
DDSURFACEDESC
ddsfd
;
static
struct
{
int
w
,
h
;
}
modes
[
5
]
=
{
/* some of the usual modes */
{
512
,
384
},
{
640
,
400
},
{
640
,
480
},
{
800
,
600
},
{
1024
,
768
},
};
static
int
depths
[
4
]
=
{
8
,
16
,
24
,
32
};
int
i
,
j
;
TRACE
(
ddraw
,
"(%p)->(0x%08lx,%p,%p,%p)
\n
"
,
this
,
dwFlags
,
lpddsfd
,
context
,
modescb
);
TRACE
(
ddraw
,
"(%p)->(0x%08lx,%p,%p,%p)
\n
"
,
this
,
dwFlags
,
lpddsfd
,
context
,
modescb
);
_getpixelformat
(
this
,
&
(
ddsfd
.
ddpfPixelFormat
));
ddsfd
.
dwSize
=
sizeof
(
ddsfd
);
ddsfd
.
dwSize
=
sizeof
(
ddsfd
);
ddsfd
.
dwFlags
=
DDSD_HEIGHT
|
DDSD_WIDTH
|
DDSD_BACKBUFFERCOUNT
|
DDSD_PIXELFORMAT
|
DDSD_CAPS
;
ddsfd
.
dwFlags
=
DDSD_HEIGHT
|
DDSD_WIDTH
|
DDSD_BACKBUFFERCOUNT
|
DDSD_PIXELFORMAT
|
DDSD_CAPS
;
if
(
dwFlags
&
DDEDM_REFRESHRATES
)
{
if
(
dwFlags
&
DDEDM_REFRESHRATES
)
{
...
@@ -2043,23 +2021,37 @@ static HRESULT WINAPI IDirectDraw2_EnumDisplayModes(
...
@@ -2043,23 +2021,37 @@ static HRESULT WINAPI IDirectDraw2_EnumDisplayModes(
ddsfd
.
x
.
dwRefreshRate
=
60
;
ddsfd
.
x
.
dwRefreshRate
=
60
;
}
}
ddsfd
.
dwWidth
=
640
;
for
(
i
=
0
;
i
<
sizeof
(
depths
)
/
sizeof
(
depths
[
0
]);
i
++
)
{
ddsfd
.
dwHeight
=
480
;
ddsfd
.
dwBackBufferCount
=
1
;
ddsfd
.
dwBackBufferCount
=
1
;
ddsfd
.
ddpfPixelFormat
.
dwFourCC
=
0
;
ddsfd
.
ddsCaps
.
dwCaps
=
DDSCAPS_PALETTE
;
ddsfd
.
ddpfPixelFormat
.
dwFlags
=
DDPF_RGB
;
ddsfd
.
ddpfPixelFormat
.
x
.
dwRGBBitCount
=
depths
[
i
];
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
/* FIXME: those masks would have to be set in depth > 8 */
ddsfd
.
ddpfPixelFormat
.
y
.
dwRBitMask
=
0
;
ddsfd
.
ddpfPixelFormat
.
z
.
dwGBitMask
=
0
;
ddsfd
.
ddpfPixelFormat
.
xx
.
dwBBitMask
=
0
;
ddsfd
.
ddpfPixelFormat
.
xy
.
dwRGBAlphaBitMask
=
0
;
if
(
depths
[
i
]
==
8
)
{
ddsfd
.
ddsCaps
.
dwCaps
=
DDSCAPS_PALETTE
;
ddsfd
.
ddpfPixelFormat
.
dwFlags
|=
DDPF_PALETTEINDEXED8
;
}
ddsfd
.
dwWidth
=
screenWidth
;
ddsfd
.
dwHeight
=
screenHeight
;
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
ddsfd
.
dwWidth
=
800
;
for
(
j
=
0
;
j
<
sizeof
(
modes
)
/
sizeof
(
modes
[
0
]);
j
++
)
{
ddsfd
.
dwHeight
=
600
;
ddsfd
.
dwWidth
=
modes
[
i
].
w
;
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
ddsfd
.
dwHeight
=
modes
[
i
].
h
;
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
}
if
(
!
(
dwFlags
&
DDEDM_STANDARDVGAMODES
))
{
if
(
!
(
dwFlags
&
DDEDM_STANDARDVGAMODES
))
{
/* modeX is not standard VGA */
/* modeX is not standard VGA */
ddsfd
.
dwHeight
=
200
;
ddsfd
.
dwHeight
=
200
;
ddsfd
.
dwWidth
=
320
;
ddsfd
.
dwWidth
=
320
;
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
if
(
!
modescb
(
&
ddsfd
,
context
))
return
0
;
}
}
}
return
DD_OK
;
return
DD_OK
;
}
}
...
@@ -2367,9 +2359,7 @@ LRESULT WINAPI Xlib_DDWndProc(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM lPar
...
@@ -2367,9 +2359,7 @@ LRESULT WINAPI Xlib_DDWndProc(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM lPar
{
{
/* Perform any special direct draw functions */
/* Perform any special direct draw functions */
if
(
msg
==
WM_PAINT
)
if
(
msg
==
WM_PAINT
)
{
ddraw
->
e
.
xlib
.
paintable
=
1
;
ddraw
->
e
.
xlib
.
paintable
=
1
;
}
/* Now let the application deal with the rest of this */
/* Now let the application deal with the rest of this */
if
(
ddraw
->
d
.
mainWindow
)
if
(
ddraw
->
d
.
mainWindow
)
...
...
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