ReactOS 0.4.17-dev-966-gf06eace
texture.c
Go to the documentation of this file.
1/*
2 * Implementation of IDirect3DRMTextureX interfaces
3 *
4 * Copyright 2012 Christian Costa
5 * Copyright 2016 Aaryaman Vasishta
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#include "d3drm_private.h"
23
25
26static inline struct d3drm_texture *impl_from_IDirect3DRMTexture(IDirect3DRMTexture *iface)
27{
29}
30
31static inline struct d3drm_texture *impl_from_IDirect3DRMTexture2(IDirect3DRMTexture2 *iface)
32{
34}
35
36static inline struct d3drm_texture *impl_from_IDirect3DRMTexture3(IDirect3DRMTexture3 *iface)
37{
39}
40
42{
43 TRACE("texture %p is being destroyed.\n", texture);
44
45 d3drm_object_cleanup((IDirect3DRMObject*)&texture->IDirect3DRMTexture_iface, &texture->obj);
46 if (texture->image || texture->surface)
48 if (texture->surface)
49 IDirectDrawSurface_Release(texture->surface);
51}
52
54{
55 if (!image)
56 return FALSE;
57
58 TRACE("size (%d, %d), aspect (%d, %d), depth %d, red %#lx, green %#lx, blue %#lx, "
59 "buffer1 %p, buffer2 %p, rgb %d, pal %p, size %d\n",
60 image->width, image->height, image->aspectx, image->aspecty,
61 image->depth, image->red_mask, image->green_mask, image->blue_mask, image->buffer1,
62 image->buffer2, image->rgb, image->palette, image->palette_size );
63
64 if (!image->buffer1)
65 return FALSE;
66
67 if (image->rgb)
68 {
69 if (!image->red_mask || !image->green_mask || !image->blue_mask)
70 return FALSE;
71 }
72 else
73 {
74 if (!image->palette || !image->palette_size)
75 return FALSE;
76 }
77
78 return TRUE;
79}
80
81static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
82 SIZE_T w, SIZE_T h, BOOL flip)
83{
84 unsigned char *dst_data, *src_ptr, *dst_ptr;
85 SIZE_T src_pitch, dst_pitch, i, x, y;
87 unsigned int colour_count = 0;
88
89 if (w > (~(SIZE_T)0 - 3) / h)
90 return FALSE;
91
92 src_pitch = flip ? -w * 3 : w * 3;
93 dst_pitch = (w + 3) & ~3;
94
95 if (!(dst_data = malloc(dst_pitch * h)))
96 {
97 WARN("Failed to allocate image buffer.\n");
98 return FALSE;
99 }
100 memset(dst_data, 0xff, dst_pitch * h);
101
102 if (!(palette = malloc(256 * sizeof(*palette))))
103 {
104 WARN("Failed to allocate palette.\n");
105 free(dst_data);
106 return FALSE;
107 }
108
109 src_ptr = flip ? &src_data[(h - 1) * w * 3] : src_data;
110 dst_ptr = dst_data;
111
112 for (y = 0; y < h; ++y)
113 {
114 for (x = 0; x < w; ++x)
115 {
116 for (i = 0; i < colour_count; ++i)
117 {
118 entry = &palette[i];
119 if (entry->red == src_ptr[x * 3 + 2]
120 && entry->green == src_ptr[x * 3 + 1]
121 && entry->blue == src_ptr[x * 3 + 0])
122 break;
123 }
124
125 if (i == colour_count)
126 {
127 if (colour_count == 256)
128 {
129 free(dst_data);
130 free(palette);
131 return FALSE;
132 }
133
134 entry = &palette[colour_count++];
135 entry->red = src_ptr[x * 3 + 2];
136 entry->green = src_ptr[x * 3 + 1];
137 entry->blue = src_ptr[x * 3 + 0];
139 }
140
141 dst_ptr[x] = i;
142 }
143
144 src_ptr += src_pitch;
145 dst_ptr += dst_pitch;
146 }
147
148 image->depth = 8;
149 image->rgb = 0;
150 image->bytes_per_line = dst_pitch;
151 image->buffer1 = dst_data;
152 image->red_mask = 0xff;
153 image->green_mask = 0xff;
154 image->blue_mask = 0xff;
155 image->palette_size = colour_count;
156 image->palette = palette;
157 if ((palette = realloc(palette, colour_count * sizeof(*palette))))
158 image->palette = palette;
159
160 return TRUE;
161}
162
163static HRESULT d3drm_image_load_32(D3DRMIMAGE *image, unsigned char *src_data,
164 LONGLONG src_data_size, SIZE_T w, SIZE_T h, BOOL flip)
165{
166 unsigned char *dst_data, *src_ptr, *dst_ptr;
167 SIZE_T src_pitch, dst_pitch, x, y;
168
169 if (d3drm_image_palettise(image, src_data, w, h, flip))
170 return D3DRM_OK;
171
172 if (w > (~(SIZE_T)0 / 4) / h)
173 return D3DRMERR_BADALLOC;
174
175 src_pitch = flip ? -w * 3 : w * 3;
176 dst_pitch = w * 4;
177
178 if (!(dst_data = malloc(dst_pitch * h)))
179 {
180 WARN("Failed to allocate image buffer.\n");
181 return D3DRMERR_BADALLOC;
182 }
183
184 src_ptr = flip ? &src_data[(h - 1) * w * 3] : src_data;
185 dst_ptr = dst_data;
186
187 for (y = 0; y < h; ++y)
188 {
189 for (x = 0; x < w; ++x)
190 {
191 dst_ptr[x * 4 + 0] = src_ptr[x * 3 + 0];
192 dst_ptr[x * 4 + 1] = src_ptr[x * 3 + 1];
193 dst_ptr[x * 4 + 2] = src_ptr[x * 3 + 2];
194 dst_ptr[x * 4 + 3] = 0xff;
195 }
196
197 src_ptr += src_pitch;
198 dst_ptr += dst_pitch;
199 }
200
201 image->depth = 32;
202 image->rgb = 1;
203 image->bytes_per_line = dst_pitch;
204 image->buffer1 = dst_data;
205 image->red_mask = 0xff0000;
206 image->green_mask = 0x00ff00;
207 image->blue_mask = 0x0000ff;
208 image->palette_size = 0;
209 image->palette = NULL;
210
211 return D3DRM_OK;
212}
213
215 unsigned char *src_data, LONGLONG src_data_size, SIZE_T w, SIZE_T h, BOOL flip)
216{
217 unsigned char *dst_data;
218 SIZE_T i;
219
220 if (w > ~(SIZE_T)0 / h)
221 return D3DRMERR_BADALLOC;
222
223 if (!(dst_data = malloc(w * h)))
224 {
225 WARN("Failed to allocate image buffer.\n");
226 return D3DRMERR_BADALLOC;
227 }
228
229 if (!(image->palette = malloc(256 * sizeof(*image->palette))))
230 {
231 WARN("Failed to allocate palette.\n");
232 free(dst_data);
233 return D3DRMERR_BADALLOC;
234 }
235
236 for (i = 0; i < 256; ++i)
237 {
238 image->palette[i].red = palette[i].rgbRed;
239 image->palette[i].green = palette[i].rgbGreen;
240 image->palette[i].blue = palette[i].rgbBlue;
241 image->palette[i].flags = D3DRMPALETTE_READONLY;
242 }
243
244 if (flip)
245 {
246 for (i = 0; i < h; ++i)
247 {
248 memcpy(&dst_data[i * w], &src_data[(h - 1 - i) * w], w);
249 }
250 }
251 else
252 {
253 memcpy(dst_data, src_data, w * h);
254 }
255
256 image->depth = 8;
257 image->rgb = 0;
258 image->bytes_per_line = w;
259 image->buffer1 = dst_data;
260 image->red_mask = 0xff;
261 image->green_mask = 0xff;
262 image->blue_mask = 0xff;
263 image->palette_size = 256;
264
265 return D3DRM_OK;
266}
267
268static void CDECL destroy_image_callback(IDirect3DRMObject *obj, void *arg)
269{
271
272 TRACE("texture object %p, image %p.\n", obj, image);
273
274 free(image->buffer1);
275 free(image);
276}
277
279 const char *path, BOOL flip, D3DRMIMAGE **image_out)
280{
282 unsigned int w, h, bpp;
287 LONGLONG rem;
288 HRESULT hr;
289
291 return D3DRMERR_BADOBJECT;
292
296 return D3DRMERR_BADVALUE;
297
298 if (!GetFileSizeEx(mapping, &size))
299 {
301 return D3DRMERR_BADVALUE;
302 }
303 rem = size.QuadPart;
304
307 if (!header)
308 return D3DRMERR_BADVALUE;
309
311 if (!(image = calloc(1, sizeof(*image))))
312 goto fail;
313
315 if (rem < sizeof(*header) || header->bfType != 0x4d42 /* BM */)
316 goto fail;
317 rem -= sizeof(*header);
318
319 info = (BITMAPINFO *)&header[1];
320 /* Only allow version 1 DIB's (BITMAPINFOHEADER) to be loaded. */
321 if (rem < sizeof(info->bmiHeader) || info->bmiHeader.biSize != sizeof(info->bmiHeader))
322 goto fail;
323 rem -= sizeof(info->bmiHeader);
324
325 w = info->bmiHeader.biWidth;
326 h = abs(info->bmiHeader.biHeight);
327 bpp = info->bmiHeader.biBitCount == 24 ? 32 : info->bmiHeader.biBitCount;
328 if (bpp != 8 && bpp != 32)
329 goto fail;
330
331 image->width = w;
332 image->height = h;
333 image->aspectx = 1;
334 image->aspecty = 1;
335 if (bpp == 8)
336 {
337 rem -= 256 * sizeof(*info->bmiColors);
338 if (w > rem / h)
339 goto fail;
340 hr = d3drm_image_load_8(image, info->bmiColors, (unsigned char *)&info->bmiColors[256], rem, w, h, flip);
341 }
342 else
343 {
344 if (w > (rem / 3) / h)
345 goto fail;
346 hr = d3drm_image_load_32(image, (unsigned char *)&info->bmiColors, rem, w, h, flip);
347 }
348 if (FAILED(hr))
349 goto fail;
350
351 /* Use an internal destroy callback to destroy the image struct. */
353
354 *image_out = image;
355
357
358 return hr;
359
360fail:
361 free(image);
363
364 return hr;
365}
366
367static HRESULT WINAPI d3drm_texture1_QueryInterface(IDirect3DRMTexture *iface, REFIID riid, void **out)
368{
370
371 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
372
373 return IDirect3DRMTexture3_QueryInterface(&texture->IDirect3DRMTexture3_iface, riid, out);
374}
375
376static ULONG WINAPI d3drm_texture1_AddRef(IDirect3DRMTexture *iface)
377{
379
380 TRACE("iface %p.\n", iface);
381
382 return IDirect3DRMTexture3_AddRef(&texture->IDirect3DRMTexture3_iface);
383}
384
385static ULONG WINAPI d3drm_texture1_Release(IDirect3DRMTexture *iface)
386{
388
389 TRACE("iface %p.\n", iface);
390
391 return IDirect3DRMTexture3_Release(&texture->IDirect3DRMTexture3_iface);
392}
393
394static HRESULT WINAPI d3drm_texture1_Clone(IDirect3DRMTexture *iface,
395 IUnknown *outer, REFIID iid, void **out)
396{
398
399 TRACE("iface %p, outer %p, iid %s, out %p.\n", iface, outer, debugstr_guid(iid), out);
400
401 return IDirect3DRMTexture3_Clone(&texture->IDirect3DRMTexture3_iface, outer, iid, out);
402}
403
404static HRESULT WINAPI d3drm_texture1_AddDestroyCallback(IDirect3DRMTexture *iface,
406{
408
409 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
410
411 return IDirect3DRMTexture3_AddDestroyCallback(&texture->IDirect3DRMTexture3_iface, cb, ctx);
412}
413
414static HRESULT WINAPI d3drm_texture1_DeleteDestroyCallback(IDirect3DRMTexture *iface,
416{
418
419 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
420
421 return IDirect3DRMTexture3_DeleteDestroyCallback(&texture->IDirect3DRMTexture3_iface, cb, ctx);
422}
423
424static HRESULT WINAPI d3drm_texture1_SetAppData(IDirect3DRMTexture *iface, DWORD data)
425{
427
428 TRACE("iface %p, data %#lx.\n", iface, data);
429
430 return IDirect3DRMTexture3_SetAppData(&texture->IDirect3DRMTexture3_iface, data);
431}
432
433static DWORD WINAPI d3drm_texture1_GetAppData(IDirect3DRMTexture *iface)
434{
436
437 TRACE("iface %p.\n", iface);
438
439 return IDirect3DRMTexture3_GetAppData(&texture->IDirect3DRMTexture3_iface);
440}
441
442static HRESULT WINAPI d3drm_texture1_SetName(IDirect3DRMTexture *iface, const char *name)
443{
445
446 TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
447
448 return IDirect3DRMTexture3_SetName(&texture->IDirect3DRMTexture3_iface, name);
449}
450
451static HRESULT WINAPI d3drm_texture1_GetName(IDirect3DRMTexture *iface, DWORD *size, char *name)
452{
454
455 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
456
457 return IDirect3DRMTexture3_GetName(&texture->IDirect3DRMTexture3_iface, size, name);
458}
459
460static HRESULT WINAPI d3drm_texture1_GetClassName(IDirect3DRMTexture *iface, DWORD *size, char *name)
461{
463
464 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
465
466 return IDirect3DRMTexture3_GetClassName(&texture->IDirect3DRMTexture3_iface, size, name);
467}
468
469static HRESULT WINAPI d3drm_texture1_InitFromFile(IDirect3DRMTexture *iface, const char *filename)
470{
473 HRESULT hr;
474
475 TRACE("iface %p, filename %s.\n", iface, debugstr_a(filename));
476
478 return hr;
479
480 return IDirect3DRMTexture3_InitFromImage(&texture->IDirect3DRMTexture3_iface, image);
481}
482
483static HRESULT WINAPI d3drm_texture1_InitFromSurface(IDirect3DRMTexture *iface,
484 IDirectDrawSurface *surface)
485{
487
488 TRACE("iface %p, surface %p.\n", iface, surface);
489
490 return IDirect3DRMTexture3_InitFromSurface(&texture->IDirect3DRMTexture3_iface, surface);
491}
492
493static HRESULT WINAPI d3drm_texture1_InitFromResource(IDirect3DRMTexture *iface, HRSRC resource)
494{
495 FIXME("iface %p, resource %p stub!\n", iface, resource);
496
497 return E_NOTIMPL;
498}
499
500static HRESULT WINAPI d3drm_texture1_Changed(IDirect3DRMTexture *iface, BOOL pixels, BOOL palette)
501{
502 FIXME("iface %p, pixels %#x, palette %#x stub!\n", iface, pixels, palette);
503
504 return E_NOTIMPL;
505}
506
507static HRESULT WINAPI d3drm_texture1_SetColors(IDirect3DRMTexture *iface, DWORD max_colors)
508{
510
511 TRACE("iface %p, max_colors %lu.\n", iface, max_colors);
512
513 return IDirect3DRMTexture3_SetColors(&texture->IDirect3DRMTexture3_iface, max_colors);
514}
515
516static HRESULT WINAPI d3drm_texture1_SetShades(IDirect3DRMTexture *iface, DWORD max_shades)
517{
519
520 TRACE("iface %p, max_shades %lu.\n", iface, max_shades);
521
522 return IDirect3DRMTexture3_SetShades(&texture->IDirect3DRMTexture3_iface, max_shades);
523}
524
526{
528
529 TRACE("iface %p, width %.8e, height %.8e.\n", iface, width, height);
530
531 return IDirect3DRMTexture3_SetDecalSize(&texture->IDirect3DRMTexture3_iface, width, height);
532}
533
534static HRESULT WINAPI d3drm_texture1_SetDecalOrigin(IDirect3DRMTexture *iface, LONG x, LONG y)
535{
537
538 TRACE("iface %p, x %ld, y %ld.\n", iface, x, y);
539
540 return IDirect3DRMTexture3_SetDecalOrigin(&texture->IDirect3DRMTexture3_iface, x, y);
541}
542
543static HRESULT WINAPI d3drm_texture1_SetDecalScale(IDirect3DRMTexture *iface, DWORD scale)
544{
546
547 TRACE("iface %p, scale %lu.\n", iface, scale);
548
549 return IDirect3DRMTexture3_SetDecalScale(&texture->IDirect3DRMTexture3_iface, scale);
550}
551
553{
555
556 TRACE("iface %p, transparency %#x.\n", iface, transparency);
557
558 return IDirect3DRMTexture3_SetDecalTransparency(&texture->IDirect3DRMTexture3_iface, transparency);
559}
560
562{
564
565 TRACE("iface %p, color 0x%08lx.\n", iface, color);
566
567 return IDirect3DRMTexture3_SetDecalTransparentColor(&texture->IDirect3DRMTexture3_iface, color);
568}
569
571{
573
574 TRACE("iface %p, width %p, height %p.\n", iface, width, height);
575
576 return IDirect3DRMTexture3_GetDecalSize(&texture->IDirect3DRMTexture3_iface, width, height);
577}
578
579static HRESULT WINAPI d3drm_texture1_GetDecalOrigin(IDirect3DRMTexture *iface, LONG *x, LONG *y)
580{
582
583 TRACE("iface %p, x %p, y %p.\n", iface, x, y);
584
585 return IDirect3DRMTexture3_GetDecalOrigin(&texture->IDirect3DRMTexture3_iface, x, y);
586}
587
588static D3DRMIMAGE * WINAPI d3drm_texture1_GetImage(IDirect3DRMTexture *iface)
589{
591
592 TRACE("iface %p.\n", iface);
593
594 return IDirect3DRMTexture3_GetImage(&texture->IDirect3DRMTexture3_iface);
595}
596
597static DWORD WINAPI d3drm_texture1_GetShades(IDirect3DRMTexture *iface)
598{
600
601 TRACE("iface %p.\n", iface);
602
603 return IDirect3DRMTexture3_GetShades(&texture->IDirect3DRMTexture3_iface);
604}
605
606static DWORD WINAPI d3drm_texture1_GetColors(IDirect3DRMTexture *iface)
607{
609
610 TRACE("iface %p.\n", iface);
611
612 return IDirect3DRMTexture3_GetColors(&texture->IDirect3DRMTexture3_iface);
613}
614
615static DWORD WINAPI d3drm_texture1_GetDecalScale(IDirect3DRMTexture *iface)
616{
618
619 TRACE("iface %p.\n", iface);
620
621 return IDirect3DRMTexture3_GetDecalScale(&texture->IDirect3DRMTexture3_iface);
622}
623
624static BOOL WINAPI d3drm_texture1_GetDecalTransparency(IDirect3DRMTexture *iface)
625{
627
628 TRACE("iface %p.\n", iface);
629
630 return IDirect3DRMTexture3_GetDecalTransparency(&texture->IDirect3DRMTexture3_iface);
631}
632
634{
636
637 TRACE("iface %p.\n", iface);
638
639 return IDirect3DRMTexture3_GetDecalTransparentColor(&texture->IDirect3DRMTexture3_iface);
640}
641
642static const struct IDirect3DRMTextureVtbl d3drm_texture1_vtbl =
643{
674};
675
676static HRESULT WINAPI d3drm_texture2_QueryInterface(IDirect3DRMTexture2 *iface, REFIID riid, void **out)
677{
679
680 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
681
682 return IDirect3DRMTexture3_QueryInterface(&texture->IDirect3DRMTexture3_iface, riid, out);
683}
684
685static ULONG WINAPI d3drm_texture2_AddRef(IDirect3DRMTexture2 *iface)
686{
688
689 TRACE("iface %p.\n", iface);
690
691 return IDirect3DRMTexture3_AddRef(&texture->IDirect3DRMTexture3_iface);
692}
693
694static ULONG WINAPI d3drm_texture2_Release(IDirect3DRMTexture2 *iface)
695{
697
698 TRACE("iface %p.\n", iface);
699
700 return IDirect3DRMTexture3_Release(&texture->IDirect3DRMTexture3_iface);
701}
702
703static HRESULT WINAPI d3drm_texture2_Clone(IDirect3DRMTexture2 *iface,
704 IUnknown *outer, REFIID iid, void **out)
705{
707
708 TRACE("iface %p, outer %p, iid %s, out %p.\n", iface, outer, debugstr_guid(iid), out);
709
710 return IDirect3DRMTexture3_Clone(&texture->IDirect3DRMTexture3_iface, outer, iid, out);
711}
712
713static HRESULT WINAPI d3drm_texture2_AddDestroyCallback(IDirect3DRMTexture2 *iface,
715{
717
718 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
719
720 return IDirect3DRMTexture3_AddDestroyCallback(&texture->IDirect3DRMTexture3_iface, cb, ctx);
721}
722
723static HRESULT WINAPI d3drm_texture2_DeleteDestroyCallback(IDirect3DRMTexture2 *iface,
725{
727
728 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
729
730 return IDirect3DRMTexture3_DeleteDestroyCallback(&texture->IDirect3DRMTexture3_iface, cb, ctx);
731}
732
733static HRESULT WINAPI d3drm_texture2_SetAppData(IDirect3DRMTexture2 *iface, DWORD data)
734{
736
737 TRACE("iface %p, data %#lx.\n", iface, data);
738
739 return IDirect3DRMTexture3_SetAppData(&texture->IDirect3DRMTexture3_iface, data);
740}
741
742static DWORD WINAPI d3drm_texture2_GetAppData(IDirect3DRMTexture2 *iface)
743{
745
746 TRACE("iface %p.\n", iface);
747
748 return IDirect3DRMTexture3_GetAppData(&texture->IDirect3DRMTexture3_iface);
749}
750
751static HRESULT WINAPI d3drm_texture2_SetName(IDirect3DRMTexture2 *iface, const char *name)
752{
754
755 TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
756
757 return IDirect3DRMTexture3_SetName(&texture->IDirect3DRMTexture3_iface, name);
758}
759
760static HRESULT WINAPI d3drm_texture2_GetName(IDirect3DRMTexture2 *iface, DWORD *size, char *name)
761{
763
764 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
765
766 return IDirect3DRMTexture3_GetName(&texture->IDirect3DRMTexture3_iface, size, name);
767}
768
769static HRESULT WINAPI d3drm_texture2_GetClassName(IDirect3DRMTexture2 *iface, DWORD *size, char *name)
770{
772
773 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
774
775 return IDirect3DRMTexture3_GetClassName(&texture->IDirect3DRMTexture3_iface, size, name);
776}
777
778static HRESULT WINAPI d3drm_texture2_InitFromFile(IDirect3DRMTexture2 *iface, const char *filename)
779{
781
782 TRACE("iface %p, filename %s.\n", iface, debugstr_a(filename));
783
784 return IDirect3DRMTexture3_InitFromFile(&texture->IDirect3DRMTexture3_iface, filename);
785}
786
787static HRESULT WINAPI d3drm_texture2_InitFromSurface(IDirect3DRMTexture2 *iface,
788 IDirectDrawSurface *surface)
789{
791
792 TRACE("iface %p, surface %p.\n", iface, surface);
793
794 return IDirect3DRMTexture3_InitFromSurface(&texture->IDirect3DRMTexture3_iface, surface);
795}
796
797static HRESULT WINAPI d3drm_texture2_InitFromResource(IDirect3DRMTexture2 *iface, HRSRC resource)
798{
799 FIXME("iface %p, resource %p stub!\n", iface, resource);
800
801 return E_NOTIMPL;
802}
803
804static HRESULT WINAPI d3drm_texture2_Changed(IDirect3DRMTexture2 *iface, BOOL pixels, BOOL palette)
805{
806 FIXME("iface %p, pixels %#x, palette %#x stub!\n", iface, pixels, palette);
807
808 return E_NOTIMPL;
809}
810
811static HRESULT WINAPI d3drm_texture2_SetColors(IDirect3DRMTexture2 *iface, DWORD max_colors)
812{
814
815 TRACE("iface %p, max_colors %lu.\n", iface, max_colors);
816
817 return IDirect3DRMTexture3_SetColors(&texture->IDirect3DRMTexture3_iface, max_colors);
818}
819
820static HRESULT WINAPI d3drm_texture2_SetShades(IDirect3DRMTexture2 *iface, DWORD max_shades)
821{
823
824 TRACE("iface %p, max_shades %lu.\n", iface, max_shades);
825
826 return IDirect3DRMTexture3_SetShades(&texture->IDirect3DRMTexture3_iface, max_shades);
827}
828
830{
832
833 TRACE("iface %p, width %.8e, height %.8e.\n", iface, width, height);
834
835 return IDirect3DRMTexture3_SetDecalSize(&texture->IDirect3DRMTexture3_iface, width, height);
836}
837
838static HRESULT WINAPI d3drm_texture2_SetDecalOrigin(IDirect3DRMTexture2 *iface, LONG x, LONG y)
839{
841
842 TRACE("iface %p, x %ld, y %ld.\n", iface, x, y);
843
844 return IDirect3DRMTexture3_SetDecalOrigin(&texture->IDirect3DRMTexture3_iface, x, y);
845}
846
847static HRESULT WINAPI d3drm_texture2_SetDecalScale(IDirect3DRMTexture2 *iface, DWORD scale)
848{
850
851 TRACE("iface %p, scale %lu.\n", iface, scale);
852
853 return IDirect3DRMTexture3_SetDecalScale(&texture->IDirect3DRMTexture3_iface, scale);
854}
855
857{
859
860 TRACE("iface %p, transparency %#x.\n", iface, transparency);
861
862 return IDirect3DRMTexture3_SetDecalTransparency(&texture->IDirect3DRMTexture3_iface, transparency);
863}
864
866{
868
869 TRACE("iface %p, color 0x%08lx.\n", iface, color);
870
871 return IDirect3DRMTexture3_SetDecalTransparentColor(&texture->IDirect3DRMTexture3_iface, color);
872}
873
875{
877
878 TRACE("iface %p, width %p, height %p.\n", iface, width, height);
879
880 return IDirect3DRMTexture3_GetDecalSize(&texture->IDirect3DRMTexture3_iface, width, height);
881}
882
883static HRESULT WINAPI d3drm_texture2_GetDecalOrigin(IDirect3DRMTexture2 *iface, LONG *x, LONG *y)
884{
886
887 TRACE("iface %p, x %p, y %p.\n", iface, x, y);
888
889 return IDirect3DRMTexture3_GetDecalOrigin(&texture->IDirect3DRMTexture3_iface, x, y);
890}
891
892static D3DRMIMAGE * WINAPI d3drm_texture2_GetImage(IDirect3DRMTexture2 *iface)
893{
895
896 TRACE("iface %p.\n", iface);
897
898 return IDirect3DRMTexture3_GetImage(&texture->IDirect3DRMTexture3_iface);
899}
900
901static DWORD WINAPI d3drm_texture2_GetShades(IDirect3DRMTexture2 *iface)
902{
904
905 TRACE("iface %p.\n", iface);
906
907 return IDirect3DRMTexture3_GetShades(&texture->IDirect3DRMTexture3_iface);
908}
909
910static DWORD WINAPI d3drm_texture2_GetColors(IDirect3DRMTexture2 *iface)
911{
913
914 TRACE("iface %p.\n", iface);
915
916 return IDirect3DRMTexture3_GetColors(&texture->IDirect3DRMTexture3_iface);
917}
918
919static DWORD WINAPI d3drm_texture2_GetDecalScale(IDirect3DRMTexture2 *iface)
920{
922
923 TRACE("iface %p.\n", iface);
924
925 return IDirect3DRMTexture3_GetDecalScale(&texture->IDirect3DRMTexture3_iface);
926}
927
928static BOOL WINAPI d3drm_texture2_GetDecalTransparency(IDirect3DRMTexture2 *iface)
929{
931
932 TRACE("iface %p.\n", iface);
933
934 return IDirect3DRMTexture3_GetDecalTransparency(&texture->IDirect3DRMTexture3_iface);
935}
936
938{
940
941 TRACE("iface %p.\n", iface);
942
943 return IDirect3DRMTexture3_GetDecalTransparentColor(&texture->IDirect3DRMTexture3_iface);
944}
945
946static HRESULT WINAPI d3drm_texture2_InitFromImage(IDirect3DRMTexture2 *iface, D3DRMIMAGE *image)
947{
949
950 TRACE("iface %p, image %p.\n", iface, image);
951
952 return IDirect3DRMTexture3_InitFromImage(&texture->IDirect3DRMTexture3_iface, image);
953}
954
955static HRESULT WINAPI d3drm_texture2_InitFromResource2(IDirect3DRMTexture2 *iface,
956 HMODULE module, const char *name, const char *type)
957{
958 FIXME("iface %p, module %p, name %s, type %s stub!\n",
960
961 return E_NOTIMPL;
962}
963
964static HRESULT WINAPI d3drm_texture2_GenerateMIPMap(IDirect3DRMTexture2 *iface, DWORD flags)
965{
967
968 TRACE("iface %p, flags %#lx.\n", iface, flags);
969
970 return IDirect3DRMTexture3_GenerateMIPMap(&texture->IDirect3DRMTexture3_iface, flags);
971}
972
973static const struct IDirect3DRMTexture2Vtbl d3drm_texture2_vtbl =
974{
1008};
1009
1010static HRESULT WINAPI d3drm_texture3_QueryInterface(IDirect3DRMTexture3 *iface, REFIID riid, void **out)
1011{
1013
1014 TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid), out);
1015
1016 if (IsEqualGUID(riid, &IID_IDirect3DRMTexture)
1017 || IsEqualGUID(riid, &IID_IDirect3DRMVisual)
1018 || IsEqualGUID(riid, &IID_IDirect3DRMObject)
1020 {
1021 *out = &texture->IDirect3DRMTexture_iface;
1022 }
1023 else if (IsEqualGUID(riid, &IID_IDirect3DRMTexture2))
1024 {
1025 *out = &texture->IDirect3DRMTexture2_iface;
1026 }
1027 else if (IsEqualGUID(riid, &IID_IDirect3DRMTexture3))
1028 {
1029 *out = &texture->IDirect3DRMTexture3_iface;
1030 }
1031 else
1032 {
1033 *out = NULL;
1034 WARN("%s not implemented, returning CLASS_E_CLASSNOTAVAILABLE.\n", debugstr_guid(riid));
1036 }
1037
1038 IUnknown_AddRef((IUnknown *)*out);
1039 return S_OK;
1040}
1041
1042static ULONG WINAPI d3drm_texture3_AddRef(IDirect3DRMTexture3 *iface)
1043{
1045 ULONG refcount = InterlockedIncrement(&texture->obj.ref);
1046
1047 TRACE("%p increasing refcount to %lu.\n", iface, refcount);
1048
1049 return refcount;
1050}
1051
1052static ULONG WINAPI d3drm_texture3_Release(IDirect3DRMTexture3 *iface)
1053{
1055 ULONG refcount = InterlockedDecrement(&texture->obj.ref);
1056
1057 TRACE("%p decreasing refcount to %lu.\n", iface, refcount);
1058
1059 if (!refcount)
1061
1062 return refcount;
1063}
1064
1065static HRESULT WINAPI d3drm_texture3_Clone(IDirect3DRMTexture3 *iface,
1066 IUnknown *outer, REFIID iid, void **out)
1067{
1068 FIXME("iface %p, outer %p, iid %s, out %p stub!\n", iface, outer, debugstr_guid(iid), out);
1069
1070 return E_NOTIMPL;
1071}
1072
1073static HRESULT WINAPI d3drm_texture3_AddDestroyCallback(IDirect3DRMTexture3 *iface,
1074 D3DRMOBJECTCALLBACK cb, void *ctx)
1075{
1077
1078 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
1079
1081}
1082
1083static HRESULT WINAPI d3drm_texture3_DeleteDestroyCallback(IDirect3DRMTexture3 *iface,
1084 D3DRMOBJECTCALLBACK cb, void *ctx)
1085{
1087
1088 TRACE("iface %p, cb %p, ctx %p\n", iface, cb, ctx);
1089
1091}
1092
1093static HRESULT WINAPI d3drm_texture3_SetAppData(IDirect3DRMTexture3 *iface, DWORD data)
1094{
1096
1097 TRACE("iface %p, data %#lx.\n", iface, data);
1098
1099 texture->obj.appdata = data;
1100
1101 return D3DRM_OK;
1102}
1103
1104static DWORD WINAPI d3drm_texture3_GetAppData(IDirect3DRMTexture3 *iface)
1105{
1107
1108 TRACE("iface %p.\n", iface);
1109
1110 return texture->obj.appdata;
1111}
1112
1113static HRESULT WINAPI d3drm_texture3_SetName(IDirect3DRMTexture3 *iface, const char *name)
1114{
1116
1117 TRACE("iface %p, name %s.\n", iface, debugstr_a(name));
1118
1119 return d3drm_object_set_name(&texture->obj, name);
1120}
1121
1122static HRESULT WINAPI d3drm_texture3_GetName(IDirect3DRMTexture3 *iface, DWORD *size, char *name)
1123{
1125
1126 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
1127
1128 return d3drm_object_get_name(&texture->obj, size, name);
1129}
1130
1131static HRESULT WINAPI d3drm_texture3_GetClassName(IDirect3DRMTexture3 *iface, DWORD *size, char *name)
1132{
1134
1135 TRACE("iface %p, size %p, name %p.\n", iface, size, name);
1136
1138}
1139
1140static HRESULT WINAPI d3drm_texture3_InitFromFile(IDirect3DRMTexture3 *iface, const char *filename)
1141{
1144 HRESULT hr;
1145
1146 TRACE("iface %p, filename %s.\n", iface, debugstr_a(filename));
1147
1149 return hr;
1150
1152}
1153
1154static HRESULT WINAPI d3drm_texture3_InitFromSurface(IDirect3DRMTexture3 *iface,
1155 IDirectDrawSurface *surface)
1156{
1158
1159 TRACE("iface %p, surface %p.\n", iface, surface);
1160
1161 if (!surface)
1162 return D3DRMERR_BADOBJECT;
1163
1164 /* d3drm intentionally leaks a reference to IDirect3DRM here if texture has already been initialized. */
1166
1167 if (texture->image || texture->surface)
1168 return D3DRMERR_BADOBJECT;
1169
1170 texture->surface = surface;
1171 IDirectDrawSurface_AddRef(texture->surface);
1172 return D3DRM_OK;
1173}
1174
1175static HRESULT WINAPI d3drm_texture3_InitFromResource(IDirect3DRMTexture3 *iface, HRSRC resource)
1176{
1177 FIXME("iface %p, resource %p stub!\n", iface, resource);
1178
1179 return E_NOTIMPL;
1180}
1181
1182static HRESULT WINAPI d3drm_texture3_Changed(IDirect3DRMTexture3 *iface,
1183 DWORD flags, DWORD rect_count, RECT *rects)
1184{
1185 FIXME("iface %p, flags %#lx, rect_count %lu, rects %p stub!\n", iface, flags, rect_count, rects);
1186
1187 return E_NOTIMPL;
1188}
1189
1190static HRESULT WINAPI d3drm_texture3_SetColors(IDirect3DRMTexture3 *iface, DWORD max_colors)
1191{
1193 TRACE("iface %p, max_colors %lu\n", iface, max_colors);
1194
1195 texture->max_colors= max_colors;
1196
1197 return S_OK;
1198}
1199
1200static HRESULT WINAPI d3drm_texture3_SetShades(IDirect3DRMTexture3 *iface, DWORD max_shades)
1201{
1203 TRACE("iface %p, max_shades %lu\n", iface, max_shades);
1204
1205 texture->max_shades = max_shades;
1206
1207 return S_OK;
1208}
1209
1211{
1213
1214 TRACE("iface %p, width %.8e, height %.8e.\n", iface, width, height);
1215
1216 texture->decal_width = width;
1217 texture->decal_height = height;
1218
1219 return S_OK;
1220}
1221
1222static HRESULT WINAPI d3drm_texture3_SetDecalOrigin(IDirect3DRMTexture3 *iface, LONG x, LONG y)
1223{
1225
1226 TRACE("iface %p, x %ld, y %ld\n", iface, x, y);
1227
1228 texture->decal_x = x;
1229 texture->decal_y = y;
1230
1231 return S_OK;
1232}
1233
1234static HRESULT WINAPI d3drm_texture3_SetDecalScale(IDirect3DRMTexture3 *iface, DWORD scale)
1235{
1236 FIXME("iface %p, scale %lu stub!\n", iface, scale);
1237
1238 return E_NOTIMPL;
1239}
1240
1242{
1244
1245 TRACE("iface %p, transparency %#x.\n", iface, transparency);
1246
1247 texture->transparency = transparency;
1248
1249 return S_OK;
1250}
1251
1253{
1254 FIXME("iface %p, color 0x%08lx stub!\n", iface, color);
1255
1256 return E_NOTIMPL;
1257}
1258
1260{
1262
1263 TRACE("iface %p, width %p, height %p.\n", iface, width, height);
1264
1265 *width = texture->decal_width;
1266 *height = texture->decal_height;
1267
1268 return S_OK;
1269}
1270
1271static HRESULT WINAPI d3drm_texture3_GetDecalOrigin(IDirect3DRMTexture3 *iface, LONG *x, LONG *y)
1272{
1274
1275 TRACE("iface %p, x %p, y %p\n", iface, x, y);
1276
1277 *x = texture->decal_x;
1278 *y = texture->decal_y;
1279
1280 return S_OK;
1281}
1282
1283static D3DRMIMAGE * WINAPI d3drm_texture3_GetImage(IDirect3DRMTexture3 *iface)
1284{
1286
1287 TRACE("iface %p.\n", iface);
1288
1289 return texture->image;
1290}
1291
1292static DWORD WINAPI d3drm_texture3_GetShades(IDirect3DRMTexture3 *iface)
1293{
1295 TRACE("iface %p\n", iface);
1296 return texture->max_shades;
1297}
1298
1299static DWORD WINAPI d3drm_texture3_GetColors(IDirect3DRMTexture3 *iface)
1300{
1302 TRACE("iface %p\n", iface);
1303 return texture->max_colors;
1304}
1305
1306static DWORD WINAPI d3drm_texture3_GetDecalScale(IDirect3DRMTexture3 *iface)
1307{
1308 FIXME("iface %p stub!\n", iface);
1309
1310 return 0;
1311}
1312
1313static BOOL WINAPI d3drm_texture3_GetDecalTransparency(IDirect3DRMTexture3 *iface)
1314{
1316
1317 TRACE("iface %p.\n", iface);
1318
1319 return texture->transparency;
1320}
1321
1323{
1324 FIXME("iface %p stub!\n", iface);
1325
1326 return 0;
1327}
1328
1329static HRESULT WINAPI d3drm_texture3_InitFromImage(IDirect3DRMTexture3 *iface, D3DRMIMAGE *image)
1330{
1332
1333 TRACE("iface %p, image %p.\n", iface, image);
1334
1336 return D3DRMERR_BADOBJECT;
1337
1338 /* d3drm intentionally leaks a reference to IDirect3DRM here if texture has already been initialized. */
1340
1341 if (texture->image || texture->surface)
1342 return D3DRMERR_BADOBJECT;
1343
1344 texture->image = image;
1345
1346 return D3DRM_OK;
1347}
1348
1349static HRESULT WINAPI d3drm_texture3_InitFromResource2(IDirect3DRMTexture3 *iface,
1350 HMODULE module, const char *name, const char *type)
1351{
1352 FIXME("iface %p, module %p, name %s, type %s stub!\n",
1353 iface, module, debugstr_a(name), debugstr_a(type));
1354
1355 return E_NOTIMPL;
1356}
1357
1358static HRESULT WINAPI d3drm_texture3_GenerateMIPMap(IDirect3DRMTexture3 *iface, DWORD flags)
1359{
1360 FIXME("iface %p, flags %#lx stub!\n", iface, flags);
1361
1362 return E_NOTIMPL;
1363}
1364
1365static HRESULT WINAPI d3drm_texture3_GetSurface(IDirect3DRMTexture3 *iface,
1366 DWORD flags, IDirectDrawSurface **surface)
1367{
1369
1370 TRACE("iface %p, flags %#lx, surface %p.\n", iface, flags, surface);
1371
1372 if (flags)
1373 FIXME("unexpected flags %#lx.\n", flags);
1374
1375 if (!surface)
1376 return D3DRMERR_BADVALUE;
1377
1378 if (texture->image)
1380
1381 *surface = texture->surface;
1382 IDirectDrawSurface_AddRef(*surface);
1383
1384 return D3DRM_OK;
1385}
1386
1387static HRESULT WINAPI d3drm_texture3_SetCacheOptions(IDirect3DRMTexture3 *iface, LONG importance, DWORD flags)
1388{
1389 FIXME("iface %p, importance %ld, flags %#lx stub!\n", iface, importance, flags);
1390
1391 return E_NOTIMPL;
1392}
1393
1394static HRESULT WINAPI d3drm_texture3_GetCacheOptions(IDirect3DRMTexture3 *iface,
1395 LONG *importance, DWORD *flags)
1396{
1397 FIXME("iface %p, importance %p, flags %p stub!\n", iface, importance, flags);
1398
1399 return E_NOTIMPL;
1400}
1401
1402static HRESULT WINAPI d3drm_texture3_SetDownsampleCallback(IDirect3DRMTexture3 *iface,
1404{
1405 FIXME("iface %p, cb %p, ctx %p stub!\n", iface, cb, ctx);
1406
1407 return E_NOTIMPL;
1408}
1409
1410static HRESULT WINAPI d3drm_texture3_SetValidationCallback(IDirect3DRMTexture3 *iface,
1412{
1413 FIXME("iface %p, cb %p, ctx %p stub!\n", iface, cb, ctx);
1414
1415 return E_NOTIMPL;
1416}
1417
1418static const struct IDirect3DRMTexture3Vtbl d3drm_texture3_vtbl =
1419{
1458};
1459
1461{
1462 static const char classname[] = "Texture";
1463 struct d3drm_texture *object;
1464
1465 TRACE("texture %p.\n", texture);
1466
1467 if (!(object = calloc(1, sizeof(*object))))
1468 return E_OUTOFMEMORY;
1469
1470 object->IDirect3DRMTexture_iface.lpVtbl = &d3drm_texture1_vtbl;
1471 object->IDirect3DRMTexture2_iface.lpVtbl = &d3drm_texture2_vtbl;
1472 object->IDirect3DRMTexture3_iface.lpVtbl = &d3drm_texture3_vtbl;
1473 object->d3drm = d3drm;
1474 object->max_colors = 8;
1475 object->max_shades = 16;
1476 object->transparency = FALSE;
1477 object->decal_width = 1.0f;
1478 object->decal_height = 1.0f;
1479
1481
1482 *texture = object;
1483
1484 return D3DRM_OK;
1485}
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
#define D3DRM_OK
Definition: d3drm.h:486
#define D3DRMERR_NOTCREATEDFROMDDS
Definition: d3drm.h:513
#define D3DRMERR_BADFILE
Definition: d3drm.h:494
#define D3DRMERR_BADVALUE
Definition: d3drm.h:496
#define IDirect3DRM_Release(p)
Definition: d3drm.h:111
#define D3DRMERR_BADOBJECT
Definition: d3drm.h:487
#define IDirect3DRM_AddRef(p)
Definition: d3drm.h:110
#define D3DRMERR_BADALLOC
Definition: d3drm.h:489
void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
Definition: d3drm_main.c:155
void d3drm_object_init(struct d3drm_object *object, const char *classname)
Definition: d3drm_main.c:41
HRESULT d3drm_object_get_name(struct d3drm_object *object, DWORD *size, char *name)
Definition: d3drm_main.c:113
HRESULT d3drm_object_delete_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: d3drm_main.c:74
HRESULT d3drm_object_add_destroy_callback(struct d3drm_object *object, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: d3drm_main.c:57
HRESULT d3drm_object_set_name(struct d3drm_object *object, const char *name)
Definition: d3drm_main.c:137
HRESULT d3drm_object_get_class_name(struct d3drm_object *object, DWORD *size, char *name)
Definition: d3drm_main.c:94
@ D3DRMPALETTE_READONLY
Definition: d3drmdef.h:135
#define IDirect3DRMTexture3_Clone(p, a, b, c)
Definition: d3drmobj.h:3478
#define IDirect3DRMTexture3_DeleteDestroyCallback(p, a, b)
Definition: d3drmobj.h:3480
#define IDirect3DRMTexture3_GetColors(p)
Definition: d3drmobj.h:3502
#define IDirect3DRMTexture3_InitFromFile(p, a)
Definition: d3drmobj.h:3487
#define IDirect3DRMTexture3_Release(p)
Definition: d3drmobj.h:3476
HRESULT(__cdecl * D3DRMDOWNSAMPLECALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx, IDirectDrawSurface *src_surface, IDirectDrawSurface *dst_surface)
Definition: d3drmobj.h:168
#define IDirect3DRMTexture3_InitFromImage(p, a)
Definition: d3drmobj.h:3506
HRESULT(__cdecl * D3DRMVALIDATIONCALLBACK)(struct IDirect3DRMTexture3 *texture, void *ctx, DWORD flags, DWORD rect_count, RECT *rects)
Definition: d3drmobj.h:170
#define IDirect3DRMTexture3_GetImage(p)
Definition: d3drmobj.h:3500
#define IDirect3DRMTexture3_GenerateMIPMap(p, a)
Definition: d3drmobj.h:3508
#define IDirect3DRMTexture3_GetDecalScale(p)
Definition: d3drmobj.h:3503
#define IDirect3DRMTexture3_SetDecalSize(p, a, b)
Definition: d3drmobj.h:3493
#define IDirect3DRMTexture3_AddDestroyCallback(p, a, b)
Definition: d3drmobj.h:3479
#define IDirect3DRMTexture3_GetDecalSize(p, a, b)
Definition: d3drmobj.h:3498
#define IDirect3DRMTexture3_SetDecalTransparency(p, a)
Definition: d3drmobj.h:3496
#define IDirect3DRMTexture3_SetAppData(p, a)
Definition: d3drmobj.h:3481
#define IDirect3DRMTexture3_SetShades(p, a)
Definition: d3drmobj.h:3492
#define IDirect3DRMTexture3_AddRef(p)
Definition: d3drmobj.h:3475
#define IDirect3DRMTexture3_GetShades(p)
Definition: d3drmobj.h:3501
#define IDirect3DRMTexture3_QueryInterface(p, a, b)
Definition: d3drmobj.h:3474
#define IDirect3DRMTexture3_GetDecalOrigin(p, a, b)
Definition: d3drmobj.h:3499
#define IDirect3DRMTexture3_SetDecalOrigin(p, a, b)
Definition: d3drmobj.h:3494
#define IDirect3DRMTexture3_GetAppData(p)
Definition: d3drmobj.h:3482
#define IDirect3DRMTexture3_InitFromSurface(p, a)
Definition: d3drmobj.h:3488
#define IDirect3DRMTexture3_GetName(p, a, b)
Definition: d3drmobj.h:3484
#define IDirect3DRMTexture3_SetColors(p, a)
Definition: d3drmobj.h:3491
#define IDirect3DRMTexture3_SetDecalTransparentColor(p, a)
Definition: d3drmobj.h:3497
#define IDirect3DRMTexture3_GetDecalTransparentColor(p)
Definition: d3drmobj.h:3505
#define IDirect3DRMObject_AddDestroyCallback(p, a, b)
Definition: d3drmobj.h:223
#define IDirect3DRMTexture3_SetName(p, a)
Definition: d3drmobj.h:3483
void(__cdecl * D3DRMOBJECTCALLBACK)(struct IDirect3DRMObject *obj, void *arg)
Definition: d3drmobj.h:157
#define IDirect3DRMTexture3_GetClassName(p, a, b)
Definition: d3drmobj.h:3485
#define IDirect3DRMTexture3_GetDecalTransparency(p)
Definition: d3drmobj.h:3504
#define IDirect3DRMTexture3_SetDecalScale(p, a)
Definition: d3drmobj.h:3495
float D3DVALUE
Definition: d3dtypes.h:89
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_NOTIMPL
Definition: ddrawi.h:99
#define realloc
Definition: debug_ros.c:6
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static HRESULT WINAPI d3drm_texture1_GetName(IDirect3DRMTexture *iface, DWORD *size, char *name)
Definition: texture.c:451
HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm)
Definition: texture.c:1460
static HRESULT WINAPI d3drm_texture3_SetDecalTransparentColor(IDirect3DRMTexture3 *iface, D3DCOLOR color)
Definition: texture.c:1252
static HRESULT WINAPI d3drm_texture3_SetColors(IDirect3DRMTexture3 *iface, DWORD max_colors)
Definition: texture.c:1190
static HRESULT WINAPI d3drm_texture1_SetAppData(IDirect3DRMTexture *iface, DWORD data)
Definition: texture.c:424
static HRESULT WINAPI d3drm_texture2_SetDecalSize(IDirect3DRMTexture2 *iface, D3DVALUE width, D3DVALUE height)
Definition: texture.c:829
static HRESULT WINAPI d3drm_texture1_SetShades(IDirect3DRMTexture *iface, DWORD max_shades)
Definition: texture.c:516
static DWORD WINAPI d3drm_texture1_GetColors(IDirect3DRMTexture *iface)
Definition: texture.c:606
static DWORD WINAPI d3drm_texture3_GetDecalScale(IDirect3DRMTexture3 *iface)
Definition: texture.c:1306
static HRESULT WINAPI d3drm_texture3_SetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE width, D3DVALUE height)
Definition: texture.c:1210
static DWORD WINAPI d3drm_texture3_GetShades(IDirect3DRMTexture3 *iface)
Definition: texture.c:1292
static HRESULT WINAPI d3drm_texture2_QueryInterface(IDirect3DRMTexture2 *iface, REFIID riid, void **out)
Definition: texture.c:676
static HRESULT WINAPI d3drm_texture2_SetAppData(IDirect3DRMTexture2 *iface, DWORD data)
Definition: texture.c:733
static HRESULT d3drm_image_load_8(D3DRMIMAGE *image, const RGBQUAD *palette, unsigned char *src_data, LONGLONG src_data_size, SIZE_T w, SIZE_T h, BOOL flip)
Definition: texture.c:214
static BOOL WINAPI d3drm_texture3_GetDecalTransparency(IDirect3DRMTexture3 *iface)
Definition: texture.c:1313
static HRESULT WINAPI d3drm_texture1_SetName(IDirect3DRMTexture *iface, const char *name)
Definition: texture.c:442
static HRESULT WINAPI d3drm_texture3_InitFromResource(IDirect3DRMTexture3 *iface, HRSRC resource)
Definition: texture.c:1175
static HRESULT WINAPI d3drm_texture3_GetDecalSize(IDirect3DRMTexture3 *iface, D3DVALUE *width, D3DVALUE *height)
Definition: texture.c:1259
static HRESULT WINAPI d3drm_texture3_SetDownsampleCallback(IDirect3DRMTexture3 *iface, D3DRMDOWNSAMPLECALLBACK cb, void *ctx)
Definition: texture.c:1402
static HRESULT WINAPI d3drm_texture2_InitFromImage(IDirect3DRMTexture2 *iface, D3DRMIMAGE *image)
Definition: texture.c:946
static BOOL d3drm_validate_image(D3DRMIMAGE *image)
Definition: texture.c:53
static DWORD WINAPI d3drm_texture2_GetShades(IDirect3DRMTexture2 *iface)
Definition: texture.c:901
static DWORD WINAPI d3drm_texture2_GetAppData(IDirect3DRMTexture2 *iface)
Definition: texture.c:742
static DWORD WINAPI d3drm_texture1_GetAppData(IDirect3DRMTexture *iface)
Definition: texture.c:433
static D3DRMIMAGE *WINAPI d3drm_texture1_GetImage(IDirect3DRMTexture *iface)
Definition: texture.c:588
static HRESULT WINAPI d3drm_texture2_GetClassName(IDirect3DRMTexture2 *iface, DWORD *size, char *name)
Definition: texture.c:769
static HRESULT WINAPI d3drm_texture1_Clone(IDirect3DRMTexture *iface, IUnknown *outer, REFIID iid, void **out)
Definition: texture.c:394
static HRESULT d3drm_image_load_32(D3DRMIMAGE *image, unsigned char *src_data, LONGLONG src_data_size, SIZE_T w, SIZE_T h, BOOL flip)
Definition: texture.c:163
static HRESULT WINAPI d3drm_texture1_InitFromResource(IDirect3DRMTexture *iface, HRSRC resource)
Definition: texture.c:493
static HRESULT WINAPI d3drm_texture2_InitFromSurface(IDirect3DRMTexture2 *iface, IDirectDrawSurface *surface)
Definition: texture.c:787
static HRESULT WINAPI d3drm_texture2_SetName(IDirect3DRMTexture2 *iface, const char *name)
Definition: texture.c:751
static D3DCOLOR WINAPI d3drm_texture3_GetDecalTransparentColor(IDirect3DRMTexture3 *iface)
Definition: texture.c:1322
static HRESULT WINAPI d3drm_texture2_SetDecalOrigin(IDirect3DRMTexture2 *iface, LONG x, LONG y)
Definition: texture.c:838
static D3DRMIMAGE *WINAPI d3drm_texture3_GetImage(IDirect3DRMTexture3 *iface)
Definition: texture.c:1283
static const struct IDirect3DRMTexture2Vtbl d3drm_texture2_vtbl
Definition: texture.c:973
static HRESULT WINAPI d3drm_texture3_GetName(IDirect3DRMTexture3 *iface, DWORD *size, char *name)
Definition: texture.c:1122
static HRESULT WINAPI d3drm_texture2_SetDecalTransparency(IDirect3DRMTexture2 *iface, BOOL transparency)
Definition: texture.c:856
static HRESULT WINAPI d3drm_texture2_Changed(IDirect3DRMTexture2 *iface, BOOL pixels, BOOL palette)
Definition: texture.c:804
static HRESULT WINAPI d3drm_texture3_SetValidationCallback(IDirect3DRMTexture3 *iface, D3DRMVALIDATIONCALLBACK cb, void *ctx)
Definition: texture.c:1410
static HRESULT WINAPI d3drm_texture3_GetClassName(IDirect3DRMTexture3 *iface, DWORD *size, char *name)
Definition: texture.c:1131
static HRESULT WINAPI d3drm_texture2_GenerateMIPMap(IDirect3DRMTexture2 *iface, DWORD flags)
Definition: texture.c:964
static HRESULT WINAPI d3drm_texture2_SetColors(IDirect3DRMTexture2 *iface, DWORD max_colors)
Definition: texture.c:811
static HRESULT WINAPI d3drm_texture1_GetDecalSize(IDirect3DRMTexture *iface, D3DVALUE *width, D3DVALUE *height)
Definition: texture.c:570
static HRESULT WINAPI d3drm_texture1_SetDecalScale(IDirect3DRMTexture *iface, DWORD scale)
Definition: texture.c:543
static D3DCOLOR WINAPI d3drm_texture2_GetDecalTransparentColor(IDirect3DRMTexture2 *iface)
Definition: texture.c:937
static BOOL WINAPI d3drm_texture2_GetDecalTransparency(IDirect3DRMTexture2 *iface)
Definition: texture.c:928
static struct d3drm_texture * impl_from_IDirect3DRMTexture(IDirect3DRMTexture *iface)
Definition: texture.c:26
static void d3drm_texture_destroy(struct d3drm_texture *texture)
Definition: texture.c:41
static HRESULT WINAPI d3drm_texture2_SetShades(IDirect3DRMTexture2 *iface, DWORD max_shades)
Definition: texture.c:820
static HRESULT WINAPI d3drm_texture3_AddDestroyCallback(IDirect3DRMTexture3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:1073
static HRESULT WINAPI d3drm_texture1_AddDestroyCallback(IDirect3DRMTexture *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:404
static HRESULT WINAPI d3drm_texture2_InitFromResource(IDirect3DRMTexture2 *iface, HRSRC resource)
Definition: texture.c:797
static HRESULT WINAPI d3drm_texture3_InitFromSurface(IDirect3DRMTexture3 *iface, IDirectDrawSurface *surface)
Definition: texture.c:1154
static HRESULT WINAPI d3drm_texture1_QueryInterface(IDirect3DRMTexture *iface, REFIID riid, void **out)
Definition: texture.c:367
static HRESULT WINAPI d3drm_texture1_InitFromSurface(IDirect3DRMTexture *iface, IDirectDrawSurface *surface)
Definition: texture.c:483
static HRESULT WINAPI d3drm_texture2_DeleteDestroyCallback(IDirect3DRMTexture2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:723
static HRESULT WINAPI d3drm_texture2_AddDestroyCallback(IDirect3DRMTexture2 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:713
static HRESULT WINAPI d3drm_texture2_GetDecalOrigin(IDirect3DRMTexture2 *iface, LONG *x, LONG *y)
Definition: texture.c:883
static ULONG WINAPI d3drm_texture2_AddRef(IDirect3DRMTexture2 *iface)
Definition: texture.c:685
static D3DRMIMAGE *WINAPI d3drm_texture2_GetImage(IDirect3DRMTexture2 *iface)
Definition: texture.c:892
static HRESULT WINAPI d3drm_texture1_SetDecalTransparentColor(IDirect3DRMTexture *iface, D3DCOLOR color)
Definition: texture.c:561
static D3DCOLOR WINAPI d3drm_texture1_GetDecalTransparentColor(IDirect3DRMTexture *iface)
Definition: texture.c:633
static HRESULT WINAPI d3drm_texture1_DeleteDestroyCallback(IDirect3DRMTexture *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:414
static HRESULT WINAPI d3drm_texture2_GetName(IDirect3DRMTexture2 *iface, DWORD *size, char *name)
Definition: texture.c:760
static HRESULT WINAPI d3drm_texture3_SetName(IDirect3DRMTexture3 *iface, const char *name)
Definition: texture.c:1113
static HRESULT WINAPI d3drm_texture2_SetDecalScale(IDirect3DRMTexture2 *iface, DWORD scale)
Definition: texture.c:847
static DWORD WINAPI d3drm_texture3_GetColors(IDirect3DRMTexture3 *iface)
Definition: texture.c:1299
static ULONG WINAPI d3drm_texture1_AddRef(IDirect3DRMTexture *iface)
Definition: texture.c:376
static ULONG WINAPI d3drm_texture2_Release(IDirect3DRMTexture2 *iface)
Definition: texture.c:694
static HRESULT WINAPI d3drm_texture1_SetDecalSize(IDirect3DRMTexture *iface, D3DVALUE width, D3DVALUE height)
Definition: texture.c:525
static HRESULT WINAPI d3drm_texture3_SetDecalTransparency(IDirect3DRMTexture3 *iface, BOOL transparency)
Definition: texture.c:1241
static HRESULT d3drm_texture_load(struct d3drm_texture *texture, const char *path, BOOL flip, D3DRMIMAGE **image_out)
Definition: texture.c:278
static HRESULT WINAPI d3drm_texture3_Clone(IDirect3DRMTexture3 *iface, IUnknown *outer, REFIID iid, void **out)
Definition: texture.c:1065
static HRESULT WINAPI d3drm_texture3_Changed(IDirect3DRMTexture3 *iface, DWORD flags, DWORD rect_count, RECT *rects)
Definition: texture.c:1182
static HRESULT WINAPI d3drm_texture3_GetSurface(IDirect3DRMTexture3 *iface, DWORD flags, IDirectDrawSurface **surface)
Definition: texture.c:1365
static HRESULT WINAPI d3drm_texture3_SetCacheOptions(IDirect3DRMTexture3 *iface, LONG importance, DWORD flags)
Definition: texture.c:1387
static HRESULT WINAPI d3drm_texture3_GetDecalOrigin(IDirect3DRMTexture3 *iface, LONG *x, LONG *y)
Definition: texture.c:1271
static HRESULT WINAPI d3drm_texture1_Changed(IDirect3DRMTexture *iface, BOOL pixels, BOOL palette)
Definition: texture.c:500
static HRESULT WINAPI d3drm_texture1_SetDecalOrigin(IDirect3DRMTexture *iface, LONG x, LONG y)
Definition: texture.c:534
static ULONG WINAPI d3drm_texture1_Release(IDirect3DRMTexture *iface)
Definition: texture.c:385
static HRESULT WINAPI d3drm_texture3_DeleteDestroyCallback(IDirect3DRMTexture3 *iface, D3DRMOBJECTCALLBACK cb, void *ctx)
Definition: texture.c:1083
static HRESULT WINAPI d3drm_texture1_GetDecalOrigin(IDirect3DRMTexture *iface, LONG *x, LONG *y)
Definition: texture.c:579
static HRESULT WINAPI d3drm_texture2_SetDecalTransparentColor(IDirect3DRMTexture2 *iface, D3DCOLOR color)
Definition: texture.c:865
static DWORD WINAPI d3drm_texture2_GetColors(IDirect3DRMTexture2 *iface)
Definition: texture.c:910
static HRESULT WINAPI d3drm_texture3_SetAppData(IDirect3DRMTexture3 *iface, DWORD data)
Definition: texture.c:1093
static HRESULT WINAPI d3drm_texture2_InitFromResource2(IDirect3DRMTexture2 *iface, HMODULE module, const char *name, const char *type)
Definition: texture.c:955
static DWORD WINAPI d3drm_texture2_GetDecalScale(IDirect3DRMTexture2 *iface)
Definition: texture.c:919
static HRESULT WINAPI d3drm_texture1_GetClassName(IDirect3DRMTexture *iface, DWORD *size, char *name)
Definition: texture.c:460
static struct d3drm_texture * impl_from_IDirect3DRMTexture2(IDirect3DRMTexture2 *iface)
Definition: texture.c:31
static ULONG WINAPI d3drm_texture3_AddRef(IDirect3DRMTexture3 *iface)
Definition: texture.c:1042
static HRESULT WINAPI d3drm_texture3_SetDecalOrigin(IDirect3DRMTexture3 *iface, LONG x, LONG y)
Definition: texture.c:1222
static HRESULT WINAPI d3drm_texture2_GetDecalSize(IDirect3DRMTexture2 *iface, D3DVALUE *width, D3DVALUE *height)
Definition: texture.c:874
static HRESULT WINAPI d3drm_texture2_InitFromFile(IDirect3DRMTexture2 *iface, const char *filename)
Definition: texture.c:778
static const struct IDirect3DRMTextureVtbl d3drm_texture1_vtbl
Definition: texture.c:642
static DWORD WINAPI d3drm_texture1_GetShades(IDirect3DRMTexture *iface)
Definition: texture.c:597
static HRESULT WINAPI d3drm_texture3_GetCacheOptions(IDirect3DRMTexture3 *iface, LONG *importance, DWORD *flags)
Definition: texture.c:1394
static HRESULT WINAPI d3drm_texture1_InitFromFile(IDirect3DRMTexture *iface, const char *filename)
Definition: texture.c:469
static DWORD WINAPI d3drm_texture1_GetDecalScale(IDirect3DRMTexture *iface)
Definition: texture.c:615
static DWORD WINAPI d3drm_texture3_GetAppData(IDirect3DRMTexture3 *iface)
Definition: texture.c:1104
static HRESULT WINAPI d3drm_texture3_SetShades(IDirect3DRMTexture3 *iface, DWORD max_shades)
Definition: texture.c:1200
static HRESULT WINAPI d3drm_texture1_SetDecalTransparency(IDirect3DRMTexture *iface, BOOL transparency)
Definition: texture.c:552
static HRESULT WINAPI d3drm_texture3_InitFromFile(IDirect3DRMTexture3 *iface, const char *filename)
Definition: texture.c:1140
static HRESULT WINAPI d3drm_texture3_SetDecalScale(IDirect3DRMTexture3 *iface, DWORD scale)
Definition: texture.c:1234
static void CDECL destroy_image_callback(IDirect3DRMObject *obj, void *arg)
Definition: texture.c:268
static HRESULT WINAPI d3drm_texture3_QueryInterface(IDirect3DRMTexture3 *iface, REFIID riid, void **out)
Definition: texture.c:1010
static ULONG WINAPI d3drm_texture3_Release(IDirect3DRMTexture3 *iface)
Definition: texture.c:1052
static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data, SIZE_T w, SIZE_T h, BOOL flip)
Definition: texture.c:81
static HRESULT WINAPI d3drm_texture3_GenerateMIPMap(IDirect3DRMTexture3 *iface, DWORD flags)
Definition: texture.c:1358
static BOOL WINAPI d3drm_texture1_GetDecalTransparency(IDirect3DRMTexture *iface)
Definition: texture.c:624
static HRESULT WINAPI d3drm_texture3_InitFromImage(IDirect3DRMTexture3 *iface, D3DRMIMAGE *image)
Definition: texture.c:1329
static const struct IDirect3DRMTexture3Vtbl d3drm_texture3_vtbl
Definition: texture.c:1418
static HRESULT WINAPI d3drm_texture3_InitFromResource2(IDirect3DRMTexture3 *iface, HMODULE module, const char *name, const char *type)
Definition: texture.c:1349
static struct d3drm_texture * impl_from_IDirect3DRMTexture3(IDirect3DRMTexture3 *iface)
Definition: texture.c:36
static HRESULT WINAPI d3drm_texture2_Clone(IDirect3DRMTexture2 *iface, IUnknown *outer, REFIID iid, void **out)
Definition: texture.c:703
static HRESULT WINAPI d3drm_texture1_SetColors(IDirect3DRMTexture *iface, DWORD max_colors)
Definition: texture.c:507
#define CDECL
Definition: compat.h:29
#define CloseHandle
Definition: compat.h:739
#define PAGE_READONLY
Definition: compat.h:138
#define UnmapViewOfFile
Definition: compat.h:746
#define OPEN_EXISTING
Definition: compat.h:775
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define CreateFileMappingW(a, b, c, d, e, f)
Definition: compat.h:744
#define CreateFileA(a, b, c, d, e, f, g)
Definition: compat.h:740
#define GENERIC_READ
Definition: compat.h:135
#define FILE_MAP_READ
Definition: compat.h:776
#define GetFileSizeEx
Definition: compat.h:757
#define MapViewOfFile
Definition: compat.h:745
#define FILE_SHARE_READ
Definition: compat.h:136
static MonoProfilerRuntimeShutdownBeginCallback cb
Definition: metahost.c:118
ULONG RGBQUAD
Definition: precomp.h:47
#define abs(i)
Definition: fconv.c:206
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
GLint GLint GLsizei GLsizei GLsizei GLint GLenum GLenum const GLvoid * pixels
Definition: gl.h:1546
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLint GLint GLsizei width
Definition: gl.h:1546
GLenum GLuint texture
Definition: glext.h:6295
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9032
GLsizeiptr size
Definition: glext.h:5919
GLuint color
Definition: glext.h:6243
GLbitfield flags
Definition: glext.h:7161
GLenum GLenum GLenum GLenum mapping
Definition: glext.h:9031
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
REFIID riid
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
const char * filename
Definition: ioapi.h:137
uint32_t entry
Definition: isohybrid.c:63
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_a
Definition: kernel32.h:31
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static IUnknown * outer
Definition: compobj.c:82
static HPALETTE palette
Definition: clipboard.c:1457
long LONG
Definition: pedump.c:60
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147
#define REFIID
Definition: guiddef.h:118
WCHAR classname[128]
Definition: startup.c:15
#define calloc
Definition: rosglue.h:14
#define memset(x, y, z)
Definition: compat.h:39
#define TRACE(s)
Definition: solgame.cpp:4
Definition: dcommon.idl:28
IDirect3DRM * d3drm
Definition: d3drm_private.h:61
IDirectDrawSurface * surface
Definition: d3drm_private.h:63
IDirect3DRMTexture3 IDirect3DRMTexture3_iface
Definition: d3drm_private.h:60
D3DRMIMAGE * image
Definition: d3drm_private.h:62
IDirect3DRMTexture2 IDirect3DRMTexture2_iface
Definition: d3drm_private.h:59
IDirect3DRMTexture IDirect3DRMTexture_iface
Definition: d3drm_private.h:58
Definition: d3drm.c:189
Definition: fci.c:123
Definition: image.c:84
Definition: name.c:39
int64_t LONGLONG
Definition: typedefs.h:68
ULONG_PTR SIZE_T
Definition: typedefs.h:80
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
void * arg
Definition: msvc.h:10
#define WINAPI
Definition: msvc.h:6
#define CLASS_E_CLASSNOTAVAILABLE
Definition: winerror.h:3772
ULONG bpp[]
Definition: xlate.c:19