1 ////////////////////////////////////////////////////////////////////////////// 2 // 3 // Copyright (C) Microsoft Corporation. All Rights Reserved. 4 // 5 // File: d3dx8tex.h 6 // Content: D3DX texturing APIs 7 // 8 ////////////////////////////////////////////////////////////////////////////// 9 10 #include "d3dx8.h" 11 12 #ifndef __D3DX8TEX_H__ 13 #define __D3DX8TEX_H__ 14 15 16 //---------------------------------------------------------------------------- 17 // D3DX_FILTER flags: 18 // ------------------ 19 // 20 // A valid filter must contain one of these values: 21 // 22 // D3DX_FILTER_NONE 23 // No scaling or filtering will take place. Pixels outside the bounds 24 // of the source image are assumed to be transparent black. 25 // D3DX_FILTER_POINT 26 // Each destination pixel is computed by sampling the nearest pixel 27 // from the source image. 28 // D3DX_FILTER_LINEAR 29 // Each destination pixel is computed by linearly interpolating between 30 // the nearest pixels in the source image. This filter works best 31 // when the scale on each axis is less than 2. 32 // D3DX_FILTER_TRIANGLE 33 // Every pixel in the source image contributes equally to the 34 // destination image. This is the slowest of all the filters. 35 // D3DX_FILTER_BOX 36 // Each pixel is computed by averaging a 2x2(x2) box pixels from 37 // the source image. Only works when the dimensions of the 38 // destination are half those of the source. (as with mip maps) 39 // 40 // And can be OR'd with any of these optional flags: 41 // 42 // D3DX_FILTER_MIRROR_U 43 // Indicates that pixels off the edge of the texture on the U-axis 44 // should be mirrored, not wraped. 45 // D3DX_FILTER_MIRROR_V 46 // Indicates that pixels off the edge of the texture on the V-axis 47 // should be mirrored, not wraped. 48 // D3DX_FILTER_MIRROR_W 49 // Indicates that pixels off the edge of the texture on the W-axis 50 // should be mirrored, not wraped. 51 // D3DX_FILTER_MIRROR 52 // Same as specifying D3DX_FILTER_MIRROR_U | D3DX_FILTER_MIRROR_V | 53 // D3DX_FILTER_MIRROR_V 54 // D3DX_FILTER_DITHER 55 // Dithers the resulting image. 56 // 57 //---------------------------------------------------------------------------- 58 59 #define D3DX_FILTER_NONE (1 << 0) 60 #define D3DX_FILTER_POINT (2 << 0) 61 #define D3DX_FILTER_LINEAR (3 << 0) 62 #define D3DX_FILTER_TRIANGLE (4 << 0) 63 #define D3DX_FILTER_BOX (5 << 0) 64 65 #define D3DX_FILTER_MIRROR_U (1 << 16) 66 #define D3DX_FILTER_MIRROR_V (2 << 16) 67 #define D3DX_FILTER_MIRROR_W (4 << 16) 68 #define D3DX_FILTER_MIRROR (7 << 16) 69 #define D3DX_FILTER_DITHER (8 << 16) 70 71 72 //---------------------------------------------------------------------------- 73 // D3DX_NORMALMAP flags: 74 // --------------------- 75 // These flags are used to control how D3DXComputeNormalMap generates normal 76 // maps. Any number of these flags may be OR'd together in any combination. 77 // 78 // D3DX_NORMALMAP_MIRROR_U 79 // Indicates that pixels off the edge of the texture on the U-axis 80 // should be mirrored, not wraped. 81 // D3DX_NORMALMAP_MIRROR_V 82 // Indicates that pixels off the edge of the texture on the V-axis 83 // should be mirrored, not wraped. 84 // D3DX_NORMALMAP_MIRROR 85 // Same as specifying D3DX_NORMALMAP_MIRROR_U | D3DX_NORMALMAP_MIRROR_V 86 // D3DX_NORMALMAP_INVERTSIGN 87 // Inverts the direction of each normal 88 // D3DX_NORMALMAP_COMPUTE_OCCLUSION 89 // Compute the per pixel Occlusion term and encodes it into the alpha. 90 // An Alpha of 1 means that the pixel is not obscured in anyway, and 91 // an alpha of 0 would mean that the pixel is completly obscured. 92 // 93 //---------------------------------------------------------------------------- 94 95 //---------------------------------------------------------------------------- 96 97 #define D3DX_NORMALMAP_MIRROR_U (1 << 16) 98 #define D3DX_NORMALMAP_MIRROR_V (2 << 16) 99 #define D3DX_NORMALMAP_MIRROR (3 << 16) 100 #define D3DX_NORMALMAP_INVERTSIGN (8 << 16) 101 #define D3DX_NORMALMAP_COMPUTE_OCCLUSION (16 << 16) 102 103 104 105 106 //---------------------------------------------------------------------------- 107 // D3DX_CHANNEL flags: 108 // ------------------- 109 // These flags are used by functions which operate on or more channels 110 // in a texture. 111 // 112 // D3DX_CHANNEL_RED 113 // Indicates the red channel should be used 114 // D3DX_CHANNEL_BLUE 115 // Indicates the blue channel should be used 116 // D3DX_CHANNEL_GREEN 117 // Indicates the green channel should be used 118 // D3DX_CHANNEL_ALPHA 119 // Indicates the alpha channel should be used 120 // D3DX_CHANNEL_LUMINANCE 121 // Indicates the luminaces of the red green and blue channels should be 122 // used. 123 // 124 //---------------------------------------------------------------------------- 125 126 #define D3DX_CHANNEL_RED (1 << 0) 127 #define D3DX_CHANNEL_BLUE (1 << 1) 128 #define D3DX_CHANNEL_GREEN (1 << 2) 129 #define D3DX_CHANNEL_ALPHA (1 << 3) 130 #define D3DX_CHANNEL_LUMINANCE (1 << 4) 131 132 133 134 135 //---------------------------------------------------------------------------- 136 // D3DXIMAGE_FILEFORMAT: 137 // --------------------- 138 // This enum is used to describe supported image file formats. 139 // 140 //---------------------------------------------------------------------------- 141 142 typedef enum _D3DXIMAGE_FILEFORMAT 143 { 144 D3DXIFF_BMP = 0, 145 D3DXIFF_JPG = 1, 146 D3DXIFF_TGA = 2, 147 D3DXIFF_PNG = 3, 148 D3DXIFF_DDS = 4, 149 D3DXIFF_PPM = 5, 150 D3DXIFF_DIB = 6, 151 D3DXIFF_FORCE_DWORD = 0x7fffffff 152 153 } D3DXIMAGE_FILEFORMAT; 154 155 156 //---------------------------------------------------------------------------- 157 // LPD3DXFILL2D and LPD3DXFILL3D: 158 // ------------------------------ 159 // Function types used by the texture fill functions. 160 // 161 // Parameters: 162 // pOut 163 // Pointer to a vector which the function uses to return its result. 164 // X,Y,Z,W will be mapped to R,G,B,A respectivly. 165 // pTexCoord 166 // Pointer to a vector containing the coordinates of the texel currently 167 // being evaluated. Textures and VolumeTexture texcoord components 168 // range from 0 to 1. CubeTexture texcoord component range from -1 to 1. 169 // pTexelSize 170 // Pointer to a vector containing the dimensions of the current texel. 171 // pData 172 // Pointer to user data. 173 // 174 //---------------------------------------------------------------------------- 175 176 typedef VOID (*LPD3DXFILL2D)(D3DXVECTOR4 *pOut, D3DXVECTOR2 *pTexCoord, D3DXVECTOR2 *pTexelSize, LPVOID pData); 177 typedef VOID (*LPD3DXFILL3D)(D3DXVECTOR4 *pOut, D3DXVECTOR3 *pTexCoord, D3DXVECTOR3 *pTexelSize, LPVOID pData); 178 179 180 181 //---------------------------------------------------------------------------- 182 // D3DXIMAGE_INFO: 183 // --------------- 184 // This structure is used to return a rough description of what the 185 // the original contents of an image file looked like. 186 // 187 // Width 188 // Width of original image in pixels 189 // Height 190 // Height of original image in pixels 191 // Depth 192 // Depth of original image in pixels 193 // MipLevels 194 // Number of mip levels in original image 195 // Format 196 // D3D format which most closely describes the data in original image 197 // ResourceType 198 // D3DRESOURCETYPE representing the type of texture stored in the file. 199 // D3DRTYPE_TEXTURE, D3DRTYPE_VOLUMETEXTURE, or D3DRTYPE_CUBETEXTURE. 200 // ImageFileFormat 201 // D3DXIMAGE_FILEFORMAT representing the format of the image file. 202 // 203 //---------------------------------------------------------------------------- 204 205 typedef struct _D3DXIMAGE_INFO 206 { 207 UINT Width; 208 UINT Height; 209 UINT Depth; 210 UINT MipLevels; 211 D3DFORMAT Format; 212 D3DRESOURCETYPE ResourceType; 213 D3DXIMAGE_FILEFORMAT ImageFileFormat; 214 215 } D3DXIMAGE_INFO; 216 217 218 219 220 221 #ifdef __cplusplus 222 extern "C" { 223 #endif //__cplusplus 224 225 226 227 ////////////////////////////////////////////////////////////////////////////// 228 // Image File APIs /////////////////////////////////////////////////////////// 229 ////////////////////////////////////////////////////////////////////////////// 230 ; 231 //---------------------------------------------------------------------------- 232 // GetImageInfoFromFile/Resource: 233 // ------------------------------ 234 // Fills in a D3DXIMAGE_INFO struct with information about an image file. 235 // 236 // Parameters: 237 // pSrcFile 238 // File name of the source image. 239 // pSrcModule 240 // Module where resource is located, or NULL for module associated 241 // with image the os used to create the current process. 242 // pSrcResource 243 // Resource name 244 // pSrcData 245 // Pointer to file in memory. 246 // SrcDataSize 247 // Size in bytes of file in memory. 248 // pSrcInfo 249 // Pointer to a D3DXIMAGE_INFO structure to be filled in with the 250 // description of the data in the source image file. 251 // 252 //---------------------------------------------------------------------------- 253 254 HRESULT WINAPI 255 D3DXGetImageInfoFromFileA( 256 LPCSTR pSrcFile, 257 D3DXIMAGE_INFO* pSrcInfo); 258 259 HRESULT WINAPI 260 D3DXGetImageInfoFromFileW( 261 LPCWSTR pSrcFile, 262 D3DXIMAGE_INFO* pSrcInfo); 263 264 #ifdef UNICODE 265 #define D3DXGetImageInfoFromFile D3DXGetImageInfoFromFileW 266 #else 267 #define D3DXGetImageInfoFromFile D3DXGetImageInfoFromFileA 268 #endif 269 270 271 HRESULT WINAPI 272 D3DXGetImageInfoFromResourceA( 273 HMODULE hSrcModule, 274 LPCSTR pSrcResource, 275 D3DXIMAGE_INFO* pSrcInfo); 276 277 HRESULT WINAPI 278 D3DXGetImageInfoFromResourceW( 279 HMODULE hSrcModule, 280 LPCWSTR pSrcResource, 281 D3DXIMAGE_INFO* pSrcInfo); 282 283 #ifdef UNICODE 284 #define D3DXGetImageInfoFromResource D3DXGetImageInfoFromResourceW 285 #else 286 #define D3DXGetImageInfoFromResource D3DXGetImageInfoFromResourceA 287 #endif 288 289 290 HRESULT WINAPI 291 D3DXGetImageInfoFromFileInMemory( 292 LPCVOID pSrcData, 293 UINT SrcDataSize, 294 D3DXIMAGE_INFO* pSrcInfo); 295 296 297 298 299 ////////////////////////////////////////////////////////////////////////////// 300 // Load/Save Surface APIs //////////////////////////////////////////////////// 301 ////////////////////////////////////////////////////////////////////////////// 302 303 //---------------------------------------------------------------------------- 304 // D3DXLoadSurfaceFromFile/Resource: 305 // --------------------------------- 306 // Load surface from a file or resource 307 // 308 // Parameters: 309 // pDestSurface 310 // Destination surface, which will receive the image. 311 // pDestPalette 312 // Destination palette of 256 colors, or NULL 313 // pDestRect 314 // Destination rectangle, or NULL for entire surface 315 // pSrcFile 316 // File name of the source image. 317 // pSrcModule 318 // Module where resource is located, or NULL for module associated 319 // with image the os used to create the current process. 320 // pSrcResource 321 // Resource name 322 // pSrcData 323 // Pointer to file in memory. 324 // SrcDataSize 325 // Size in bytes of file in memory. 326 // pSrcRect 327 // Source rectangle, or NULL for entire image 328 // Filter 329 // D3DX_FILTER flags controlling how the image is filtered. 330 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 331 // ColorKey 332 // Color to replace with transparent black, or 0 to disable colorkey. 333 // This is always a 32-bit ARGB color, independent of the source image 334 // format. Alpha is significant, and should usually be set to FF for 335 // opaque colorkeys. (ex. Opaque black == 0xff000000) 336 // pSrcInfo 337 // Pointer to a D3DXIMAGE_INFO structure to be filled in with the 338 // description of the data in the source image file, or NULL. 339 // 340 //---------------------------------------------------------------------------- 341 342 HRESULT WINAPI 343 D3DXLoadSurfaceFromFileA( 344 LPDIRECT3DSURFACE8 pDestSurface, 345 CONST PALETTEENTRY* pDestPalette, 346 CONST RECT* pDestRect, 347 LPCSTR pSrcFile, 348 CONST RECT* pSrcRect, 349 DWORD Filter, 350 D3DCOLOR ColorKey, 351 D3DXIMAGE_INFO* pSrcInfo); 352 353 HRESULT WINAPI 354 D3DXLoadSurfaceFromFileW( 355 LPDIRECT3DSURFACE8 pDestSurface, 356 CONST PALETTEENTRY* pDestPalette, 357 CONST RECT* pDestRect, 358 LPCWSTR pSrcFile, 359 CONST RECT* pSrcRect, 360 DWORD Filter, 361 D3DCOLOR ColorKey, 362 D3DXIMAGE_INFO* pSrcInfo); 363 364 #ifdef UNICODE 365 #define D3DXLoadSurfaceFromFile D3DXLoadSurfaceFromFileW 366 #else 367 #define D3DXLoadSurfaceFromFile D3DXLoadSurfaceFromFileA 368 #endif 369 370 371 372 HRESULT WINAPI 373 D3DXLoadSurfaceFromResourceA( 374 LPDIRECT3DSURFACE8 pDestSurface, 375 CONST PALETTEENTRY* pDestPalette, 376 CONST RECT* pDestRect, 377 HMODULE hSrcModule, 378 LPCSTR pSrcResource, 379 CONST RECT* pSrcRect, 380 DWORD Filter, 381 D3DCOLOR ColorKey, 382 D3DXIMAGE_INFO* pSrcInfo); 383 384 HRESULT WINAPI 385 D3DXLoadSurfaceFromResourceW( 386 LPDIRECT3DSURFACE8 pDestSurface, 387 CONST PALETTEENTRY* pDestPalette, 388 CONST RECT* pDestRect, 389 HMODULE hSrcModule, 390 LPCWSTR pSrcResource, 391 CONST RECT* pSrcRect, 392 DWORD Filter, 393 D3DCOLOR ColorKey, 394 D3DXIMAGE_INFO* pSrcInfo); 395 396 397 #ifdef UNICODE 398 #define D3DXLoadSurfaceFromResource D3DXLoadSurfaceFromResourceW 399 #else 400 #define D3DXLoadSurfaceFromResource D3DXLoadSurfaceFromResourceA 401 #endif 402 403 404 405 HRESULT WINAPI 406 D3DXLoadSurfaceFromFileInMemory( 407 LPDIRECT3DSURFACE8 pDestSurface, 408 CONST PALETTEENTRY* pDestPalette, 409 CONST RECT* pDestRect, 410 LPCVOID pSrcData, 411 UINT SrcDataSize, 412 CONST RECT* pSrcRect, 413 DWORD Filter, 414 D3DCOLOR ColorKey, 415 D3DXIMAGE_INFO* pSrcInfo); 416 417 418 419 //---------------------------------------------------------------------------- 420 // D3DXLoadSurfaceFromSurface: 421 // --------------------------- 422 // Load surface from another surface (with color conversion) 423 // 424 // Parameters: 425 // pDestSurface 426 // Destination surface, which will receive the image. 427 // pDestPalette 428 // Destination palette of 256 colors, or NULL 429 // pDestRect 430 // Destination rectangle, or NULL for entire surface 431 // pSrcSurface 432 // Source surface 433 // pSrcPalette 434 // Source palette of 256 colors, or NULL 435 // pSrcRect 436 // Source rectangle, or NULL for entire surface 437 // Filter 438 // D3DX_FILTER flags controlling how the image is filtered. 439 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 440 // ColorKey 441 // Color to replace with transparent black, or 0 to disable colorkey. 442 // This is always a 32-bit ARGB color, independent of the source image 443 // format. Alpha is significant, and should usually be set to FF for 444 // opaque colorkeys. (ex. Opaque black == 0xff000000) 445 // 446 //---------------------------------------------------------------------------- 447 448 HRESULT WINAPI 449 D3DXLoadSurfaceFromSurface( 450 LPDIRECT3DSURFACE8 pDestSurface, 451 CONST PALETTEENTRY* pDestPalette, 452 CONST RECT* pDestRect, 453 LPDIRECT3DSURFACE8 pSrcSurface, 454 CONST PALETTEENTRY* pSrcPalette, 455 CONST RECT* pSrcRect, 456 DWORD Filter, 457 D3DCOLOR ColorKey); 458 459 460 //---------------------------------------------------------------------------- 461 // D3DXLoadSurfaceFromMemory: 462 // -------------------------- 463 // Load surface from memory. 464 // 465 // Parameters: 466 // pDestSurface 467 // Destination surface, which will receive the image. 468 // pDestPalette 469 // Destination palette of 256 colors, or NULL 470 // pDestRect 471 // Destination rectangle, or NULL for entire surface 472 // pSrcMemory 473 // Pointer to the top-left corner of the source image in memory 474 // SrcFormat 475 // Pixel format of the source image. 476 // SrcPitch 477 // Pitch of source image, in bytes. For DXT formats, this number 478 // should represent the width of one row of cells, in bytes. 479 // pSrcPalette 480 // Source palette of 256 colors, or NULL 481 // pSrcRect 482 // Source rectangle. 483 // Filter 484 // D3DX_FILTER flags controlling how the image is filtered. 485 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 486 // ColorKey 487 // Color to replace with transparent black, or 0 to disable colorkey. 488 // This is always a 32-bit ARGB color, independent of the source image 489 // format. Alpha is significant, and should usually be set to FF for 490 // opaque colorkeys. (ex. Opaque black == 0xff000000) 491 // 492 //---------------------------------------------------------------------------- 493 494 HRESULT WINAPI 495 D3DXLoadSurfaceFromMemory( 496 LPDIRECT3DSURFACE8 pDestSurface, 497 CONST PALETTEENTRY* pDestPalette, 498 CONST RECT* pDestRect, 499 LPCVOID pSrcMemory, 500 D3DFORMAT SrcFormat, 501 UINT SrcPitch, 502 CONST PALETTEENTRY* pSrcPalette, 503 CONST RECT* pSrcRect, 504 DWORD Filter, 505 D3DCOLOR ColorKey); 506 507 508 //---------------------------------------------------------------------------- 509 // D3DXSaveSurfaceToFile: 510 // ---------------------- 511 // Save a surface to a image file. 512 // 513 // Parameters: 514 // pDestFile 515 // File name of the destination file 516 // DestFormat 517 // D3DXIMAGE_FILEFORMAT specifying file format to use when saving. 518 // pSrcSurface 519 // Source surface, containing the image to be saved 520 // pSrcPalette 521 // Source palette of 256 colors, or NULL 522 // pSrcRect 523 // Source rectangle, or NULL for the entire image 524 // 525 //---------------------------------------------------------------------------- 526 527 HRESULT WINAPI 528 D3DXSaveSurfaceToFileA( 529 LPCSTR pDestFile, 530 D3DXIMAGE_FILEFORMAT DestFormat, 531 LPDIRECT3DSURFACE8 pSrcSurface, 532 CONST PALETTEENTRY* pSrcPalette, 533 CONST RECT* pSrcRect); 534 535 HRESULT WINAPI 536 D3DXSaveSurfaceToFileW( 537 LPCWSTR pDestFile, 538 D3DXIMAGE_FILEFORMAT DestFormat, 539 LPDIRECT3DSURFACE8 pSrcSurface, 540 CONST PALETTEENTRY* pSrcPalette, 541 CONST RECT* pSrcRect); 542 543 #ifdef UNICODE 544 #define D3DXSaveSurfaceToFile D3DXSaveSurfaceToFileW 545 #else 546 #define D3DXSaveSurfaceToFile D3DXSaveSurfaceToFileA 547 #endif 548 549 550 551 552 ////////////////////////////////////////////////////////////////////////////// 553 // Load/Save Volume APIs ///////////////////////////////////////////////////// 554 ////////////////////////////////////////////////////////////////////////////// 555 556 //---------------------------------------------------------------------------- 557 // D3DXLoadVolumeFromFile/Resource: 558 // -------------------------------- 559 // Load volume from a file or resource 560 // 561 // Parameters: 562 // pDestVolume 563 // Destination volume, which will receive the image. 564 // pDestPalette 565 // Destination palette of 256 colors, or NULL 566 // pDestBox 567 // Destination box, or NULL for entire volume 568 // pSrcFile 569 // File name of the source image. 570 // pSrcModule 571 // Module where resource is located, or NULL for module associated 572 // with image the os used to create the current process. 573 // pSrcResource 574 // Resource name 575 // pSrcData 576 // Pointer to file in memory. 577 // SrcDataSize 578 // Size in bytes of file in memory. 579 // pSrcBox 580 // Source box, or NULL for entire image 581 // Filter 582 // D3DX_FILTER flags controlling how the image is filtered. 583 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 584 // ColorKey 585 // Color to replace with transparent black, or 0 to disable colorkey. 586 // This is always a 32-bit ARGB color, independent of the source image 587 // format. Alpha is significant, and should usually be set to FF for 588 // opaque colorkeys. (ex. Opaque black == 0xff000000) 589 // pSrcInfo 590 // Pointer to a D3DXIMAGE_INFO structure to be filled in with the 591 // description of the data in the source image file, or NULL. 592 // 593 //---------------------------------------------------------------------------- 594 595 HRESULT WINAPI 596 D3DXLoadVolumeFromFileA( 597 LPDIRECT3DVOLUME8 pDestVolume, 598 CONST PALETTEENTRY* pDestPalette, 599 CONST D3DBOX* pDestBox, 600 LPCSTR pSrcFile, 601 CONST D3DBOX* pSrcBox, 602 DWORD Filter, 603 D3DCOLOR ColorKey, 604 D3DXIMAGE_INFO* pSrcInfo); 605 606 HRESULT WINAPI 607 D3DXLoadVolumeFromFileW( 608 LPDIRECT3DVOLUME8 pDestVolume, 609 CONST PALETTEENTRY* pDestPalette, 610 CONST D3DBOX* pDestBox, 611 LPCWSTR pSrcFile, 612 CONST D3DBOX* pSrcBox, 613 DWORD Filter, 614 D3DCOLOR ColorKey, 615 D3DXIMAGE_INFO* pSrcInfo); 616 617 #ifdef UNICODE 618 #define D3DXLoadVolumeFromFile D3DXLoadVolumeFromFileW 619 #else 620 #define D3DXLoadVolumeFromFile D3DXLoadVolumeFromFileA 621 #endif 622 623 624 HRESULT WINAPI 625 D3DXLoadVolumeFromResourceA( 626 LPDIRECT3DVOLUME8 pDestVolume, 627 CONST PALETTEENTRY* pDestPalette, 628 CONST D3DBOX* pDestBox, 629 HMODULE hSrcModule, 630 LPCSTR pSrcResource, 631 CONST D3DBOX* pSrcBox, 632 DWORD Filter, 633 D3DCOLOR ColorKey, 634 D3DXIMAGE_INFO* pSrcInfo); 635 636 HRESULT WINAPI 637 D3DXLoadVolumeFromResourceW( 638 LPDIRECT3DVOLUME8 pDestVolume, 639 CONST PALETTEENTRY* pDestPalette, 640 CONST D3DBOX* pDestBox, 641 HMODULE hSrcModule, 642 LPCWSTR pSrcResource, 643 CONST D3DBOX* pSrcBox, 644 DWORD Filter, 645 D3DCOLOR ColorKey, 646 D3DXIMAGE_INFO* pSrcInfo); 647 648 #ifdef UNICODE 649 #define D3DXLoadVolumeFromResource D3DXLoadVolumeFromResourceW 650 #else 651 #define D3DXLoadVolumeFromResource D3DXLoadVolumeFromResourceA 652 #endif 653 654 655 656 HRESULT WINAPI 657 D3DXLoadVolumeFromFileInMemory( 658 LPDIRECT3DVOLUME8 pDestVolume, 659 CONST PALETTEENTRY* pDestPalette, 660 CONST D3DBOX* pDestBox, 661 LPCVOID pSrcData, 662 UINT SrcDataSize, 663 CONST D3DBOX* pSrcBox, 664 DWORD Filter, 665 D3DCOLOR ColorKey, 666 D3DXIMAGE_INFO* pSrcInfo); 667 668 669 670 //---------------------------------------------------------------------------- 671 // D3DXLoadVolumeFromVolume: 672 // ------------------------- 673 // Load volume from another volume (with color conversion) 674 // 675 // Parameters: 676 // pDestVolume 677 // Destination volume, which will receive the image. 678 // pDestPalette 679 // Destination palette of 256 colors, or NULL 680 // pDestBox 681 // Destination box, or NULL for entire volume 682 // pSrcVolume 683 // Source volume 684 // pSrcPalette 685 // Source palette of 256 colors, or NULL 686 // pSrcBox 687 // Source box, or NULL for entire volume 688 // Filter 689 // D3DX_FILTER flags controlling how the image is filtered. 690 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 691 // ColorKey 692 // Color to replace with transparent black, or 0 to disable colorkey. 693 // This is always a 32-bit ARGB color, independent of the source image 694 // format. Alpha is significant, and should usually be set to FF for 695 // opaque colorkeys. (ex. Opaque black == 0xff000000) 696 // 697 //---------------------------------------------------------------------------- 698 699 HRESULT WINAPI 700 D3DXLoadVolumeFromVolume( 701 LPDIRECT3DVOLUME8 pDestVolume, 702 CONST PALETTEENTRY* pDestPalette, 703 CONST D3DBOX* pDestBox, 704 LPDIRECT3DVOLUME8 pSrcVolume, 705 CONST PALETTEENTRY* pSrcPalette, 706 CONST D3DBOX* pSrcBox, 707 DWORD Filter, 708 D3DCOLOR ColorKey); 709 710 711 712 //---------------------------------------------------------------------------- 713 // D3DXLoadVolumeFromMemory: 714 // ------------------------- 715 // Load volume from memory. 716 // 717 // Parameters: 718 // pDestVolume 719 // Destination volume, which will receive the image. 720 // pDestPalette 721 // Destination palette of 256 colors, or NULL 722 // pDestBox 723 // Destination box, or NULL for entire volume 724 // pSrcMemory 725 // Pointer to the top-left corner of the source volume in memory 726 // SrcFormat 727 // Pixel format of the source volume. 728 // SrcRowPitch 729 // Pitch of source image, in bytes. For DXT formats, this number 730 // should represent the size of one row of cells, in bytes. 731 // SrcSlicePitch 732 // Pitch of source image, in bytes. For DXT formats, this number 733 // should represent the size of one slice of cells, in bytes. 734 // pSrcPalette 735 // Source palette of 256 colors, or NULL 736 // pSrcBox 737 // Source box. 738 // Filter 739 // D3DX_FILTER flags controlling how the image is filtered. 740 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 741 // ColorKey 742 // Color to replace with transparent black, or 0 to disable colorkey. 743 // This is always a 32-bit ARGB color, independent of the source image 744 // format. Alpha is significant, and should usually be set to FF for 745 // opaque colorkeys. (ex. Opaque black == 0xff000000) 746 // 747 //---------------------------------------------------------------------------- 748 749 HRESULT WINAPI 750 D3DXLoadVolumeFromMemory( 751 LPDIRECT3DVOLUME8 pDestVolume, 752 CONST PALETTEENTRY* pDestPalette, 753 CONST D3DBOX* pDestBox, 754 LPCVOID pSrcMemory, 755 D3DFORMAT SrcFormat, 756 UINT SrcRowPitch, 757 UINT SrcSlicePitch, 758 CONST PALETTEENTRY* pSrcPalette, 759 CONST D3DBOX* pSrcBox, 760 DWORD Filter, 761 D3DCOLOR ColorKey); 762 763 764 765 //---------------------------------------------------------------------------- 766 // D3DXSaveVolumeToFile: 767 // --------------------- 768 // Save a volume to a image file. 769 // 770 // Parameters: 771 // pDestFile 772 // File name of the destination file 773 // DestFormat 774 // D3DXIMAGE_FILEFORMAT specifying file format to use when saving. 775 // pSrcVolume 776 // Source volume, containing the image to be saved 777 // pSrcPalette 778 // Source palette of 256 colors, or NULL 779 // pSrcBox 780 // Source box, or NULL for the entire volume 781 // 782 //---------------------------------------------------------------------------- 783 784 HRESULT WINAPI 785 D3DXSaveVolumeToFileA( 786 LPCSTR pDestFile, 787 D3DXIMAGE_FILEFORMAT DestFormat, 788 LPDIRECT3DVOLUME8 pSrcVolume, 789 CONST PALETTEENTRY* pSrcPalette, 790 CONST D3DBOX* pSrcBox); 791 792 HRESULT WINAPI 793 D3DXSaveVolumeToFileW( 794 LPCWSTR pDestFile, 795 D3DXIMAGE_FILEFORMAT DestFormat, 796 LPDIRECT3DVOLUME8 pSrcVolume, 797 CONST PALETTEENTRY* pSrcPalette, 798 CONST D3DBOX* pSrcBox); 799 800 #ifdef UNICODE 801 #define D3DXSaveVolumeToFile D3DXSaveVolumeToFileW 802 #else 803 #define D3DXSaveVolumeToFile D3DXSaveVolumeToFileA 804 #endif 805 806 807 808 809 ////////////////////////////////////////////////////////////////////////////// 810 // Create/Save Texture APIs ////////////////////////////////////////////////// 811 ////////////////////////////////////////////////////////////////////////////// 812 813 //---------------------------------------------------------------------------- 814 // D3DXCheckTextureRequirements: 815 // ----------------------------- 816 // Checks texture creation parameters. If parameters are invalid, this 817 // function returns corrected parameters. 818 // 819 // Parameters: 820 // 821 // pDevice 822 // The D3D device to be used 823 // pWidth, pHeight, pDepth, pSize 824 // Desired size in pixels, or NULL. Returns corrected size. 825 // pNumMipLevels 826 // Number of desired mipmap levels, or NULL. Returns corrected number. 827 // Usage 828 // Texture usage flags 829 // pFormat 830 // Desired pixel format, or NULL. Returns corrected format. 831 // Pool 832 // Memory pool to be used to create texture 833 // 834 //---------------------------------------------------------------------------- 835 836 HRESULT WINAPI 837 D3DXCheckTextureRequirements( 838 LPDIRECT3DDEVICE8 pDevice, 839 UINT* pWidth, 840 UINT* pHeight, 841 UINT* pNumMipLevels, 842 DWORD Usage, 843 D3DFORMAT* pFormat, 844 D3DPOOL Pool); 845 846 HRESULT WINAPI 847 D3DXCheckCubeTextureRequirements( 848 LPDIRECT3DDEVICE8 pDevice, 849 UINT* pSize, 850 UINT* pNumMipLevels, 851 DWORD Usage, 852 D3DFORMAT* pFormat, 853 D3DPOOL Pool); 854 855 HRESULT WINAPI 856 D3DXCheckVolumeTextureRequirements( 857 LPDIRECT3DDEVICE8 pDevice, 858 UINT* pWidth, 859 UINT* pHeight, 860 UINT* pDepth, 861 UINT* pNumMipLevels, 862 DWORD Usage, 863 D3DFORMAT* pFormat, 864 D3DPOOL Pool); 865 866 867 //---------------------------------------------------------------------------- 868 // D3DXCreateTexture: 869 // ------------------ 870 // Create an empty texture 871 // 872 // Parameters: 873 // 874 // pDevice 875 // The D3D device with which the texture is going to be used. 876 // Width, Height, Depth, Size 877 // size in pixels; these must be non-zero 878 // MipLevels 879 // number of mip levels desired; if zero or D3DX_DEFAULT, a complete 880 // mipmap chain will be created. 881 // Usage 882 // Texture usage flags 883 // Format 884 // Pixel format. 885 // Pool 886 // Memory pool to be used to create texture 887 // ppTexture, ppCubeTexture, ppVolumeTexture 888 // The texture object that will be created 889 // 890 //---------------------------------------------------------------------------- 891 892 HRESULT WINAPI 893 D3DXCreateTexture( 894 LPDIRECT3DDEVICE8 pDevice, 895 UINT Width, 896 UINT Height, 897 UINT MipLevels, 898 DWORD Usage, 899 D3DFORMAT Format, 900 D3DPOOL Pool, 901 LPDIRECT3DTEXTURE8* ppTexture); 902 903 HRESULT WINAPI 904 D3DXCreateCubeTexture( 905 LPDIRECT3DDEVICE8 pDevice, 906 UINT Size, 907 UINT MipLevels, 908 DWORD Usage, 909 D3DFORMAT Format, 910 D3DPOOL Pool, 911 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 912 913 HRESULT WINAPI 914 D3DXCreateVolumeTexture( 915 LPDIRECT3DDEVICE8 pDevice, 916 UINT Width, 917 UINT Height, 918 UINT Depth, 919 UINT MipLevels, 920 DWORD Usage, 921 D3DFORMAT Format, 922 D3DPOOL Pool, 923 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 924 925 926 927 //---------------------------------------------------------------------------- 928 // D3DXCreateTextureFromFile/Resource: 929 // ----------------------------------- 930 // Create a texture object from a file or resource. 931 // 932 // Parameters: 933 // 934 // pDevice 935 // The D3D device with which the texture is going to be used. 936 // pSrcFile 937 // File name. 938 // hSrcModule 939 // Module handle. if NULL, current module will be used. 940 // pSrcResource 941 // Resource name in module 942 // pvSrcData 943 // Pointer to file in memory. 944 // SrcDataSize 945 // Size in bytes of file in memory. 946 // Width, Height, Depth, Size 947 // Size in pixels; if zero or D3DX_DEFAULT, the size will be taken 948 // from the file. 949 // MipLevels 950 // Number of mip levels; if zero or D3DX_DEFAULT, a complete mipmap 951 // chain will be created. 952 // Usage 953 // Texture usage flags 954 // Format 955 // Desired pixel format. If D3DFMT_UNKNOWN, the format will be 956 // taken from the file. 957 // Pool 958 // Memory pool to be used to create texture 959 // Filter 960 // D3DX_FILTER flags controlling how the image is filtered. 961 // Or D3DX_DEFAULT for D3DX_FILTER_TRIANGLE. 962 // MipFilter 963 // D3DX_FILTER flags controlling how each miplevel is filtered. 964 // Or D3DX_DEFAULT for D3DX_FILTER_BOX, 965 // ColorKey 966 // Color to replace with transparent black, or 0 to disable colorkey. 967 // This is always a 32-bit ARGB color, independent of the source image 968 // format. Alpha is significant, and should usually be set to FF for 969 // opaque colorkeys. (ex. Opaque black == 0xff000000) 970 // pSrcInfo 971 // Pointer to a D3DXIMAGE_INFO structure to be filled in with the 972 // description of the data in the source image file, or NULL. 973 // pPalette 974 // 256 color palette to be filled in, or NULL 975 // ppTexture, ppCubeTexture, ppVolumeTexture 976 // The texture object that will be created 977 // 978 //---------------------------------------------------------------------------- 979 980 981 // FromFile 982 983 HRESULT WINAPI 984 D3DXCreateTextureFromFileA( 985 LPDIRECT3DDEVICE8 pDevice, 986 LPCSTR pSrcFile, 987 LPDIRECT3DTEXTURE8* ppTexture); 988 989 HRESULT WINAPI 990 D3DXCreateTextureFromFileW( 991 LPDIRECT3DDEVICE8 pDevice, 992 LPCWSTR pSrcFile, 993 LPDIRECT3DTEXTURE8* ppTexture); 994 995 #ifdef UNICODE 996 #define D3DXCreateTextureFromFile D3DXCreateTextureFromFileW 997 #else 998 #define D3DXCreateTextureFromFile D3DXCreateTextureFromFileA 999 #endif 1000 1001 1002 HRESULT WINAPI 1003 D3DXCreateCubeTextureFromFileA( 1004 LPDIRECT3DDEVICE8 pDevice, 1005 LPCSTR pSrcFile, 1006 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1007 1008 HRESULT WINAPI 1009 D3DXCreateCubeTextureFromFileW( 1010 LPDIRECT3DDEVICE8 pDevice, 1011 LPCWSTR pSrcFile, 1012 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1013 1014 #ifdef UNICODE 1015 #define D3DXCreateCubeTextureFromFile D3DXCreateCubeTextureFromFileW 1016 #else 1017 #define D3DXCreateCubeTextureFromFile D3DXCreateCubeTextureFromFileA 1018 #endif 1019 1020 1021 HRESULT WINAPI 1022 D3DXCreateVolumeTextureFromFileA( 1023 LPDIRECT3DDEVICE8 pDevice, 1024 LPCSTR pSrcFile, 1025 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1026 1027 HRESULT WINAPI 1028 D3DXCreateVolumeTextureFromFileW( 1029 LPDIRECT3DDEVICE8 pDevice, 1030 LPCWSTR pSrcFile, 1031 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1032 1033 #ifdef UNICODE 1034 #define D3DXCreateVolumeTextureFromFile D3DXCreateVolumeTextureFromFileW 1035 #else 1036 #define D3DXCreateVolumeTextureFromFile D3DXCreateVolumeTextureFromFileA 1037 #endif 1038 1039 1040 // FromResource 1041 1042 HRESULT WINAPI 1043 D3DXCreateTextureFromResourceA( 1044 LPDIRECT3DDEVICE8 pDevice, 1045 HMODULE hSrcModule, 1046 LPCSTR pSrcResource, 1047 LPDIRECT3DTEXTURE8* ppTexture); 1048 1049 HRESULT WINAPI 1050 D3DXCreateTextureFromResourceW( 1051 LPDIRECT3DDEVICE8 pDevice, 1052 HMODULE hSrcModule, 1053 LPCWSTR pSrcResource, 1054 LPDIRECT3DTEXTURE8* ppTexture); 1055 1056 #ifdef UNICODE 1057 #define D3DXCreateTextureFromResource D3DXCreateTextureFromResourceW 1058 #else 1059 #define D3DXCreateTextureFromResource D3DXCreateTextureFromResourceA 1060 #endif 1061 1062 1063 HRESULT WINAPI 1064 D3DXCreateCubeTextureFromResourceA( 1065 LPDIRECT3DDEVICE8 pDevice, 1066 HMODULE hSrcModule, 1067 LPCSTR pSrcResource, 1068 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1069 1070 HRESULT WINAPI 1071 D3DXCreateCubeTextureFromResourceW( 1072 LPDIRECT3DDEVICE8 pDevice, 1073 HMODULE hSrcModule, 1074 LPCWSTR pSrcResource, 1075 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1076 1077 #ifdef UNICODE 1078 #define D3DXCreateCubeTextureFromResource D3DXCreateCubeTextureFromResourceW 1079 #else 1080 #define D3DXCreateCubeTextureFromResource D3DXCreateCubeTextureFromResourceA 1081 #endif 1082 1083 1084 HRESULT WINAPI 1085 D3DXCreateVolumeTextureFromResourceA( 1086 LPDIRECT3DDEVICE8 pDevice, 1087 HMODULE hSrcModule, 1088 LPCSTR pSrcResource, 1089 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1090 1091 HRESULT WINAPI 1092 D3DXCreateVolumeTextureFromResourceW( 1093 LPDIRECT3DDEVICE8 pDevice, 1094 HMODULE hSrcModule, 1095 LPCWSTR pSrcResource, 1096 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1097 1098 #ifdef UNICODE 1099 #define D3DXCreateVolumeTextureFromResource D3DXCreateVolumeTextureFromResourceW 1100 #else 1101 #define D3DXCreateVolumeTextureFromResource D3DXCreateVolumeTextureFromResourceA 1102 #endif 1103 1104 1105 // FromFileEx 1106 1107 HRESULT WINAPI 1108 D3DXCreateTextureFromFileExA( 1109 LPDIRECT3DDEVICE8 pDevice, 1110 LPCSTR pSrcFile, 1111 UINT Width, 1112 UINT Height, 1113 UINT MipLevels, 1114 DWORD Usage, 1115 D3DFORMAT Format, 1116 D3DPOOL Pool, 1117 DWORD Filter, 1118 DWORD MipFilter, 1119 D3DCOLOR ColorKey, 1120 D3DXIMAGE_INFO* pSrcInfo, 1121 PALETTEENTRY* pPalette, 1122 LPDIRECT3DTEXTURE8* ppTexture); 1123 1124 HRESULT WINAPI 1125 D3DXCreateTextureFromFileExW( 1126 LPDIRECT3DDEVICE8 pDevice, 1127 LPCWSTR pSrcFile, 1128 UINT Width, 1129 UINT Height, 1130 UINT MipLevels, 1131 DWORD Usage, 1132 D3DFORMAT Format, 1133 D3DPOOL Pool, 1134 DWORD Filter, 1135 DWORD MipFilter, 1136 D3DCOLOR ColorKey, 1137 D3DXIMAGE_INFO* pSrcInfo, 1138 PALETTEENTRY* pPalette, 1139 LPDIRECT3DTEXTURE8* ppTexture); 1140 1141 #ifdef UNICODE 1142 #define D3DXCreateTextureFromFileEx D3DXCreateTextureFromFileExW 1143 #else 1144 #define D3DXCreateTextureFromFileEx D3DXCreateTextureFromFileExA 1145 #endif 1146 1147 1148 HRESULT WINAPI 1149 D3DXCreateCubeTextureFromFileExA( 1150 LPDIRECT3DDEVICE8 pDevice, 1151 LPCSTR pSrcFile, 1152 UINT Size, 1153 UINT MipLevels, 1154 DWORD Usage, 1155 D3DFORMAT Format, 1156 D3DPOOL Pool, 1157 DWORD Filter, 1158 DWORD MipFilter, 1159 D3DCOLOR ColorKey, 1160 D3DXIMAGE_INFO* pSrcInfo, 1161 PALETTEENTRY* pPalette, 1162 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1163 1164 HRESULT WINAPI 1165 D3DXCreateCubeTextureFromFileExW( 1166 LPDIRECT3DDEVICE8 pDevice, 1167 LPCWSTR pSrcFile, 1168 UINT Size, 1169 UINT MipLevels, 1170 DWORD Usage, 1171 D3DFORMAT Format, 1172 D3DPOOL Pool, 1173 DWORD Filter, 1174 DWORD MipFilter, 1175 D3DCOLOR ColorKey, 1176 D3DXIMAGE_INFO* pSrcInfo, 1177 PALETTEENTRY* pPalette, 1178 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1179 1180 #ifdef UNICODE 1181 #define D3DXCreateCubeTextureFromFileEx D3DXCreateCubeTextureFromFileExW 1182 #else 1183 #define D3DXCreateCubeTextureFromFileEx D3DXCreateCubeTextureFromFileExA 1184 #endif 1185 1186 1187 HRESULT WINAPI 1188 D3DXCreateVolumeTextureFromFileExA( 1189 LPDIRECT3DDEVICE8 pDevice, 1190 LPCSTR pSrcFile, 1191 UINT Width, 1192 UINT Height, 1193 UINT Depth, 1194 UINT MipLevels, 1195 DWORD Usage, 1196 D3DFORMAT Format, 1197 D3DPOOL Pool, 1198 DWORD Filter, 1199 DWORD MipFilter, 1200 D3DCOLOR ColorKey, 1201 D3DXIMAGE_INFO* pSrcInfo, 1202 PALETTEENTRY* pPalette, 1203 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1204 1205 HRESULT WINAPI 1206 D3DXCreateVolumeTextureFromFileExW( 1207 LPDIRECT3DDEVICE8 pDevice, 1208 LPCWSTR pSrcFile, 1209 UINT Width, 1210 UINT Height, 1211 UINT Depth, 1212 UINT MipLevels, 1213 DWORD Usage, 1214 D3DFORMAT Format, 1215 D3DPOOL Pool, 1216 DWORD Filter, 1217 DWORD MipFilter, 1218 D3DCOLOR ColorKey, 1219 D3DXIMAGE_INFO* pSrcInfo, 1220 PALETTEENTRY* pPalette, 1221 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1222 1223 #ifdef UNICODE 1224 #define D3DXCreateVolumeTextureFromFileEx D3DXCreateVolumeTextureFromFileExW 1225 #else 1226 #define D3DXCreateVolumeTextureFromFileEx D3DXCreateVolumeTextureFromFileExA 1227 #endif 1228 1229 1230 // FromResourceEx 1231 1232 HRESULT WINAPI 1233 D3DXCreateTextureFromResourceExA( 1234 LPDIRECT3DDEVICE8 pDevice, 1235 HMODULE hSrcModule, 1236 LPCSTR pSrcResource, 1237 UINT Width, 1238 UINT Height, 1239 UINT MipLevels, 1240 DWORD Usage, 1241 D3DFORMAT Format, 1242 D3DPOOL Pool, 1243 DWORD Filter, 1244 DWORD MipFilter, 1245 D3DCOLOR ColorKey, 1246 D3DXIMAGE_INFO* pSrcInfo, 1247 PALETTEENTRY* pPalette, 1248 LPDIRECT3DTEXTURE8* ppTexture); 1249 1250 HRESULT WINAPI 1251 D3DXCreateTextureFromResourceExW( 1252 LPDIRECT3DDEVICE8 pDevice, 1253 HMODULE hSrcModule, 1254 LPCWSTR pSrcResource, 1255 UINT Width, 1256 UINT Height, 1257 UINT MipLevels, 1258 DWORD Usage, 1259 D3DFORMAT Format, 1260 D3DPOOL Pool, 1261 DWORD Filter, 1262 DWORD MipFilter, 1263 D3DCOLOR ColorKey, 1264 D3DXIMAGE_INFO* pSrcInfo, 1265 PALETTEENTRY* pPalette, 1266 LPDIRECT3DTEXTURE8* ppTexture); 1267 1268 #ifdef UNICODE 1269 #define D3DXCreateTextureFromResourceEx D3DXCreateTextureFromResourceExW 1270 #else 1271 #define D3DXCreateTextureFromResourceEx D3DXCreateTextureFromResourceExA 1272 #endif 1273 1274 1275 HRESULT WINAPI 1276 D3DXCreateCubeTextureFromResourceExA( 1277 LPDIRECT3DDEVICE8 pDevice, 1278 HMODULE hSrcModule, 1279 LPCSTR pSrcResource, 1280 UINT Size, 1281 UINT MipLevels, 1282 DWORD Usage, 1283 D3DFORMAT Format, 1284 D3DPOOL Pool, 1285 DWORD Filter, 1286 DWORD MipFilter, 1287 D3DCOLOR ColorKey, 1288 D3DXIMAGE_INFO* pSrcInfo, 1289 PALETTEENTRY* pPalette, 1290 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1291 1292 HRESULT WINAPI 1293 D3DXCreateCubeTextureFromResourceExW( 1294 LPDIRECT3DDEVICE8 pDevice, 1295 HMODULE hSrcModule, 1296 LPCWSTR pSrcResource, 1297 UINT Size, 1298 UINT MipLevels, 1299 DWORD Usage, 1300 D3DFORMAT Format, 1301 D3DPOOL Pool, 1302 DWORD Filter, 1303 DWORD MipFilter, 1304 D3DCOLOR ColorKey, 1305 D3DXIMAGE_INFO* pSrcInfo, 1306 PALETTEENTRY* pPalette, 1307 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1308 1309 #ifdef UNICODE 1310 #define D3DXCreateCubeTextureFromResourceEx D3DXCreateCubeTextureFromResourceExW 1311 #else 1312 #define D3DXCreateCubeTextureFromResourceEx D3DXCreateCubeTextureFromResourceExA 1313 #endif 1314 1315 1316 HRESULT WINAPI 1317 D3DXCreateVolumeTextureFromResourceExA( 1318 LPDIRECT3DDEVICE8 pDevice, 1319 HMODULE hSrcModule, 1320 LPCSTR pSrcResource, 1321 UINT Width, 1322 UINT Height, 1323 UINT Depth, 1324 UINT MipLevels, 1325 DWORD Usage, 1326 D3DFORMAT Format, 1327 D3DPOOL Pool, 1328 DWORD Filter, 1329 DWORD MipFilter, 1330 D3DCOLOR ColorKey, 1331 D3DXIMAGE_INFO* pSrcInfo, 1332 PALETTEENTRY* pPalette, 1333 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1334 1335 HRESULT WINAPI 1336 D3DXCreateVolumeTextureFromResourceExW( 1337 LPDIRECT3DDEVICE8 pDevice, 1338 HMODULE hSrcModule, 1339 LPCWSTR pSrcResource, 1340 UINT Width, 1341 UINT Height, 1342 UINT Depth, 1343 UINT MipLevels, 1344 DWORD Usage, 1345 D3DFORMAT Format, 1346 D3DPOOL Pool, 1347 DWORD Filter, 1348 DWORD MipFilter, 1349 D3DCOLOR ColorKey, 1350 D3DXIMAGE_INFO* pSrcInfo, 1351 PALETTEENTRY* pPalette, 1352 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1353 1354 #ifdef UNICODE 1355 #define D3DXCreateVolumeTextureFromResourceEx D3DXCreateVolumeTextureFromResourceExW 1356 #else 1357 #define D3DXCreateVolumeTextureFromResourceEx D3DXCreateVolumeTextureFromResourceExA 1358 #endif 1359 1360 1361 // FromFileInMemory 1362 1363 HRESULT WINAPI 1364 D3DXCreateTextureFromFileInMemory( 1365 LPDIRECT3DDEVICE8 pDevice, 1366 LPCVOID pSrcData, 1367 UINT SrcDataSize, 1368 LPDIRECT3DTEXTURE8* ppTexture); 1369 1370 HRESULT WINAPI 1371 D3DXCreateCubeTextureFromFileInMemory( 1372 LPDIRECT3DDEVICE8 pDevice, 1373 LPCVOID pSrcData, 1374 UINT SrcDataSize, 1375 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1376 1377 HRESULT WINAPI 1378 D3DXCreateVolumeTextureFromFileInMemory( 1379 LPDIRECT3DDEVICE8 pDevice, 1380 LPCVOID pSrcData, 1381 UINT SrcDataSize, 1382 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1383 1384 1385 // FromFileInMemoryEx 1386 1387 HRESULT WINAPI 1388 D3DXCreateTextureFromFileInMemoryEx( 1389 LPDIRECT3DDEVICE8 pDevice, 1390 LPCVOID pSrcData, 1391 UINT SrcDataSize, 1392 UINT Width, 1393 UINT Height, 1394 UINT MipLevels, 1395 DWORD Usage, 1396 D3DFORMAT Format, 1397 D3DPOOL Pool, 1398 DWORD Filter, 1399 DWORD MipFilter, 1400 D3DCOLOR ColorKey, 1401 D3DXIMAGE_INFO* pSrcInfo, 1402 PALETTEENTRY* pPalette, 1403 LPDIRECT3DTEXTURE8* ppTexture); 1404 1405 HRESULT WINAPI 1406 D3DXCreateCubeTextureFromFileInMemoryEx( 1407 LPDIRECT3DDEVICE8 pDevice, 1408 LPCVOID pSrcData, 1409 UINT SrcDataSize, 1410 UINT Size, 1411 UINT MipLevels, 1412 DWORD Usage, 1413 D3DFORMAT Format, 1414 D3DPOOL Pool, 1415 DWORD Filter, 1416 DWORD MipFilter, 1417 D3DCOLOR ColorKey, 1418 D3DXIMAGE_INFO* pSrcInfo, 1419 PALETTEENTRY* pPalette, 1420 LPDIRECT3DCUBETEXTURE8* ppCubeTexture); 1421 1422 HRESULT WINAPI 1423 D3DXCreateVolumeTextureFromFileInMemoryEx( 1424 LPDIRECT3DDEVICE8 pDevice, 1425 LPCVOID pSrcData, 1426 UINT SrcDataSize, 1427 UINT Width, 1428 UINT Height, 1429 UINT Depth, 1430 UINT MipLevels, 1431 DWORD Usage, 1432 D3DFORMAT Format, 1433 D3DPOOL Pool, 1434 DWORD Filter, 1435 DWORD MipFilter, 1436 D3DCOLOR ColorKey, 1437 D3DXIMAGE_INFO* pSrcInfo, 1438 PALETTEENTRY* pPalette, 1439 LPDIRECT3DVOLUMETEXTURE8* ppVolumeTexture); 1440 1441 1442 1443 //---------------------------------------------------------------------------- 1444 // D3DXSaveTextureToFile: 1445 // ---------------------- 1446 // Save a texture to a file. 1447 // 1448 // Parameters: 1449 // pDestFile 1450 // File name of the destination file 1451 // DestFormat 1452 // D3DXIMAGE_FILEFORMAT specifying file format to use when saving. 1453 // pSrcTexture 1454 // Source texture, containing the image to be saved 1455 // pSrcPalette 1456 // Source palette of 256 colors, or NULL 1457 // 1458 //---------------------------------------------------------------------------- 1459 1460 1461 HRESULT WINAPI 1462 D3DXSaveTextureToFileA( 1463 LPCSTR pDestFile, 1464 D3DXIMAGE_FILEFORMAT DestFormat, 1465 LPDIRECT3DBASETEXTURE8 pSrcTexture, 1466 CONST PALETTEENTRY* pSrcPalette); 1467 1468 HRESULT WINAPI 1469 D3DXSaveTextureToFileW( 1470 LPCWSTR pDestFile, 1471 D3DXIMAGE_FILEFORMAT DestFormat, 1472 LPDIRECT3DBASETEXTURE8 pSrcTexture, 1473 CONST PALETTEENTRY* pSrcPalette); 1474 1475 #ifdef UNICODE 1476 #define D3DXSaveTextureToFile D3DXSaveTextureToFileW 1477 #else 1478 #define D3DXSaveTextureToFile D3DXSaveTextureToFileA 1479 #endif 1480 1481 1482 1483 1484 ////////////////////////////////////////////////////////////////////////////// 1485 // Misc Texture APIs ///////////////////////////////////////////////////////// 1486 ////////////////////////////////////////////////////////////////////////////// 1487 1488 //---------------------------------------------------------------------------- 1489 // D3DXFilterTexture: 1490 // ------------------ 1491 // Filters mipmaps levels of a texture. 1492 // 1493 // Parameters: 1494 // pBaseTexture 1495 // The texture object to be filtered 1496 // pPalette 1497 // 256 color palette to be used, or NULL for non-palettized formats 1498 // SrcLevel 1499 // The level whose image is used to generate the subsequent levels. 1500 // Filter 1501 // D3DX_FILTER flags controlling how each miplevel is filtered. 1502 // Or D3DX_DEFAULT for D3DX_FILTER_BOX, 1503 // 1504 //---------------------------------------------------------------------------- 1505 1506 HRESULT WINAPI 1507 D3DXFilterTexture( 1508 LPDIRECT3DBASETEXTURE8 pBaseTexture, 1509 CONST PALETTEENTRY* pPalette, 1510 UINT SrcLevel, 1511 DWORD Filter); 1512 1513 #define D3DXFilterCubeTexture D3DXFilterTexture 1514 #define D3DXFilterVolumeTexture D3DXFilterTexture 1515 1516 1517 1518 //---------------------------------------------------------------------------- 1519 // D3DXFillTexture: 1520 // ---------------- 1521 // Uses a user provided function to fill each texel of each mip level of a 1522 // given texture. 1523 // 1524 // Paramters: 1525 // pTexture, pCubeTexture, pVolumeTexture 1526 // Pointer to the texture to be filled. 1527 // pFunction 1528 // Pointer to user provided evalutor function which will be used to 1529 // compute the value of each texel. 1530 // pData 1531 // Pointer to an arbitrary block of user defined data. This pointer 1532 // will be passed to the function provided in pFunction 1533 //----------------------------------------------------------------------------- 1534 1535 HRESULT WINAPI 1536 D3DXFillTexture( 1537 LPDIRECT3DTEXTURE8 pTexture, 1538 LPD3DXFILL2D pFunction, 1539 LPVOID pData); 1540 1541 HRESULT WINAPI 1542 D3DXFillCubeTexture( 1543 LPDIRECT3DCUBETEXTURE8 pCubeTexture, 1544 LPD3DXFILL3D pFunction, 1545 LPVOID pData); 1546 1547 HRESULT WINAPI 1548 D3DXFillVolumeTexture( 1549 LPDIRECT3DVOLUMETEXTURE8 pVolumeTexture, 1550 LPD3DXFILL3D pFunction, 1551 LPVOID pData); 1552 1553 1554 1555 //---------------------------------------------------------------------------- 1556 // D3DXComputeNormalMap: 1557 // --------------------- 1558 // Converts a height map into a normal map. The (x,y,z) components of each 1559 // normal are mapped to the (r,g,b) channels of the output texture. 1560 // 1561 // Parameters 1562 // pTexture 1563 // Pointer to the destination texture 1564 // pSrcTexture 1565 // Pointer to the source heightmap texture 1566 // pSrcPalette 1567 // Source palette of 256 colors, or NULL 1568 // Flags 1569 // D3DX_NORMALMAP flags 1570 // Channel 1571 // D3DX_CHANNEL specifying source of height information 1572 // Amplitude 1573 // The constant value which the height information is multiplied by. 1574 //--------------------------------------------------------------------------- 1575 1576 HRESULT WINAPI 1577 D3DXComputeNormalMap( 1578 LPDIRECT3DTEXTURE8 pTexture, 1579 LPDIRECT3DTEXTURE8 pSrcTexture, 1580 CONST PALETTEENTRY* pSrcPalette, 1581 DWORD Flags, 1582 DWORD Channel, 1583 FLOAT Amplitude); 1584 1585 1586 1587 1588 #ifdef __cplusplus 1589 } 1590 #endif //__cplusplus 1591 1592 #endif //__D3DX8TEX_H__ 1593