Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

777 lines
12 KiB

  1. /*
  2. ** Copyright 1991, 1992, Silicon Graphics, Inc.
  3. ** All Rights Reserved.
  4. **
  5. ** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6. ** the contents of this file may not be disclosed to third parties, copied or
  7. ** duplicated in any form, in whole or in part, without the prior written
  8. ** permission of Silicon Graphics, Inc.
  9. **
  10. ** RESTRICTED RIGHTS LEGEND:
  11. ** Use, duplication or disclosure by the Government is subject to restrictions
  12. ** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13. ** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14. ** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15. ** rights reserved under the Copyright Laws of the United States.
  16. */
  17. /*
  18. * Message for handcoded OpenGL functions going through the subbatch
  19. */
  20. #ifndef __GLSBMSGH_H__
  21. #define __GLSBMSGH_H__
  22. typedef struct
  23. {
  24. ULONG ProcOffset;
  25. GLenum pname;
  26. GLfloat params[4];
  27. } GLMSG_FOGFV, GLMSG_FOGF;
  28. typedef struct
  29. {
  30. ULONG ProcOffset;
  31. GLenum pname;
  32. GLint params[4];
  33. } GLMSG_FOGIV, GLMSG_FOGI;
  34. typedef struct
  35. {
  36. ULONG ProcOffset;
  37. GLenum light;
  38. GLenum pname;
  39. GLfloat params[4];
  40. } GLMSG_LIGHTFV, GLMSG_LIGHTF;
  41. typedef struct
  42. {
  43. ULONG ProcOffset;
  44. GLenum light;
  45. GLenum pname;
  46. GLint params[4];
  47. } GLMSG_LIGHTIV, GLMSG_LIGHTI;
  48. typedef struct
  49. {
  50. ULONG ProcOffset;
  51. GLenum pname;
  52. GLfloat params[4];
  53. } GLMSG_LIGHTMODELFV, GLMSG_LIGHTMODELF;
  54. typedef struct
  55. {
  56. ULONG ProcOffset;
  57. GLenum pname;
  58. GLint params[4];
  59. } GLMSG_LIGHTMODELIV, GLMSG_LIGHTMODELI;
  60. typedef struct
  61. {
  62. ULONG ProcOffset;
  63. GLenum face;
  64. GLenum pname;
  65. GLfloat params[4];
  66. } GLMSG_MATERIALFV, GLMSG_MATERIALF;
  67. typedef struct
  68. {
  69. ULONG ProcOffset;
  70. GLenum face;
  71. GLenum pname;
  72. GLint params[4];
  73. } GLMSG_MATERIALIV, GLMSG_MATERIALI;
  74. typedef struct
  75. {
  76. ULONG ProcOffset;
  77. GLenum target;
  78. GLenum pname;
  79. GLfloat params[4];
  80. } GLMSG_TEXPARAMETERFV, GLMSG_TEXPARAMETERF;
  81. typedef struct
  82. {
  83. ULONG ProcOffset;
  84. GLenum target;
  85. GLenum pname;
  86. GLint params[4];
  87. } GLMSG_TEXPARAMETERIV, GLMSG_TEXPARAMETERI;
  88. typedef struct
  89. {
  90. ULONG ProcOffset;
  91. GLenum target;
  92. GLenum pname;
  93. GLfloat params[4];
  94. } GLMSG_TEXENVFV, GLMSG_TEXENVF;
  95. typedef struct
  96. {
  97. ULONG ProcOffset;
  98. GLenum target;
  99. GLenum pname;
  100. GLint params[4];
  101. } GLMSG_TEXENVIV, GLMSG_TEXENVI;
  102. typedef struct
  103. {
  104. ULONG ProcOffset;
  105. GLenum coord;
  106. GLenum pname;
  107. GLdouble params[4];
  108. } GLMSG_TEXGENDV, GLMSG_TEXGEND;
  109. typedef struct
  110. {
  111. ULONG ProcOffset;
  112. GLenum coord;
  113. GLenum pname;
  114. GLfloat params[4];
  115. } GLMSG_TEXGENFV, GLMSG_TEXGENF;
  116. typedef struct
  117. {
  118. ULONG ProcOffset;
  119. GLenum coord;
  120. GLenum pname;
  121. GLint params[4];
  122. } GLMSG_TEXGENIV, GLMSG_TEXGENI;
  123. typedef struct
  124. {
  125. ULONG ProcOffset;
  126. GLenum pname;
  127. #ifdef _CLIENTSIDE_
  128. GLboolean *params;
  129. #else
  130. GLboolean params[16];
  131. #endif
  132. } GLMSG_GETBOOLEANV;
  133. typedef struct
  134. {
  135. ULONG ProcOffset;
  136. GLenum pname;
  137. #ifdef _CLIENTSIDE_
  138. GLdouble *params;
  139. #else
  140. GLdouble params[16];
  141. #endif
  142. } GLMSG_GETDOUBLEV;
  143. typedef struct
  144. {
  145. ULONG ProcOffset;
  146. GLenum pname;
  147. #ifdef _CLIENTSIDE_
  148. GLfloat *params;
  149. #else
  150. GLfloat params[16];
  151. #endif
  152. } GLMSG_GETFLOATV;
  153. typedef struct
  154. {
  155. ULONG ProcOffset;
  156. GLenum pname;
  157. #ifdef _CLIENTSIDE_
  158. GLint *params;
  159. #else
  160. GLint params[16];
  161. #endif
  162. } GLMSG_GETINTEGERV;
  163. typedef struct
  164. {
  165. ULONG ProcOffset;
  166. GLenum light;
  167. GLenum pname;
  168. #ifdef _CLIENTSIDE_
  169. GLfloat *params;
  170. #else
  171. GLfloat params[4];
  172. #endif
  173. } GLMSG_GETLIGHTFV;
  174. typedef struct
  175. {
  176. ULONG ProcOffset;
  177. GLenum light;
  178. GLenum pname;
  179. #ifdef _CLIENTSIDE_
  180. GLint *params;
  181. #else
  182. GLint params[4];
  183. #endif
  184. } GLMSG_GETLIGHTIV;
  185. typedef struct
  186. {
  187. ULONG ProcOffset;
  188. GLenum face;
  189. GLenum pname;
  190. #ifdef _CLIENTSIDE_
  191. GLfloat *params;
  192. #else
  193. GLfloat params[4];
  194. #endif
  195. } GLMSG_GETMATERIALFV;
  196. typedef struct
  197. {
  198. ULONG ProcOffset;
  199. GLenum face;
  200. GLenum pname;
  201. #ifdef _CLIENTSIDE_
  202. GLint *params;
  203. #else
  204. GLint params[4];
  205. #endif
  206. } GLMSG_GETMATERIALIV;
  207. typedef struct
  208. {
  209. ULONG ProcOffset;
  210. GLenum target;
  211. GLenum pname;
  212. #ifdef _CLIENTSIDE_
  213. GLfloat *params;
  214. #else
  215. GLfloat params[4];
  216. #endif
  217. } GLMSG_GETTEXENVFV;
  218. typedef struct
  219. {
  220. ULONG ProcOffset;
  221. GLenum target;
  222. GLenum pname;
  223. #ifdef _CLIENTSIDE_
  224. GLint *params;
  225. #else
  226. GLint params[4];
  227. #endif
  228. } GLMSG_GETTEXENVIV;
  229. typedef struct
  230. {
  231. ULONG ProcOffset;
  232. GLenum coord;
  233. GLenum pname;
  234. #ifdef _CLIENTSIDE_
  235. GLdouble *params;
  236. #else
  237. GLdouble params[4];
  238. #endif
  239. } GLMSG_GETTEXGENDV;
  240. typedef struct
  241. {
  242. ULONG ProcOffset;
  243. GLenum coord;
  244. GLenum pname;
  245. #ifdef _CLIENTSIDE_
  246. GLfloat *params;
  247. #else
  248. GLfloat params[4];
  249. #endif
  250. } GLMSG_GETTEXGENFV;
  251. typedef struct
  252. {
  253. ULONG ProcOffset;
  254. GLenum coord;
  255. GLenum pname;
  256. #ifdef _CLIENTSIDE_
  257. GLint *params;
  258. #else
  259. GLint params[4];
  260. #endif
  261. } GLMSG_GETTEXGENIV;
  262. typedef struct
  263. {
  264. ULONG ProcOffset;
  265. GLenum target;
  266. GLenum pname;
  267. #ifdef _CLIENTSIDE_
  268. GLfloat *params;
  269. #else
  270. GLfloat params[4];
  271. #endif
  272. } GLMSG_GETTEXPARAMETERFV;
  273. typedef struct
  274. {
  275. ULONG ProcOffset;
  276. GLenum target;
  277. GLenum pname;
  278. #ifdef _CLIENTSIDE_
  279. GLint *params;
  280. #else
  281. GLint params[4];
  282. #endif
  283. } GLMSG_GETTEXPARAMETERIV;
  284. typedef struct
  285. {
  286. ULONG ProcOffset;
  287. GLenum target;
  288. GLint level;
  289. GLenum pname;
  290. #ifdef _CLIENTSIDE_
  291. GLfloat *params;
  292. #else
  293. GLfloat params[1];
  294. #endif
  295. } GLMSG_GETTEXLEVELPARAMETERFV;
  296. typedef struct
  297. {
  298. ULONG ProcOffset;
  299. GLenum target;
  300. GLint level;
  301. GLenum pname;
  302. #ifdef _CLIENTSIDE_
  303. GLint *params;
  304. #else
  305. GLint params[1];
  306. #endif
  307. } GLMSG_GETTEXLEVELPARAMETERIV;
  308. typedef struct
  309. {
  310. ULONG_PTR ProcOffset;
  311. GLsizei size;
  312. GLenum type;
  313. ULONG_PTR bufferOff;
  314. } GLMSG_FEEDBACKBUFFER;
  315. typedef struct
  316. {
  317. ULONG ProcOffset;
  318. GLsizei size;
  319. ULONG_PTR bufferOff;
  320. } GLMSG_SELECTBUFFER;
  321. typedef struct
  322. {
  323. ULONG ProcOffset;
  324. GLenum mode;
  325. } GLMSG_RENDERMODE;
  326. typedef struct
  327. {
  328. // This only used so that the code compiles.
  329. // GetString is included in the proctables.
  330. // However, GetString() is currently implemented
  331. // on the client side.
  332. ULONG ProcOffset;
  333. } GLMSG_GETSTRING;
  334. typedef struct
  335. {
  336. ULONG ProcOffset;
  337. GLenum target;
  338. GLdouble u1;
  339. GLdouble u2;
  340. GLint stride;
  341. GLint order;
  342. #ifndef _CLIENTSIDE_
  343. ULONG MsgSize;
  344. ULONG DataSize;
  345. #endif
  346. ULONG pointsOff;
  347. } GLMSG_MAP1D;
  348. typedef struct
  349. {
  350. ULONG ProcOffset;
  351. GLenum target;
  352. GLfloat u1;
  353. GLfloat u2;
  354. GLint stride;
  355. GLint order;
  356. #ifndef _CLIENTSIDE_
  357. ULONG MsgSize;
  358. ULONG DataSize;
  359. #endif
  360. ULONG pointsOff;
  361. } GLMSG_MAP1F;
  362. typedef struct
  363. {
  364. ULONG ProcOffset;
  365. GLenum target;
  366. GLdouble u1;
  367. GLdouble u2;
  368. GLint ustride;
  369. GLint uorder;
  370. GLdouble v1;
  371. GLdouble v2;
  372. GLint vstride;
  373. GLint vorder;
  374. #ifndef _CLIENTSIDE_
  375. ULONG MsgSize;
  376. ULONG DataSize;
  377. #endif
  378. ULONG pointsOff;
  379. } GLMSG_MAP2D;
  380. typedef struct
  381. {
  382. ULONG ProcOffset;
  383. GLenum target;
  384. GLfloat u1;
  385. GLfloat u2;
  386. GLint ustride;
  387. GLint uorder;
  388. GLfloat v1;
  389. GLfloat v2;
  390. GLint vstride;
  391. GLint vorder;
  392. #ifndef _CLIENTSIDE_
  393. ULONG MsgSize;
  394. ULONG DataSize;
  395. #endif
  396. ULONG pointsOff;
  397. } GLMSG_MAP2F;
  398. typedef struct
  399. {
  400. ULONG ProcOffset ;
  401. GLint x ;
  402. GLint y ;
  403. GLsizei width ;
  404. GLsizei height ;
  405. GLenum format ;
  406. GLenum type ;
  407. ULONG_PTR pixelsOff ;
  408. } GLMSG_READPIXELS;
  409. typedef struct
  410. {
  411. ULONG ProcOffset ;
  412. GLenum target ;
  413. GLint level ;
  414. GLenum format ;
  415. GLenum type ;
  416. ULONG_PTR pixelsOff ;
  417. } GLMSG_GETTEXIMAGE;
  418. typedef struct
  419. {
  420. ULONG ProcOffset ;
  421. GLsizei width ;
  422. GLsizei height ;
  423. GLenum format ;
  424. GLenum type ;
  425. ULONG_PTR pixelsOff ;
  426. GLboolean _IsDlist ;
  427. } GLMSG_DRAWPIXELS;
  428. typedef struct
  429. {
  430. ULONG ProcOffset ;
  431. GLsizei width ;
  432. GLsizei height ;
  433. GLfloat xorig ;
  434. GLfloat yorig ;
  435. GLfloat xmove ;
  436. GLfloat ymove ;
  437. ULONG_PTR bitmapOff ;
  438. GLboolean _IsDlist ;
  439. } GLMSG_BITMAP;
  440. typedef struct
  441. {
  442. ULONG ProcOffset ;
  443. ULONG_PTR maskOff ;
  444. GLboolean _IsDlist ;
  445. } GLMSG_POLYGONSTIPPLE, GLMSG_GETPOLYGONSTIPPLE;
  446. typedef struct
  447. {
  448. ULONG ProcOffset ;
  449. GLenum target ;
  450. GLint level ;
  451. GLint components ;
  452. GLsizei width ;
  453. GLint border ;
  454. GLenum format ;
  455. GLenum type ;
  456. ULONG_PTR pixelsOff ;
  457. GLboolean _IsDlist ;
  458. } GLMSG_TEXIMAGE1D;
  459. typedef struct
  460. {
  461. ULONG ProcOffset ;
  462. GLenum target ;
  463. GLint level ;
  464. GLint components ;
  465. GLsizei width ;
  466. GLsizei height ;
  467. GLint border ;
  468. GLenum format ;
  469. GLenum type ;
  470. ULONG_PTR pixelsOff ;
  471. GLboolean _IsDlist ;
  472. } GLMSG_TEXIMAGE2D;
  473. typedef struct
  474. {
  475. ULONG ProcOffset;
  476. GLsizei n;
  477. const GLuint *textures;
  478. GLboolean *residences;
  479. } GLMSG_ARETEXTURESRESIDENT;
  480. typedef struct
  481. {
  482. ULONG ProcOffset;
  483. GLenum target;
  484. GLuint texture;
  485. } GLMSG_BINDTEXTURE;
  486. typedef struct
  487. {
  488. ULONG ProcOffset;
  489. GLenum target;
  490. GLint level;
  491. GLenum internalformat;
  492. GLint x;
  493. GLint y;
  494. GLsizei width;
  495. GLint border;
  496. } GLMSG_COPYTEXIMAGE1D;
  497. typedef struct
  498. {
  499. ULONG ProcOffset;
  500. GLenum target;
  501. GLint level;
  502. GLenum internalformat;
  503. GLint x;
  504. GLint y;
  505. GLsizei width;
  506. GLsizei height;
  507. GLint border;
  508. } GLMSG_COPYTEXIMAGE2D;
  509. typedef struct
  510. {
  511. ULONG ProcOffset;
  512. GLenum target;
  513. GLint level;
  514. GLint xoffset;
  515. GLint yoffset;
  516. GLint x;
  517. GLint y;
  518. GLsizei width;
  519. } GLMSG_COPYTEXSUBIMAGE1D;
  520. typedef struct
  521. {
  522. ULONG ProcOffset;
  523. GLenum target;
  524. GLint level;
  525. GLint xoffset;
  526. GLint yoffset;
  527. GLint x;
  528. GLint y;
  529. GLsizei width;
  530. GLsizei height;
  531. } GLMSG_COPYTEXSUBIMAGE2D;
  532. typedef struct
  533. {
  534. ULONG ProcOffset;
  535. GLsizei n;
  536. const GLuint *textures;
  537. } GLMSG_DELETETEXTURES;
  538. typedef struct
  539. {
  540. ULONG ProcOffset;
  541. GLsizei n;
  542. GLuint *textures;
  543. } GLMSG_GENTEXTURES;
  544. typedef struct
  545. {
  546. ULONG ProcOffset;
  547. GLuint texture;
  548. } GLMSG_ISTEXTURE;
  549. typedef struct
  550. {
  551. ULONG ProcOffset;
  552. GLsizei n;
  553. const GLuint *textures;
  554. const GLclampf *priorities;
  555. } GLMSG_PRIORITIZETEXTURES;
  556. typedef struct
  557. {
  558. ULONG ProcOffset;
  559. GLenum target;
  560. GLint level;
  561. GLint xoffset;
  562. GLsizei width;
  563. GLenum format;
  564. GLenum type;
  565. ULONG_PTR pixelsOff;
  566. GLboolean _IsDlist ;
  567. } GLMSG_TEXSUBIMAGE1D;
  568. typedef struct
  569. {
  570. ULONG ProcOffset;
  571. GLenum target;
  572. GLint level;
  573. GLint xoffset;
  574. GLint yoffset;
  575. GLsizei width;
  576. GLsizei height;
  577. GLenum format;
  578. GLenum type;
  579. ULONG_PTR pixelsOff;
  580. GLboolean _IsDlist ;
  581. } GLMSG_TEXSUBIMAGE2D;
  582. typedef struct
  583. {
  584. ULONG ProcOffset;
  585. GLenum target;
  586. GLenum internalFormat;
  587. GLsizei width;
  588. GLenum format;
  589. GLenum type;
  590. const GLvoid *data;
  591. GLboolean _IsDlist;
  592. } GLMSG_COLORTABLEEXT;
  593. typedef struct
  594. {
  595. ULONG ProcOffset;
  596. GLenum target;
  597. GLuint start;
  598. GLsizei count;
  599. GLenum format;
  600. GLenum type;
  601. const GLvoid *data;
  602. GLboolean _IsDlist;
  603. } GLMSG_COLORSUBTABLEEXT;
  604. typedef struct
  605. {
  606. ULONG ProcOffset;
  607. GLenum target;
  608. GLenum format;
  609. GLenum type;
  610. GLvoid *data;
  611. } GLMSG_GETCOLORTABLEEXT;
  612. typedef struct
  613. {
  614. ULONG ProcOffset;
  615. GLenum target;
  616. GLenum pname;
  617. GLint *params;
  618. } GLMSG_GETCOLORTABLEPARAMETERIVEXT;
  619. typedef struct
  620. {
  621. ULONG ProcOffset;
  622. GLenum target;
  623. GLenum pname;
  624. GLfloat *params;
  625. } GLMSG_GETCOLORTABLEPARAMETERFVEXT;
  626. typedef struct
  627. {
  628. ULONG ProcOffset;
  629. GLfloat factor;
  630. GLfloat units;
  631. } GLMSG_POLYGONOFFSET;
  632. #ifdef GL_WIN_multiple_textures
  633. typedef struct
  634. {
  635. ULONG ProcOffset;
  636. GLuint index;
  637. } GLMSG_CURRENTTEXTUREINDEXWIN;
  638. typedef struct
  639. {
  640. ULONG ProcOffset;
  641. GLuint index;
  642. GLenum target;
  643. GLuint texture;
  644. } GLMSG_BINDNTHTEXTUREWIN;
  645. typedef struct
  646. {
  647. ULONG ProcOffset;
  648. GLuint index;
  649. GLenum leftColorFactor;
  650. GLenum colorOp;
  651. GLenum rightColorFactor;
  652. GLenum leftAlphaFactor;
  653. GLenum alphaOp;
  654. GLenum rightAlphaFactor;
  655. } GLMSG_NTHTEXCOMBINEFUNCWIN;
  656. #endif // GL_WIN_multiple_textures
  657. #endif /* !__GLSBMSGH_H__ */