Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. <!ELEMENT OpenGLAPI (category?, xi:include?, OpenGLAPI?)+>
  2. <!ELEMENT category (type*, enum*, function*)*>
  3. <!ELEMENT type EMPTY>
  4. <!ELEMENT enum (size*)>
  5. <!ELEMENT size EMPTY>
  6. <!ELEMENT function (param*, return?, glx?)*>
  7. <!ELEMENT param EMPTY>
  8. <!ELEMENT return EMPTY>
  9. <!ELEMENT glx EMPTY>
  10.  
  11. <!ELEMENT xi:include (xi:fallback)?>
  12. <!ATTLIST xi:include
  13.           xmlns:xi  CDATA #FIXED "http://www.w3.org/2001/XInclude"
  14.           href       CDATA #REQUIRED
  15.           parse      (xml|text) "xml"
  16.           encoding   CDATA #IMPLIED>
  17. <!ELEMENT xi:fallback ANY>
  18. <!ATTLIST xi:fallback
  19.           xmlns:xi   CDATA #FIXED "http://www.w3.org/2001/XInclude">
  20.  
  21.  
  22. <!ATTLIST category name                NMTOKEN #REQUIRED
  23.                    number              NMTOKEN #IMPLIED
  24.                    window_system       NMTOKEN #IMPLIED>
  25. <!ATTLIST type     name                NMTOKEN #REQUIRED
  26.                    size                NMTOKEN #REQUIRED
  27.                    float               (true | false) "false"
  28.                    unsigned            (true | false) "false"
  29.                    pointer             (true | false) "false"
  30.                    glx_name            NMTOKEN #IMPLIED>
  31. <!ATTLIST enum     name                NMTOKEN #REQUIRED
  32.                    count               CDATA   #IMPLIED
  33.                    value               NMTOKEN #REQUIRED>
  34. <!ATTLIST function name                NMTOKEN #REQUIRED
  35.                    alias               NMTOKEN #IMPLIED
  36.                    offset              CDATA   #IMPLIED
  37.                    static_dispatch     (true | false) "true"
  38.                    vectorequiv         NMTOKEN #IMPLIED
  39.                    es1                 CDATA   "none"
  40.                    es2                 CDATA   "none"
  41.                    deprecated          CDATA   "none"
  42.                    exec                NMTOKEN #IMPLIED
  43.                    desktop             (true | false) "true">
  44. <!ATTLIST size     name                NMTOKEN #REQUIRED
  45.                    count               NMTOKEN #IMPLIED
  46.                    mode                (get | set) "set">
  47. <!ATTLIST param    name                NMTOKEN #REQUIRED
  48.                    type                CDATA   #REQUIRED
  49.                    client_only         (true | false) "false"
  50.                    count               NMTOKEN #IMPLIED
  51.                    counter             (true | false) "false"
  52.                    count_scale         NMTOKEN "1"
  53.                    output              (true | false) "false"
  54.                    padding             (true | false) "false"
  55.                    img_width           NMTOKEN #IMPLIED
  56.                    img_height          NMTOKEN #IMPLIED
  57.                    img_depth           NMTOKEN #IMPLIED
  58.                    img_extent          NMTOKEN #IMPLIED
  59.                    img_xoff            NMTOKEN #IMPLIED
  60.                    img_yoff            NMTOKEN #IMPLIED
  61.                    img_zoff            NMTOKEN #IMPLIED
  62.                    img_woff            NMTOKEN #IMPLIED
  63.                    img_format          NMTOKEN #IMPLIED
  64.                    img_type            NMTOKEN #IMPLIED
  65.                    img_target          NMTOKEN #IMPLIED
  66.                    img_send_null       (true | false) "false"
  67.                    img_null_flag       (true | false) "false"
  68.                    img_pad_dimensions  (true | false) "false"
  69.                    variable_param      NMTOKENS #IMPLIED>
  70. <!ATTLIST return   type                CDATA   "void">
  71. <!ATTLIST glx      rop                 NMTOKEN #IMPLIED
  72.                    sop                 NMTOKEN #IMPLIED
  73.                    vendorpriv          NMTOKEN #IMPLIED
  74.                    large               (true | false) "false"
  75.                    doubles_in_order    (true | false) "false"
  76.                    always_array        (true | false) "false"
  77.                    handcode            (true | false | client | server) "false"
  78.                    img_reset           NMTOKEN #IMPLIED
  79.                    dimensions_in_reply (true | false) "false"
  80.                    ignore              (true | false) "false">
  81.  
  82. <!--
  83. The various attributes for param and glx have the meanings listed below.
  84. When adding new functions, please annote them correctly.  In most cases this
  85. will just mean adding a '<glx ignore="true"/>' tag.
  86.  
  87. param:
  88.      name - name of the parameter
  89.      type - fully qualified type (e.g., with "const", etc.)
  90.      client_only - boolean flag set on parameters which are interpreted only
  91.          by the client and are not present in the protocol encoding (e.g.,
  92.          the stride parameters to Map1f, etc.)
  93.      count - for counted arrays (e.g., the 'lists' parameter to glCallLists),
  94.          the parameter or literal that represents the count.  For functions
  95.          like glVertex3fv it will be a litteral, for others it will be one of
  96.          the parameters.
  97.      counter - this parameter is a counter that will be referenced by the
  98.          'count' attribute in another parameter.
  99.      count_scale - literal value scale factor for the 'count' attribute.
  100.          See ProgramParameters4dvNV for an example.
  101.      output - this parameter is used to store the output of the function.
  102.      variable_param - name of parameter used to determine the number of
  103.          elements referenced by this parameter.  This should be the name of a
  104.          single enum parameter.  Most of the gl*Parameter[if]v functions use
  105.          this.  Additionally, the enums that can be passed should be properly
  106.          annotated.
  107.      img_width / img_height / img_depth / img_extent - name of parameters
  108.          (or hardcoded integer) used for the dimensions of pixel data.
  109.      img_xoff / img_yoff / img_zoff / img_woff - name of parameters used
  110.          for x, y, z, and w offsets of pixel data.
  111.      img_format - name of parameter used as the pixel data format.
  112.      img_type - name of parameter used as the pixel data type.
  113.      img_target - name of parameter used as a texture target.  Non-texture
  114.         pixel data should hardcode 0.
  115.      img_send_null - boolean flag to determine if blank pixel data should
  116.         be sent when a NULL pointer is passed.  This is only used by
  117.         TexImage1D and TexImage2D.
  118.      img_null_flag - boolean flag to determine if an extra flag is used to
  119.         determine if a NULL pixel pointer was passed.  This is used by
  120.         TexSubImage1D, TexSubImage2D, TexImage3D and others.
  121.      img_pad_dimensions - boolean flag to determine if dimension data and
  122.         offset data should be padded to the next even number of dimensions.
  123.         For example, this will insert an empty "height" field after the
  124.         "width" field in the protocol for TexImage1D.
  125.  
  126. glx:
  127.      rop - Opcode value for "render" commands
  128.      sop - Opcode value for "single" commands
  129.      vendorpriv - Opcode value for vendor private (or vendor private with
  130.          reply) commands
  131.      large - set to "true" of the render command can use RenderLarge protocol.
  132.      doubles_in_order - older commands always put GLdouble data at the
  133.          start of the render packet.  Newer commands (e.g.,
  134.          ProgramEnvParameter4dvARB) put the in the order that they appear
  135.          in the parameter list.
  136.      always_array - some single commands take reply data as an array or as
  137.          return value data (e.g., glGetLightfv).  Other single commands take
  138.          reply data only as an array (e.g., glGetClipPlane).
  139.      handcode - some functions are just too complicated to generate
  140.          (e.g., glSeperableFilter2D) or operate only on client-side data
  141.          (e.g., glVertexPointer) and must be handcoded.
  142.      ignore - some functions have an entry in the dispatch table, but aren't
  143.          suitable for protocol implementation (e.g., glLockArraysEXT).  This
  144.          also applies to functions that don't have any GLX protocol specified
  145.          (e.g., glGetFogFuncSGIS).
  146. -->
  147.