1bd877ea2SRudolf Cornelissen /* 2bd877ea2SRudolf Cornelissen definitions for used nVidia acceleration engine commands. 3bd877ea2SRudolf Cornelissen 4b1e0087bSRudolf Cornelissen Written by Rudolf Cornelissen 12/2004-1/2005 5bd877ea2SRudolf Cornelissen */ 6bd877ea2SRudolf Cornelissen 7bd877ea2SRudolf Cornelissen #ifndef NV_ACC_H 8bd877ea2SRudolf Cornelissen #define NV_ACC_H 9bd877ea2SRudolf Cornelissen 10bd877ea2SRudolf Cornelissen typedef struct { 11f0cb8f72SRudolf Cornelissen uint32 reserved00[0x0004]; 12e549fa89SRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 13e549fa89SRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 14b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 15b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 16b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 17b1e0087bSRudolf Cornelissen uint32 reserved02[0x00ae]; 189daf2efeSRudolf Cornelissen uint32 SetRop5; /* b0-7 is ROP5 */ 19bd877ea2SRudolf Cornelissen } cmd_nv_rop5_solid; 20bd877ea2SRudolf Cornelissen 21bd877ea2SRudolf Cornelissen typedef struct { 229daf2efeSRudolf Cornelissen uint32 reserved00[0x0004]; 239daf2efeSRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 249daf2efeSRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 25b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 26b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 27b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 28b1e0087bSRudolf Cornelissen uint32 reserved02[0x00ae]; 299daf2efeSRudolf Cornelissen uint32 TopLeft; /* b0-15 is left, b16-31 is top */ 309daf2efeSRudolf Cornelissen uint32 HeightWidth; /* b0-15 is width, b16-31 is height */ 31bd877ea2SRudolf Cornelissen } cmd_nv_image_black_rectangle; 32bd877ea2SRudolf Cornelissen 33bd877ea2SRudolf Cornelissen typedef struct { 349daf2efeSRudolf Cornelissen uint32 reserved00[0x0004]; 359daf2efeSRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 369daf2efeSRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 37b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 38b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 39b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 40b1e0087bSRudolf Cornelissen uint32 reserved02[0x00b0]; 419daf2efeSRudolf Cornelissen uint32 SetShape; /* b0-1: %00 = 8X_8Y; %01 = 64X_1Y; %10 = 1X_64Y */ 42b1e0087bSRudolf Cornelissen uint32 reserved03[0x0001]; 439daf2efeSRudolf Cornelissen uint32 SetColor0; /* b0-31 is color */ 449daf2efeSRudolf Cornelissen uint32 SetColor1; /* b0-31 is color */ 459daf2efeSRudolf Cornelissen uint32 SetPattern[0x0002]; /* b0-31 is bitmap */ 46bd877ea2SRudolf Cornelissen } cmd_nv_image_pattern; 47bd877ea2SRudolf Cornelissen 48bd877ea2SRudolf Cornelissen typedef struct { 499daf2efeSRudolf Cornelissen uint32 reserved00[0x0004]; 509daf2efeSRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 519daf2efeSRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 52b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 53b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 54b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 55b1e0087bSRudolf Cornelissen uint32 reserved02[0x00ae]; 569daf2efeSRudolf Cornelissen uint32 SourceOrg; /* b0-15 is X, b16-31 is Y */ 579daf2efeSRudolf Cornelissen uint32 DestOrg; /* b0-15 is X, b16-31 is Y */ 589daf2efeSRudolf Cornelissen uint32 HeightWidth; /* b0-15 is width, b16-31 is height */ 59bd877ea2SRudolf Cornelissen } cmd_nv_image_blit; 60bd877ea2SRudolf Cornelissen 61bd877ea2SRudolf Cornelissen typedef struct { 6207e14ea9SRudolf Cornelissen uint32 reserved00[0x0004]; 6307e14ea9SRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 6407e14ea9SRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 65b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 66b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 67b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 68b1e0087bSRudolf Cornelissen uint32 reserved02[0x00ed]; 6907e14ea9SRudolf Cornelissen uint32 Color1A; /* b0-31 is color */ 705c2199fcSRudolf Cornelissen struct { 7107e14ea9SRudolf Cornelissen uint32 LeftTop; /* b0-15 is top, b16-31 is left */ 7207e14ea9SRudolf Cornelissen uint32 WidthHeight; /* b0-15 is height, b16-31 is width */ 7307e14ea9SRudolf Cornelissen } UnclippedRectangle[0x40]; /* command can handle upto 64 unclipped rects */ 740e0eb256SRudolf Cornelissen /* fixme: XFree also defines the registers below: 750e0eb256SRudolf Cornelissen * (used for the 2D 'ScanlineCPUToScreenColorExpandFill' and 'ColorExpandScanline' 760e0eb256SRudolf Cornelissen * functions.) 770e0eb256SRudolf Cornelissen * We don't use this currently. */ 7807e14ea9SRudolf Cornelissen /* 7907e14ea9SRudolf Cornelissen U032 reserved04[(0x080)-3]; 8007e14ea9SRudolf Cornelissen struct 8107e14ea9SRudolf Cornelissen { 8207e14ea9SRudolf Cornelissen U032 TopLeft; 8307e14ea9SRudolf Cornelissen U032 BottomRight; 8407e14ea9SRudolf Cornelissen } ClipB; 8507e14ea9SRudolf Cornelissen U032 Color1B; 8607e14ea9SRudolf Cornelissen struct 8707e14ea9SRudolf Cornelissen { 8807e14ea9SRudolf Cornelissen U032 TopLeft; 8907e14ea9SRudolf Cornelissen U032 BottomRight; 9007e14ea9SRudolf Cornelissen } ClippedRectangle[64]; 9107e14ea9SRudolf Cornelissen U032 reserved05[(0x080)-5]; 9207e14ea9SRudolf Cornelissen struct 9307e14ea9SRudolf Cornelissen { 9407e14ea9SRudolf Cornelissen U032 TopLeft; 9507e14ea9SRudolf Cornelissen U032 BottomRight; 9607e14ea9SRudolf Cornelissen } ClipC; 9707e14ea9SRudolf Cornelissen U032 Color1C; 9807e14ea9SRudolf Cornelissen U032 WidthHeightC; 9907e14ea9SRudolf Cornelissen U032 PointC; 10007e14ea9SRudolf Cornelissen U032 MonochromeData1C; 10107e14ea9SRudolf Cornelissen U032 reserved06[(0x080)+121]; 10207e14ea9SRudolf Cornelissen struct 10307e14ea9SRudolf Cornelissen { 10407e14ea9SRudolf Cornelissen U032 TopLeft; 10507e14ea9SRudolf Cornelissen U032 BottomRight; 10607e14ea9SRudolf Cornelissen } ClipD; 10707e14ea9SRudolf Cornelissen U032 Color1D; 10807e14ea9SRudolf Cornelissen U032 WidthHeightInD; 10907e14ea9SRudolf Cornelissen U032 WidthHeightOutD; 11007e14ea9SRudolf Cornelissen U032 PointD; 11107e14ea9SRudolf Cornelissen U032 MonochromeData1D; 11207e14ea9SRudolf Cornelissen U032 reserved07[(0x080)+120]; 11307e14ea9SRudolf Cornelissen struct 11407e14ea9SRudolf Cornelissen { 11507e14ea9SRudolf Cornelissen U032 TopLeft; 11607e14ea9SRudolf Cornelissen U032 BottomRight; 11707e14ea9SRudolf Cornelissen } ClipE; 11807e14ea9SRudolf Cornelissen U032 Color0E; 11907e14ea9SRudolf Cornelissen U032 Color1E; 12007e14ea9SRudolf Cornelissen U032 WidthHeightInE; 12107e14ea9SRudolf Cornelissen U032 WidthHeightOutE; 12207e14ea9SRudolf Cornelissen U032 PointE; 12307e14ea9SRudolf Cornelissen U032 MonochromeData01E; 12407e14ea9SRudolf Cornelissen */ 125bd877ea2SRudolf Cornelissen } cmd_nv3_gdi_rectangle_text; 126bd877ea2SRudolf Cornelissen 1270e0eb256SRudolf Cornelissen /* This command could (at least) potentially speed-up our fill_span command... :-) */ 1280e0eb256SRudolf Cornelissen //fixme: test this 2D command! 1290e0eb256SRudolf Cornelissen typedef struct { 1300e0eb256SRudolf Cornelissen uint32 reserved00[0x0004]; 1310e0eb256SRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 1320e0eb256SRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 133b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 134b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 135b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 136b1e0087bSRudolf Cornelissen uint32 reserved02[0x00af]; 1370e0eb256SRudolf Cornelissen uint32 Color; /* b0-31 is color */ 138b1e0087bSRudolf Cornelissen uint32 reserved03[0x003e]; 1390e0eb256SRudolf Cornelissen struct { 1400e0eb256SRudolf Cornelissen uint32 Point0; /* b0-15 is X, b16-31 is Y: starting coordinate */ 1410e0eb256SRudolf Cornelissen uint32 Point1; /* b0-15 is X, b16-31 is Y: ending coordinate */ 1420e0eb256SRudolf Cornelissen } Line[0x10]; /* command can handle upto 16 lines */ 1430e0eb256SRudolf Cornelissen struct { 1440e0eb256SRudolf Cornelissen uint32 Point0X; /* b0-31 is X: starting coordinate */ 1450e0eb256SRudolf Cornelissen uint32 Point0Y; /* b0-31 is Y: starting coordinate */ 1460e0eb256SRudolf Cornelissen uint32 Point1X; /* b0-31 is X: ending coordinate */ 1470e0eb256SRudolf Cornelissen uint32 Point1Y; /* b0-31 is Y: ending coordinate */ 1480e0eb256SRudolf Cornelissen } Line32[0x08]; /* cmd can handle upto 8 lines with 32-bit coordinates */ 1490e0eb256SRudolf Cornelissen struct { 1500e0eb256SRudolf Cornelissen uint32 Point; /* b0-15 is X, b16-31 is Y */ 1515f8c3a7fSRudolf Cornelissen } Polyline[0x20]; /* cmd can handle upto 32 points polylines */ 1520e0eb256SRudolf Cornelissen struct { 1530e0eb256SRudolf Cornelissen uint32 PointX; /* b0-31 is X */ 1540e0eb256SRudolf Cornelissen uint32 PointY; /* b0-31 is Y */ 1555f8c3a7fSRudolf Cornelissen } Polyline32[0x10]; /* cmd can handle upto 16 point polylines with 32-bit coord's */ 1560e0eb256SRudolf Cornelissen struct { 1570e0eb256SRudolf Cornelissen uint32 Color; /* b0-31 is color */ 1580e0eb256SRudolf Cornelissen uint32 Point; /* b0-15 is X, b16-31 is Y */ 1595f8c3a7fSRudolf Cornelissen } ColorPolyline[0x10]; /* cmd can handle upto 16 point polylines with individually 1605f8c3a7fSRudolf Cornelissen * colored sections */ 1610e0eb256SRudolf Cornelissen } cmd_nv1_render_solid_lin; 1620e0eb256SRudolf Cornelissen 1630e0eb256SRudolf Cornelissen /* Someone defined this in XFree once (as 'RivaRectangle') but never used it: 1640e0eb256SRudolf Cornelissen * a handle should also be defined in the engine's init code, which was never done AFAIK. 1650e0eb256SRudolf Cornelissen * The command could be very interesting for us, as it could potentially speed-up our 1660e0eb256SRudolf Cornelissen * rectangle_fills :-) */ 1670e0eb256SRudolf Cornelissen //fixme: test this 2D command! 1680e0eb256SRudolf Cornelissen typedef struct { 1690e0eb256SRudolf Cornelissen uint32 reserved00[0x0004]; 1700e0eb256SRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 1710e0eb256SRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 172b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 173b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 174b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 175b1e0087bSRudolf Cornelissen uint32 reserved02[0x00af]; 1760e0eb256SRudolf Cornelissen uint32 Color; /* b0-31 is color */ 177b1e0087bSRudolf Cornelissen uint32 reserved03[0x003e]; 1780e0eb256SRudolf Cornelissen struct { 1790e0eb256SRudolf Cornelissen uint32 TopLeft; /* b0-15 is left, b16-31 is top */ 1800e0eb256SRudolf Cornelissen uint32 HeightWidth; /* b0-15 is width, b16-31 is height */ 1810e0eb256SRudolf Cornelissen } Rectangle[0x10]; /* command can handle upto 16 rectangles */ 1820e0eb256SRudolf Cornelissen } cmd_nv_render_solid_rectangle;/* nv1_render_solid_rectangle is identical */ 1830e0eb256SRudolf Cornelissen 1840e0eb256SRudolf Cornelissen //fixme: complete or remove (this 2D cmd is not used currently) 1850e0eb256SRudolf Cornelissen typedef struct { 1860e0eb256SRudolf Cornelissen } cmd_nv1_image_from_cpu; /* 'pixmap': used in XFree 4.2.0, but not beyond. 1870e0eb256SRudolf Cornelissen * (Used for the 2D 'ImageWriteScanline' and 1880e0eb256SRudolf Cornelissen * 'ScanlineImageWriteRect' functions.) 1890e0eb256SRudolf Cornelissen * Is this command actually usefull? */ 1900e0eb256SRudolf Cornelissen 1910e0eb256SRudolf Cornelissen 1920e0eb256SRudolf Cornelissen /************************ 1930e0eb256SRudolf Cornelissen * 3D specific commands * 1940e0eb256SRudolf Cornelissen ************************/ 1950e0eb256SRudolf Cornelissen 196bd877ea2SRudolf Cornelissen typedef struct { 1975c2199fcSRudolf Cornelissen uint32 reserved00[0x0004]; 1985c2199fcSRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 1995c2199fcSRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 200b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 201b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 202b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 203b1e0087bSRudolf Cornelissen uint32 reserved02[0x00ae]; 2045c2199fcSRudolf Cornelissen uint32 Colorkey; /* texture colorkey */ 2055c2199fcSRudolf Cornelissen uint32 Offset; /* texture offset */ 2065c2199fcSRudolf Cornelissen uint32 Format; /* texture colorspace, size, and a lot more */ 2075c2199fcSRudolf Cornelissen uint32 Filter; /* texture filtering modes (used for scaling) */ 2085c2199fcSRudolf Cornelissen uint32 Blend; /* triangle blend: shade, perspective, specular.. */ 2095c2199fcSRudolf Cornelissen uint32 Control; /* triangle control: Z-enable, culling, dither.. */ 2105c2199fcSRudolf Cornelissen uint32 FogColor; /* fog colorvalue */ 211b1e0087bSRudolf Cornelissen uint32 reserved03[0x0039]; 2125c2199fcSRudolf Cornelissen struct { 2130e0eb256SRudolf Cornelissen float ScreenX; /* X */ 2140e0eb256SRudolf Cornelissen float ScreenY; /* Y */ 2150e0eb256SRudolf Cornelissen float ScreenZ; /* depth */ 2160e0eb256SRudolf Cornelissen float RWH; /* eyeM */ 2175c2199fcSRudolf Cornelissen uint32 Color; /* b24-31 Alpha, b16-23 Red, b8-15 Green, b0-7 Blue */ 2185c2199fcSRudolf Cornelissen uint32 Specular; /* b24-31 Fog, b16-23 Red, b8-15 Green, b0-7 Blue */ 2190e0eb256SRudolf Cornelissen float TU; /* texture S */ 2200e0eb256SRudolf Cornelissen float TV; /* texture T */ 2215c2199fcSRudolf Cornelissen } TLVertex[0x10]; /* command can handle upto 16 textured, lit(?) vertexes */ 2225c2199fcSRudolf Cornelissen uint32 TLVDrawPrim[0x40]; /* b20-31 is I5, b16-19 is I4, b12-15 is I3, 2235c2199fcSRudolf Cornelissen * b8-11 is I2, 4-7 is I1, b0-3 is I0: 2245c2199fcSRudolf Cornelissen * Ix is a TLVertex[Ix]. 225b88dbb0cSRudolf Cornelissen * So: define your (single) texture, define your 226b88dbb0cSRudolf Cornelissen * vertexes, and then program TLVDrawPrim with the 227b88dbb0cSRudolf Cornelissen * order to draw them. 228b88dbb0cSRudolf Cornelissen * You can draw primitives consisting of sets of upto 229b88dbb0cSRudolf Cornelissen * 6 out of 16 defined vertexes this way; and you can 230b88dbb0cSRudolf Cornelissen * draw 64 sets maximum. */ 231b88dbb0cSRudolf Cornelissen } cmd_nv4_dx5_texture_triangle; /* nv10_dx5_texture_triangle is identical */ 232b88dbb0cSRudolf Cornelissen 233b88dbb0cSRudolf Cornelissen typedef struct { 234b88dbb0cSRudolf Cornelissen uint32 reserved00[0x0004]; 235b88dbb0cSRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 236b88dbb0cSRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 237b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 238b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 239b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 240b1e0087bSRudolf Cornelissen uint32 reserved02[0x00b0]; /* fixme? there's more here that's not used apparantly */ 241b88dbb0cSRudolf Cornelissen uint32 Pitch; /* b16-31 is Z-buffer, b0-15 is colorbuffer pitch */ 242b88dbb0cSRudolf Cornelissen uint32 SetOffsetColor; /* b0-31 is colorbuffer (renderbuffer) offset */ 243b88dbb0cSRudolf Cornelissen uint32 SetOffsetZeta; /* b0-31 is Z-buffer (zeta buffer) offset */ 244b88dbb0cSRudolf Cornelissen } cmd_nv4_context_surfaces_argb_zs; /* nv10_context_surfaces_argb_zs is identical */ 245bd877ea2SRudolf Cornelissen 2460e0eb256SRudolf Cornelissen //fixme: let's loose this one if possible as we don't support NV3 anyway ... 2470e0eb256SRudolf Cornelissen // (checkout if we can re-setup 2D surfaces (after using 3D) without this command) 2480e0eb256SRudolf Cornelissen typedef struct { 2490e0eb256SRudolf Cornelissen uint32 reserved00[0x0004]; 2500e0eb256SRudolf Cornelissen uint16 FifoFree; /* little endian (FIFO internal register) */ 2510e0eb256SRudolf Cornelissen uint16 Nop; /* little endian (FIFO internal register) */ 252b1e0087bSRudolf Cornelissen uint32 reserved01[0x000b]; 253b1e0087bSRudolf Cornelissen uint32 DMAPut; /* b2-28 is DMA Put offset (FIFO internal register) */ 254b1e0087bSRudolf Cornelissen uint32 DMAGet; /* b2-28 is DMA Get offset (FIFO internal register) */ 255b1e0087bSRudolf Cornelissen uint32 reserved02[0x00b0]; /* fixme? there's more here that's not used apparantly */ 2560e0eb256SRudolf Cornelissen uint32 Pitch; /* b0-15 is buffer pitch */ 2570e0eb256SRudolf Cornelissen uint32 SetOffset; /* b0-22 is buffer offset (so just 1st 8Mb adressable!) */ 2580e0eb256SRudolf Cornelissen } cmd_nv3_surface_x; /* x = 0, 1, 2 or 3: selects buffer to be setup; 2590e0eb256SRudolf Cornelissen * 0,1 is 2D surfaces, 2,3 is 3D surfaces */ 2600e0eb256SRudolf Cornelissen 2610e0eb256SRudolf Cornelissen //fixme: fill these out... 2620e0eb256SRudolf Cornelissen typedef struct { 2630e0eb256SRudolf Cornelissen } cmd_nv_render_d3d0_triangle_zeta; 2640e0eb256SRudolf Cornelissen 2650e0eb256SRudolf Cornelissen typedef struct { 2660e0eb256SRudolf Cornelissen } cmd_nv4_dx6_multi_texture_triangle;/* nv10_dx6_multi_texture_triangle is identical? */ 2670e0eb256SRudolf Cornelissen 26849057561SRudolf Cornelissen 26949057561SRudolf Cornelissen /************ DMA command defines ***********/ 27049057561SRudolf Cornelissen 27149057561SRudolf Cornelissen #define NV_GENERAL_DMAPUT 0x0040 27249057561SRudolf Cornelissen #define NV_GENERAL_DMAGET 0x0044 27349057561SRudolf Cornelissen #define NV_ROP5_SOLID_SETROP5 0x0300 274*98a4e5c7SRudolf Cornelissen #define NV_IMAGE_BLACK_RECTANGLE_TOPLEFT 0x0300 27549057561SRudolf Cornelissen #define NV_IMAGE_PATTERN_SETSHAPE 0x0308 276*98a4e5c7SRudolf Cornelissen #define NV_IMAGE_PATTERN_SETCOLOR0 0x0310 277*98a4e5c7SRudolf Cornelissen #define NV_IMAGE_BLIT_SOURCEORG 0x0300 27849057561SRudolf Cornelissen 279bd877ea2SRudolf Cornelissen #endif 280