Removed a few dependencies on kernel32 functions.
[wine] / dlls / ddraw / dpalette / dga.c
1 /*              DirectDrawPalette XF86DGA implementation
2  *
3  * Copyright 1997-2000 Marcus Meissner
4  * Copyright 1998 Lionel Ulmer (most of Direct3D stuff)
5  */
6
7 #include "config.h"
8 #include "winerror.h"
9
10 #include <unistd.h>
11 #include <assert.h>
12 #include <string.h>
13 #include <stdlib.h>
14
15 #include "debugtools.h"
16
17 #include "dga_private.h"
18
19 DEFAULT_DEBUG_CHANNEL(ddraw);
20
21 #define DPPRIVATE(x) dga_dp_private *dppriv = ((dga_dp_private*)(x)->private)
22 #define DDPRIVATE(x) dga_dd_private *ddpriv = ((dga_dd_private*)(x)->d->private)
23
24 HRESULT WINAPI DGA_IDirectDrawPaletteImpl_SetEntries(
25     LPDIRECTDRAWPALETTE iface,DWORD x,DWORD start,DWORD count,LPPALETTEENTRY palent
26 ) {
27     ICOM_THIS(IDirectDrawPaletteImpl,iface);
28     DPPRIVATE(This);
29     XColor      xc;
30     int         i;
31
32     TRACE("(%p)->SetEntries(%08lx,%ld,%ld,%p)\n",This,x,start,count,palent);
33     if (!dppriv->cm) /* should not happen */ {
34         TRACE("app tried to set colormap in non-palettized mode\n");
35     }
36     for (i=0;i<count;i++) {
37         xc.red = palent[i].peRed<<8;
38         xc.blue = palent[i].peBlue<<8;
39         xc.green = palent[i].peGreen<<8;
40         xc.flags = DoRed|DoBlue|DoGreen;
41         xc.pixel = i+start;
42         
43         if (dppriv->cm)
44           TSXStoreColor(display,dppriv->cm,&xc);
45
46         This->palents[start+i].peRed = palent[i].peRed;
47         This->palents[start+i].peBlue = palent[i].peBlue;
48         This->palents[start+i].peGreen = palent[i].peGreen;
49         This->palents[start+i].peFlags = palent[i].peFlags;
50     }
51     /* Flush the display queue so that palette updates are visible directly */
52     TSXFlush(display);
53     return DD_OK;
54 }
55 ICOM_VTABLE(IDirectDrawPalette) dga_ddpalvt = 
56 {
57         ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
58         IDirectDrawPaletteImpl_QueryInterface,
59         IDirectDrawPaletteImpl_AddRef,
60         Xlib_IDirectDrawPaletteImpl_Release,
61         IDirectDrawPaletteImpl_GetCaps,
62         IDirectDrawPaletteImpl_GetEntries,
63         IDirectDrawPaletteImpl_Initialize,
64         DGA_IDirectDrawPaletteImpl_SetEntries
65 };