1 /*! @header QuesaStyle.h 2 Declares the Quesa style objects. 3 */ 4 /* NAME: 5 QuesaStyle.h 6 7 DESCRIPTION: 8 Quesa public header. 9 10 COPYRIGHT: 11 Copyright (c) 1999-2004, Quesa Developers. All rights reserved. 12 13 For the current release of Quesa, please see: 14 15 <http://www.quesa.org/> 16 17 Redistribution and use in source and binary forms, with or without 18 modification, are permitted provided that the following conditions 19 are met: 20 21 o Redistributions of source code must retain the above copyright 22 notice, this list of conditions and the following disclaimer. 23 24 o Redistributions in binary form must reproduce the above 25 copyright notice, this list of conditions and the following 26 disclaimer in the documentation and/or other materials provided 27 with the distribution. 28 29 o Neither the name of Quesa nor the names of its contributors 30 may be used to endorse or promote products derived from this 31 software without specific prior written permission. 32 33 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 34 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 35 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 36 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 37 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 38 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 39 TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 40 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 41 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 42 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 43 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 44 ___________________________________________________________________________ 45 */ 46 #ifndef QUESA_STYLE_HDR 47 #define QUESA_STYLE_HDR 48 //============================================================================= 49 // Include files 50 //----------------------------------------------------------------------------- 51 #include "Quesa.h" 52 53 // Disable QD3D header 54 #if defined(__QD3DSTYLE__) 55 #error 56 #endif 57 58 #define __QD3DSTYLE__ 59 60 61 62 63 64 //============================================================================= 65 // C++ preamble 66 //----------------------------------------------------------------------------- 67 #ifdef __cplusplus 68 extern "C" { 69 #endif 70 71 72 73 74 75 //============================================================================= 76 // Constants 77 //----------------------------------------------------------------------------- 78 /*! 79 * @enum 80 * TQ3SubdivisionMethod 81 * @discussion 82 * Subdivision methods. 83 * 84 * @constant kQ3SubdivisionMethodConstant Surfaces are divided into the specified 85 * number of segments. 86 * @constant kQ3SubdivisionMethodWorldSpace Surfaces are divided into segments smaller 87 * than the specified size in world-space. 88 * @constant kQ3SubdivisionMethodScreenSpace Surfaces are divided into segments smaller 89 * than the specified size in pixels. 90 */ 91 typedef enum TQ3SubdivisionMethod { 92 kQ3SubdivisionMethodConstant = 0, 93 kQ3SubdivisionMethodWorldSpace = 1, 94 kQ3SubdivisionMethodScreenSpace = 2, 95 kQ3SubdivisionMethodSize32 = 0xFFFFFFFF 96 } TQ3SubdivisionMethod; 97 98 99 /*! 100 * @enum 101 * TQ3PickPartsMasks 102 * @discussion 103 * Indicates the kind of objects placed in a hit list. 104 * 105 * @constant kQ3PickPartsObject The hit list contains whole objects. 106 * @constant kQ3PickPartsMaskFace The hit list contains faces. 107 * @constant kQ3PickPartsMaskEdge The hit list contains edges. 108 * @constant kQ3PickPartsMaskVertex The hit list contains vertices. 109 */ 110 typedef enum TQ3PickPartsMasks { 111 kQ3PickPartsObject = 0, 112 kQ3PickPartsMaskFace = (1 << 0), 113 kQ3PickPartsMaskEdge = (1 << 1), 114 kQ3PickPartsMaskVertex = (1 << 2), 115 kQ3PickPartsMaskSize32 = 0xFFFFFFFF 116 } TQ3PickPartsMasks; 117 118 119 /*! 120 * @enum 121 * TQ3FillStyle 122 * @discussion 123 * Fill styles. 124 * 125 * @constant kQ3FillStyleFilled Shapes are rendered as filled surfaces. 126 * @constant kQ3FillStyleEdges Shapes are rendered as sets of lines. 127 * @constant kQ3FillStylePoints Shapes are rendered as sets of points. 128 */ 129 typedef enum TQ3FillStyle { 130 kQ3FillStyleFilled = 0, 131 kQ3FillStyleEdges = 1, 132 kQ3FillStylePoints = 2, 133 kQ3FillStyleSize32 = 0xFFFFFFFF 134 } TQ3FillStyle; 135 136 137 /*! 138 * @enum 139 * TQ3BackfacingStyle 140 * @discussion 141 * Backfacing styles. 142 * 143 * @constant kQ3BackfacingStyleBoth Both backfacing and front facing surfaces 144 * are rendered. 145 * @constant kQ3BackfacingStyleRemove Backfacing surfaces are removed before rendering. 146 * @constant kQ3BackfacingStyleFlip Both backfacing and front facing surfaces are 147 * rendered, and the surface normals of backfacing 148 * surfaces are inverted before rendering. 149 */ 150 typedef enum TQ3BackfacingStyle { 151 kQ3BackfacingStyleBoth = 0, 152 kQ3BackfacingStyleRemove = 1, 153 kQ3BackfacingStyleFlip = 2, 154 kQ3BackfacingStyleSize32 = 0xFFFFFFFF 155 } TQ3BackfacingStyle; 156 157 158 /*! 159 * @enum 160 * TQ3InterpolationStyle 161 * @discussion 162 * Interpolation styles. 163 * 164 * @constant kQ3InterpolationStyleNone Faces are rendered with a uniform illumination. 165 * @constant kQ3InterpolationStyleVertex Individual vertices are shaded, and their values 166 * are interpolated across each face. 167 * @constant kQ3InterpolationStylePixel Individual pixels are shaded. Is not typically 168 * supported by interactive renderers. 169 */ 170 typedef enum TQ3InterpolationStyle { 171 kQ3InterpolationStyleNone = 0, 172 kQ3InterpolationStyleVertex = 1, 173 kQ3InterpolationStylePixel = 2, 174 kQ3InterpolationSize32 = 0xFFFFFFFF 175 } TQ3InterpolationStyle; 176 177 178 /*! 179 * @enum 180 * TQ3OrientationStyle 181 * @discussion 182 * Defines the "front facing" side of polygons. 183 * 184 * @constant kQ3OrientationStyleCounterClockwise The front face is defined as CCW order. 185 * @constant kQ3OrientationStyleClockwise The front face is defined as CW order. 186 */ 187 typedef enum TQ3OrientationStyle { 188 kQ3OrientationStyleCounterClockwise = 0, 189 kQ3OrientationStyleClockwise = 1, 190 kQ3OrientationStyleSize32 = 0xFFFFFFFF 191 } TQ3OrientationStyle; 192 193 194 /*! 195 * @enum 196 * TQ3AntiAliasModeMasks 197 * @discussion 198 * Anti-alias style selectors. 199 * 200 * @constant kQ3AntiAliasModeMaskEdges Apply anti-aliasing to wireframe objects. 201 * @constant kQ3AntiAliasModeMaskFilled Apply anti-aliasing to filled objects. 202 * @constant kQ3AntiAliasModeMaskFullScreen Apply global anti-aliasing (e.g., FSAA). 203 * <em>This feature is not available in QD3D.</em> 204 */ 205 typedef enum TQ3AntiAliasModeMasks { 206 kQ3AntiAliasModeMaskEdges = (1 << 0), 207 kQ3AntiAliasModeMaskFilled = (1 << 1), 208 #if QUESA_ALLOW_QD3D_EXTENSIONS 209 kQ3AntiAliasModeMaskFullScreen = (1 << 2), 210 #endif // QUESA_ALLOW_QD3D_EXTENSIONS 211 kQ3AntiAliasModeSize32 = 0xFFFFFFFF 212 } TQ3AntiAliasModeMasks; 213 214 215 /*! 216 * @enum 217 * TQ3FogMode 218 * @discussion 219 * Indicates how fog increases in density with distance. 220 * 221 * Quesa's interactive renderer does not currently implement alpha fog. 222 * 223 * @constant kQ3FogModeLinear Fog == (End - z) / (End - Start) 224 * @constant kQ3FogModeExponential Fog == exp(-Density * z) 225 * @constant kQ3FogModeExponentialSquared Fog == exp(-Density * z * Density * z). 226 * @constant kQ3FogModeAlpha Fog == Vertex Alpha 227 */ 228 typedef enum TQ3FogMode { 229 kQ3FogModeLinear = 0, 230 kQ3FogModeExponential = 1, 231 kQ3FogModeExponentialSquared = 2, 232 kQ3FogModeAlpha = 3, 233 kQ3FogModeSize32 = 0xFFFFFFFF 234 } TQ3FogMode; 235 236 237 238 239 240 //============================================================================= 241 // Types 242 //----------------------------------------------------------------------------- 243 /*! 244 * @struct 245 * TQ3SubdivisionStyleData 246 * @discussion 247 * Subdivision style data. 248 * 249 * The c1 parameter is used as the "size" for all subdivision methods. Its 250 * meaning and units depends on the subdivision method. 251 * 252 * The c2 parameter is used as an additional parameter for surfaces by the 253 * kQ3SubdivisionMethodConstant method, to allow control over subdivision 254 * in both horizontal and vertical dimensions. 255 * 256 * @field method The subdivision method. 257 * @field c1 The first parameter for the subdivision method. 258 * @field c2 The second parameter for the subdivision method. 259 */ 260 typedef struct TQ3SubdivisionStyleData { 261 TQ3SubdivisionMethod method; 262 float c1; 263 float c2; 264 } TQ3SubdivisionStyleData; 265 266 267 /*! 268 * @typedef 269 * TQ3PickParts 270 * @discussion 271 * Holds TQ3PickPartsMasks values. 272 */ 273 typedef TQ3Uns32 TQ3PickParts; 274 275 276 /*! 277 * @typedef 278 * TQ3AntiAliasMode 279 * @discussion 280 * Holds one or more TQ3AntiAliasModeMasks values. 281 */ 282 typedef TQ3Uns32 TQ3AntiAliasMode; 283 284 285 /*! 286 * @struct 287 * TQ3AntiAliasStyleData 288 * @discussion 289 * Anti-alias style data. 290 * 291 * Anti-aliasing may be toggled on and off using the state switch. To 292 * guarantee that no anti-aliasing is performed, the state must be set 293 * to kQ3Off. 294 * 295 * The type of anti-aliasing performed is controlled by the mode switch. 296 * 297 * The quality of anti-aliasing performed is controlled by the quality 298 * field, which can range from 0.0 (minimum) to 1.0 (maximum). Values 299 * outside this range are undefined. 300 * 301 * @field state Is anti-aliasing active? 302 * @field mode The anti-aliasing mode. 303 * @field quality The anti-aliasing quality. 304 */ 305 typedef struct TQ3AntiAliasStyleData { 306 TQ3Switch state; 307 TQ3AntiAliasMode mode; 308 float quality; 309 } TQ3AntiAliasStyleData; 310 311 312 /*! 313 * @struct 314 * TQ3FogStyleData 315 * @discussion 316 * Fog style data. 317 * 318 * Fog may be toggled on and off using the state switch. To guarantee that 319 * no fogging is performed, the state must be set to kQ3Off. 320 * 321 * The type of fogging performed is controlled by the mode switch. 322 * 323 * @field state Is fog active? 324 * @field mode The fog mode. 325 * @field fogStart The start point for fog (only used for linear fog). 326 * @field fogEnd The end point for fog (only used for linear fog). 327 * @field density The maximum density for fog (ignored in linear fog). 328 * @field color The fog color. 329 */ 330 typedef struct TQ3FogStyleData { 331 TQ3Switch state; 332 TQ3FogMode mode; 333 float fogStart; 334 float fogEnd; 335 float density; 336 TQ3ColorARGB color; 337 } TQ3FogStyleData; 338 339 340 341 342 343 //============================================================================= 344 // Function prototypes 345 //----------------------------------------------------------------------------- 346 /*! 347 * @function 348 * Q3Style_GetType 349 * @discussion 350 * Get the type of a style object. 351 * 352 * @param style The style to query. 353 * @result The type of the style. 354 */ 355 Q3_EXTERN_API_C ( TQ3ObjectType ) 356 Q3Style_GetType ( 357 TQ3StyleObject style 358 ); 359 360 361 362 /*! 363 * @function 364 * Q3Style_Submit 365 * @discussion 366 * Submit a style to a view. 367 * 368 * @param style The style to submit. 369 * @param view The view to submit the style to. 370 * @result Success or failure of the operation. 371 */ 372 Q3_EXTERN_API_C ( TQ3Status ) 373 Q3Style_Submit ( 374 TQ3StyleObject style, 375 TQ3ViewObject view 376 ); 377 378 379 380 /*! 381 * @function 382 * Q3SubdivisionStyle_New 383 * @discussion 384 * Create a subdivision style. 385 * 386 * @param data The subdivision style data. 387 * @result The new subdivision style. 388 */ 389 Q3_EXTERN_API_C ( TQ3StyleObject ) 390 Q3SubdivisionStyle_New ( 391 const TQ3SubdivisionStyleData *data 392 ); 393 394 395 396 /*! 397 * @function 398 * Q3SubdivisionStyle_Submit 399 * @discussion 400 * Submit a subdivision style to a view. 401 * 402 * @param data The subdivision style data. 403 * @param view The view to submit the style to. 404 * @result Success or failure of the operation. 405 */ 406 Q3_EXTERN_API_C ( TQ3Status ) 407 Q3SubdivisionStyle_Submit ( 408 const TQ3SubdivisionStyleData *data, 409 TQ3ViewObject view 410 ); 411 412 413 414 /*! 415 * @function 416 * Q3SubdivisionStyle_SetData 417 * @discussion 418 * Set the data for a subdivision style. 419 * 420 * @param subdiv The style to update. 421 * @param data The new data for the style. 422 * @result Success or failure of the operation. 423 */ 424 Q3_EXTERN_API_C ( TQ3Status ) 425 Q3SubdivisionStyle_SetData ( 426 TQ3StyleObject subdiv, 427 const TQ3SubdivisionStyleData *data 428 ); 429 430 431 432 /*! 433 * @function 434 * Q3SubdivisionStyle_GetData 435 * @discussion 436 * Get the data from a subdivision style. 437 * 438 * @param subdiv The style to query. 439 * @param data Receives the data from the style. 440 * @result Success or failure of the operation. 441 */ 442 Q3_EXTERN_API_C ( TQ3Status ) 443 Q3SubdivisionStyle_GetData ( 444 TQ3StyleObject subdiv, 445 TQ3SubdivisionStyleData *data 446 ); 447 448 449 450 /*! 451 * @function 452 * Q3PickIDStyle_New 453 * @discussion 454 * Create a pick ID style. 455 * 456 * @param id The pick ID. 457 * @result The new pick ID style. 458 */ 459 Q3_EXTERN_API_C ( TQ3StyleObject ) 460 Q3PickIDStyle_New ( 461 TQ3Uns32 id 462 ); 463 464 465 466 /*! 467 * @function 468 * Q3PickIDStyle_Submit 469 * @discussion 470 * Submit a pick ID style to a view. 471 * 472 * @param id The pick ID. 473 * @param view The view to submit the style to. 474 * @result Success or failure of the operation. 475 */ 476 Q3_EXTERN_API_C ( TQ3Status ) 477 Q3PickIDStyle_Submit ( 478 TQ3Uns32 id, 479 TQ3ViewObject view 480 ); 481 482 483 484 /*! 485 * @function 486 * Q3PickIDStyle_Get 487 * @discussion 488 * Get the data from a pick ID style. 489 * 490 * @param styleObject The style to query. 491 * @param id Receives the data from the style. 492 * @result Success or failure of the operation. 493 */ 494 Q3_EXTERN_API_C ( TQ3Status ) 495 Q3PickIDStyle_Get ( 496 TQ3StyleObject pickIDObject, 497 TQ3Uns32 *id 498 ); 499 500 501 502 /*! 503 * @function 504 * Q3PickIDStyle_Set 505 * @discussion 506 * Set the data for a pick ID style. 507 * 508 * @param pickIDObject The style to update. 509 * @param id The new data for the style. 510 * @result Success or failure of the operation. 511 */ 512 Q3_EXTERN_API_C ( TQ3Status ) 513 Q3PickIDStyle_Set ( 514 TQ3StyleObject pickIDObject, 515 TQ3Uns32 id 516 ); 517 518 519 520 /*! 521 * @function 522 * Q3PickPartsStyle_New 523 * @discussion 524 * Create a pick parts style. 525 * 526 * @param parts The pick parts. 527 * @result The new pick parts style. 528 */ 529 Q3_EXTERN_API_C ( TQ3StyleObject ) 530 Q3PickPartsStyle_New ( 531 TQ3PickParts parts 532 ); 533 534 535 536 /*! 537 * @function 538 * Q3PickPartsStyle_Submit 539 * @discussion 540 * Submit a pick parts style to a view. 541 * 542 * @param parts The pick parts style data. 543 * @param view The view to submit the style to. 544 * @result Success or failure of the operation. 545 */ 546 Q3_EXTERN_API_C ( TQ3Status ) 547 Q3PickPartsStyle_Submit ( 548 TQ3PickParts parts, 549 TQ3ViewObject view 550 ); 551 552 553 554 /*! 555 * @function 556 * Q3PickPartsStyle_Get 557 * @discussion 558 * Get the data from a pick parts style. 559 * 560 * @param pickPartsObject The style to query. 561 * @param parts Receives the data from the style. 562 * @result Success or failure of the operation. 563 */ 564 Q3_EXTERN_API_C ( TQ3Status ) 565 Q3PickPartsStyle_Get ( 566 TQ3StyleObject pickPartsObject, 567 TQ3PickParts *parts 568 ); 569 570 571 572 /*! 573 * @function 574 * Q3PickPartsStyle_Set 575 * @discussion 576 * Set the data for a pick parts style. 577 * 578 * @param pickPartsObject The style to update. 579 * @param parts The new data for the style. 580 * @result Success or failure of the operation. 581 */ 582 Q3_EXTERN_API_C ( TQ3Status ) 583 Q3PickPartsStyle_Set ( 584 TQ3StyleObject pickPartsObject, 585 TQ3PickParts parts 586 ); 587 588 589 590 /*! 591 * @function 592 * Q3CastShadowsStyle_New 593 * @discussion 594 * Create a cast shadows style. 595 * 596 * <em>This function is not available in QD3D.</em> 597 * 598 * @param castShadows The cast shadows style data. 599 * @result The new cast shadows style. 600 */ 601 #if QUESA_ALLOW_QD3D_EXTENSIONS 602 603 Q3_EXTERN_API_C ( TQ3StyleObject ) 604 Q3CastShadowsStyle_New ( 605 TQ3Boolean castsShadows 606 ); 607 608 #endif // QUESA_ALLOW_QD3D_EXTENSIONS 609 610 611 612 /*! 613 * @function 614 * Q3CastShadowsStyle_Submit 615 * @discussion 616 * Submit a cast shadows style to a view. 617 * 618 * <em>This function is not available in QD3D.</em> 619 * 620 * @param castShadows The cast shadows style data. 621 * @param view The view to submit the style to. 622 * @result Success or failure of the operation. 623 */ 624 #if QUESA_ALLOW_QD3D_EXTENSIONS 625 626 Q3_EXTERN_API_C ( TQ3Status ) 627 Q3CastShadowsStyle_Submit ( 628 TQ3Boolean castShadows, 629 TQ3ViewObject view 630 ); 631 632 #endif // QUESA_ALLOW_QD3D_EXTENSIONS 633 634 635 636 /*! 637 * @function 638 * Q3CastShadowsStyle_Get 639 * @discussion 640 * Get the data from a cast shadows style. 641 * 642 * <em>This function is not available in QD3D.</em> 643 * 644 * @param styleObject The style to query. 645 * @param castShadows Receives the data from the style. 646 * @result Success or failure of the operation. 647 */ 648 #if QUESA_ALLOW_QD3D_EXTENSIONS 649 650 Q3_EXTERN_API_C ( TQ3Status ) 651 Q3CastShadowsStyle_Get ( 652 TQ3StyleObject styleObject, 653 TQ3Boolean *castShadows 654 ); 655 656 #endif // QUESA_ALLOW_QD3D_EXTENSIONS 657 658 659 660 /*! 661 * @function 662 * Q3CastShadowsStyle_Set 663 * @discussion 664 * Set the data for a cast shadows style. 665 * 666 * <em>This function is not available in QD3D.</em> 667 * 668 * @param styleObject The style to update. 669 * @param castShadows The new data for the style. 670 * @result Success or failure of the operation. 671 */ 672 #if QUESA_ALLOW_QD3D_EXTENSIONS 673 674 Q3_EXTERN_API_C ( TQ3Status ) 675 Q3CastShadowsStyle_Set ( 676 TQ3StyleObject styleObject, 677 TQ3Boolean castShadows 678 ); 679 680 #endif // QUESA_ALLOW_QD3D_EXTENSIONS 681 682 683 684 /*! 685 * @function 686 * Q3ReceiveShadowsStyle_New 687 * @discussion 688 * Create a receive shadows style. 689 * 690 * @param receiveShadows The receive shadows style data. 691 * @result The new receive shadows style. 692 */ 693 Q3_EXTERN_API_C ( TQ3StyleObject ) 694 Q3ReceiveShadowsStyle_New ( 695 TQ3Boolean receiveShadows 696 ); 697 698 699 700 /*! 701 * @function 702 * Q3ReceiveShadowsStyle_Submit 703 * @discussion 704 * Submit a receive shadows style to a view. 705 * 706 * @param receiveShadows The receive shadows style data. 707 * @param view The view to submit the style to. 708 * @result Success or failure of the operation. 709 */ 710 Q3_EXTERN_API_C ( TQ3Status ) 711 Q3ReceiveShadowsStyle_Submit ( 712 TQ3Boolean receiveShadows, 713 TQ3ViewObject view 714 ); 715 716 717 718 /*! 719 * @function 720 * Q3ReceiveShadowsStyle_Get 721 * @discussion 722 * Get the data from a receive shadows style. 723 * 724 * @param styleObject The style to query. 725 * @param receiveShadows Receives the data from the style. 726 * @result Success or failure of the operation. 727 */ 728 Q3_EXTERN_API_C ( TQ3Status ) 729 Q3ReceiveShadowsStyle_Get ( 730 TQ3StyleObject styleObject, 731 TQ3Boolean *receiveShadows 732 ); 733 734 735 736 /*! 737 * @function 738 * Q3ReceiveShadowsStyle_Set 739 * @discussion 740 * Set the data for a receive shadows style. 741 * 742 * @param styleObject The style to update. 743 * @param receiveShadows The new data for the style. 744 * @result Success or failure of the operation. 745 */ 746 Q3_EXTERN_API_C ( TQ3Status ) 747 Q3ReceiveShadowsStyle_Set ( 748 TQ3StyleObject styleObject, 749 TQ3Boolean receiveShadows 750 ); 751 752 753 754 /*! 755 * @function 756 * Q3FillStyle_New 757 * @discussion 758 * Create a fill style. 759 * 760 * @param fillStyle The fill style data. 761 * @result The new fill style. 762 */ 763 Q3_EXTERN_API_C ( TQ3StyleObject ) 764 Q3FillStyle_New ( 765 TQ3FillStyle fillStyle 766 ); 767 768 769 770 /*! 771 * @function 772 * Q3FillStyle_Submit 773 * @discussion 774 * Submit a fill style to a view. 775 * 776 * @param fillStyle The fill style data. 777 * @param view The view to submit the style to. 778 * @result Success or failure of the operation. 779 */ 780 Q3_EXTERN_API_C ( TQ3Status ) 781 Q3FillStyle_Submit ( 782 TQ3FillStyle fillStyle, 783 TQ3ViewObject view 784 ); 785 786 787 788 /*! 789 * @function 790 * Q3FillStyle_Get 791 * @discussion 792 * Get the data from a fill style. 793 * 794 * @param styleObject The style to query. 795 * @param filLStyle Receives the data from the style. 796 * @result Success or failure of the operation. 797 */ 798 Q3_EXTERN_API_C ( TQ3Status ) 799 Q3FillStyle_Get ( 800 TQ3StyleObject styleObject, 801 TQ3FillStyle *fillStyle 802 ); 803 804 805 806 /*! 807 * @function 808 * Q3FillStyle_Set 809 * @discussion 810 * Set the data for a fill style. 811 * 812 * @param styleObject The style to update. 813 * @param fillStyle The new data for the style. 814 * @result Success or failure of the operation. 815 */ 816 Q3_EXTERN_API_C ( TQ3Status ) 817 Q3FillStyle_Set ( 818 TQ3StyleObject styleObject, 819 TQ3FillStyle fillStyle 820 ); 821 822 823 824 /*! 825 * @function 826 * Q3BackfacingStyle_New 827 * @discussion 828 * Create a backfacing style. 829 * 830 * @param backfacingStyle The backfacing style data. 831 * @result The new backfacing style. 832 */ 833 Q3_EXTERN_API_C ( TQ3StyleObject ) 834 Q3BackfacingStyle_New ( 835 TQ3BackfacingStyle backfacingStyle 836 ); 837 838 839 840 /*! 841 * @function 842 * Q3BackfacingStyle_Submit 843 * @discussion 844 * Submit a backfacing style to a view. 845 * 846 * @param backfacingStyle The backfacing style data. 847 * @param view The view to submit the style to. 848 * @result Success or failure of the operation. 849 */ 850 Q3_EXTERN_API_C ( TQ3Status ) 851 Q3BackfacingStyle_Submit ( 852 TQ3BackfacingStyle backfacingStyle, 853 TQ3ViewObject view 854 ); 855 856 857 858 /*! 859 * @function 860 * Q3BackfacingStyle_Get 861 * @discussion 862 * Get the data from a backfacing style. 863 * 864 * @param backfacingObject The style to query. 865 * @param backfacingStyle Receives the data from the style. 866 * @result Success or failure of the operation. 867 */ 868 Q3_EXTERN_API_C ( TQ3Status ) 869 Q3BackfacingStyle_Get ( 870 TQ3StyleObject backfacingObject, 871 TQ3BackfacingStyle *backfacingStyle 872 ); 873 874 875 876 /*! 877 * @function 878 * Q3BackfacingStyle_Set 879 * @discussion 880 * Set the data for a backfacing style. 881 * 882 * @param backfacingObject The style to update. 883 * @param backfacingStyle The new data for the style. 884 * @result Success or failure of the operation. 885 */ 886 Q3_EXTERN_API_C ( TQ3Status ) 887 Q3BackfacingStyle_Set ( 888 TQ3StyleObject backfacingObject, 889 TQ3BackfacingStyle backfacingStyle 890 ); 891 892 893 894 /*! 895 * @function 896 * Q3InterpolationStyle_New 897 * @discussion 898 * Create an interpolation style. 899 * 900 * @param interpolationStyle The interpolation style data. 901 * @result The new interpolation style. 902 */ 903 Q3_EXTERN_API_C ( TQ3StyleObject ) 904 Q3InterpolationStyle_New ( 905 TQ3InterpolationStyle interpolationStyle 906 ); 907 908 909 910 /*! 911 * @function 912 * Q3InterpolationStyle_Submit 913 * @discussion 914 * Submit an interpolation style to a view. 915 * 916 * @param interpolationStyle The interpolation style data. 917 * @param view The view to submit the style to. 918 * @result Success or failure of the operation. 919 */ 920 Q3_EXTERN_API_C ( TQ3Status ) 921 Q3InterpolationStyle_Submit ( 922 TQ3InterpolationStyle interpolationStyle, 923 TQ3ViewObject view 924 ); 925 926 927 928 /*! 929 * @function 930 * Q3InterpolationStyle_Get 931 * @discussion 932 * Get the data from an interpolation style. 933 * 934 * @param interpolationObject The style to query. 935 * @param interpolationStyle Receives the data from the style. 936 * @result Success or failure of the operation. 937 */ 938 Q3_EXTERN_API_C ( TQ3Status ) 939 Q3InterpolationStyle_Get ( 940 TQ3StyleObject interpolationObject, 941 TQ3InterpolationStyle *interpolationStyle 942 ); 943 944 945 946 /*! 947 * @function 948 * Q3InterpolationStyle_Set 949 * @discussion 950 * Set the data for an interpolation style. 951 * 952 * @param interpolationObject The style to update. 953 * @param interpolationStyle The new data for the style. 954 * @result Success or failure of the operation. 955 */ 956 Q3_EXTERN_API_C ( TQ3Status ) 957 Q3InterpolationStyle_Set ( 958 TQ3StyleObject interpolationObject, 959 TQ3InterpolationStyle interpolationStyle 960 ); 961 962 963 964 /*! 965 * @function 966 * Q3HighlightStyle_New 967 * @discussion 968 * Create a highlight style. 969 * 970 * @param highlightAttribute The highlight style set. 971 * @result The new highlight style. 972 */ 973 Q3_EXTERN_API_C ( TQ3StyleObject ) 974 Q3HighlightStyle_New ( 975 TQ3AttributeSet highlightAttribute 976 ); 977 978 979 980 /*! 981 * @function 982 * Q3HighlightStyle_Submit 983 * @discussion 984 * Submit a highlight style to a view. 985 * 986 * @param highlightAttribute The highlight style data. 987 * @param view The view to submit the style to. 988 * @result Success or failure of the operation. 989 */ 990 Q3_EXTERN_API_C ( TQ3Status ) 991 Q3HighlightStyle_Submit ( 992 TQ3AttributeSet highlightAttribute, 993 TQ3ViewObject view 994 ); 995 996 997 998 /*! 999 * @function 1000 * Q3HighlightStyle_Get 1001 * @discussion 1002 * Get the data from a highlight style. 1003 * 1004 * @param highlight The style to query. 1005 * @param highlightAttribute Receives the data from the style. 1006 * @result Success or failure of the operation. 1007 */ 1008 Q3_EXTERN_API_C ( TQ3Status ) 1009 Q3HighlightStyle_Get ( 1010 TQ3StyleObject highlight, 1011 TQ3AttributeSet *highlightAttribute 1012 ); 1013 1014 1015 1016 /*! 1017 * @function 1018 * Q3HighlightStyle_Set 1019 * @discussion 1020 * Set the data for a highlight style. 1021 * 1022 * @param highlight The style to update. 1023 * @param highlightAttribute The new data for the style. 1024 * @result Success or failure of the operation. 1025 */ 1026 Q3_EXTERN_API_C ( TQ3Status ) 1027 Q3HighlightStyle_Set ( 1028 TQ3StyleObject highlight, 1029 TQ3AttributeSet highlightAttribute 1030 ); 1031 1032 1033 1034 /*! 1035 * @function 1036 * Q3OrientationStyle_New 1037 * @discussion 1038 * Create an orientation style. 1039 * 1040 * @param frontFacingDirection The orientation style data. 1041 * @result The new orientation style. 1042 */ 1043 Q3_EXTERN_API_C ( TQ3StyleObject ) 1044 Q3OrientationStyle_New ( 1045 TQ3OrientationStyle frontFacingDirection 1046 ); 1047 1048 1049 1050 /*! 1051 * @function 1052 * Q3OrientationStyle_Submit 1053 * @discussion 1054 * Submit an orientation style to a view. 1055 * 1056 * @param frontFacingDirection The orientation style data. 1057 * @param view The view to submit the style to. 1058 * @result Success or failure of the operation. 1059 */ 1060 Q3_EXTERN_API_C ( TQ3Status ) 1061 Q3OrientationStyle_Submit ( 1062 TQ3OrientationStyle frontFacingDirection, 1063 TQ3ViewObject view 1064 ); 1065 1066 1067 1068 /*! 1069 * @function 1070 * Q3OrientationStyle_Get 1071 * @discussion 1072 * Get the data from an orientation style. 1073 * 1074 * @param frontFacingDirectionObject The style to query. 1075 * @param frontFacingDirection Receives the data from the style. 1076 * @result Success or failure of the operation. 1077 */ 1078 Q3_EXTERN_API_C ( TQ3Status ) 1079 Q3OrientationStyle_Get ( 1080 TQ3StyleObject frontFacingDirectionObject, 1081 TQ3OrientationStyle *frontFacingDirection 1082 ); 1083 1084 1085 1086 /*! 1087 * @function 1088 * Q3OrientationStyle_Set 1089 * @discussion 1090 * Set the data for an orientation style. 1091 * 1092 * @param frontFacingDirectionObject The style to update. 1093 * @param frontFacingDirection The new data for the style. 1094 * @result Success or failure of the operation. 1095 */ 1096 Q3_EXTERN_API_C ( TQ3Status ) 1097 Q3OrientationStyle_Set ( 1098 TQ3StyleObject frontFacingDirectionObject, 1099 TQ3OrientationStyle frontFacingDirection 1100 ); 1101 1102 1103 1104 /*! 1105 * @function 1106 * Q3AntiAliasStyle_New 1107 * @discussion 1108 * Create an anti-alias style. 1109 * 1110 * @param data The anti-alias style data. 1111 * @result The new anti-alias style. 1112 */ 1113 Q3_EXTERN_API_C ( TQ3StyleObject ) 1114 Q3AntiAliasStyle_New ( 1115 const TQ3AntiAliasStyleData *data 1116 ); 1117 1118 1119 1120 /*! 1121 * @function 1122 * Q3AntiAliasStyle_Submit 1123 * @discussion 1124 * Submit an anti-alias style to a view. 1125 * 1126 * @param data The anti-alias style data. 1127 * @param view The view to submit the style to. 1128 * @result Success or failure of the operation. 1129 */ 1130 Q3_EXTERN_API_C ( TQ3Status ) 1131 Q3AntiAliasStyle_Submit ( 1132 const TQ3AntiAliasStyleData *data, 1133 TQ3ViewObject view 1134 ); 1135 1136 1137 1138 /*! 1139 * @function 1140 * Q3AntiAliasStyle_GetData 1141 * @discussion 1142 * Get the data from an anti-alias style. 1143 * 1144 * @param styleObject The style to query. 1145 * @param data Receives the data from the style. 1146 * @result Success or failure of the operation. 1147 */ 1148 Q3_EXTERN_API_C ( TQ3Status ) 1149 Q3AntiAliasStyle_GetData ( 1150 TQ3StyleObject styleObject, 1151 TQ3AntiAliasStyleData *data 1152 ); 1153 1154 1155 1156 /*! 1157 * @function 1158 * Q3AntiAliasStyle_SetData 1159 * @discussion 1160 * Set the data for an anti-alias style. 1161 * 1162 * @param styleObject The style to update. 1163 * @param data The new data for the style. 1164 * @result Success or failure of the operation. 1165 */ 1166 Q3_EXTERN_API_C ( TQ3Status ) 1167 Q3AntiAliasStyle_SetData ( 1168 TQ3StyleObject styleObject, 1169 const TQ3AntiAliasStyleData *data 1170 ); 1171 1172 1173 1174 /*! 1175 * @function 1176 * Q3FogStyle_New 1177 * @discussion 1178 * Create a fog style. 1179 * 1180 * @param data The fog style data. 1181 * @result The new fog style. 1182 */ 1183 Q3_EXTERN_API_C ( TQ3StyleObject ) 1184 Q3FogStyle_New ( 1185 const TQ3FogStyleData *data 1186 ); 1187 1188 1189 1190 /*! 1191 * @function 1192 * Q3FogStyle_Submit 1193 * @discussion 1194 * Submit a fog style to a view. 1195 * 1196 * @param data The fog style data. 1197 * @param view The view to submit the style to. 1198 * @result Success or failure of the operation. 1199 */ 1200 Q3_EXTERN_API_C ( TQ3Status ) 1201 Q3FogStyle_Submit ( 1202 const TQ3FogStyleData *data, 1203 TQ3ViewObject view 1204 ); 1205 1206 1207 1208 /*! 1209 * @function 1210 * Q3FogStyle_GetData 1211 * @discussion 1212 * Get the data from a fog style. 1213 * 1214 * @param styleObject The style to query. 1215 * @param data Receives the data from the style. 1216 * @result Success or failure of the operation. 1217 */ 1218 Q3_EXTERN_API_C ( TQ3Status ) 1219 Q3FogStyle_GetData ( 1220 TQ3StyleObject styleObject, 1221 TQ3FogStyleData *data 1222 ); 1223 1224 1225 1226 /*! 1227 * @function 1228 * Q3FogStyle_SetData 1229 * @discussion 1230 * Set the data for a fog style. 1231 * 1232 * @param styleObject The style to update. 1233 * @param data The new data for the style. 1234 * @result Success or failure of the operation. 1235 */ 1236 Q3_EXTERN_API_C ( TQ3Status ) 1237 Q3FogStyle_SetData ( 1238 TQ3StyleObject styleObject, 1239 const TQ3FogStyleData *data 1240 ); 1241 1242 1243 1244 1245 1246 //============================================================================= 1247 // C++ postamble 1248 //----------------------------------------------------------------------------- 1249 #ifdef __cplusplus 1250 } 1251 #endif 1252 1253 #endif 1254 1255 1256