Per ML discussion.
+++ /dev/null
-# Sphinx build info version 1
-# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: e48279c15771d329f916579cf997b5a9
-tags: fbb0d17656682115ca4d033fb2f83ba1
+++ /dev/null
-Context
-=======
-
-The context object represents the purest, most directly accessible, abilities
-of the device's 3D rendering pipeline.
-
-Methods
--------
-
-CSO State
-^^^^^^^^^
-
-All CSO state is created, bound, and destroyed, with triplets of methods that
-all follow a specific naming scheme. For example, ``create_blend_state``,
-``bind_blend_state``, and ``destroy_blend_state``.
-
-CSO objects handled by the context object:
-
-* :ref:`Blend`: ``*_blend_state``
-* :ref:`Sampler`: These are special; they can be bound to either vertex or
- fragment samplers, and they are bound in groups.
- ``bind_fragment_sampler_states``, ``bind_vertex_sampler_states``
-* :ref:`Rasterizer`: ``*_rasterizer_state``
-* :ref:`Depth, Stencil, & Alpha`: ``*_depth_stencil_alpha_state``
-* :ref:`Shader`: These have two sets of methods. ``*_fs_state`` is for
- fragment shaders, and ``*_vs_state`` is for vertex shaders.
-
-
-Resource Binding State
-^^^^^^^^^^^^^^^^^^^^^^
-
-This state describes how resources in various flavours (textures,
-buffers, surfaces) are bound to the driver.
-
-
-* ``set_constant_buffer``
-* ``set_framebuffer_state``
-* ``set_fragment_sampler_textures``
-* ``set_vertex_sampler_textures``
-* ``set_vertex_buffers``
-
-
-Non-CSO State
-^^^^^^^^^^^^^
-
-These pieces of state are too small, variable, and/or trivial to have CSO
-objects. They all follow simple, one-method binding calls, e.g.
-``set_edgeflags``.
-
-* ``set_edgeflags``
-* ``set_blend_color``
-* ``set_clip_state``
-* ``set_polygon_stipple``
-* ``set_scissor_state``
-* ``set_viewport_state``
-* ``set_vertex_elements``
-
-
-Clearing
-^^^^^^^^
-
-``clear`` initializes some or all of the surfaces currently bound to
-the framebuffer to particular RGBA, depth, or stencil values.
-
-Clear is one of the most difficult concepts to nail down to a single
-interface and it seems likely that we will want to add additional
-clear paths, for instance clearing surfaces not bound to the
-framebuffer, or read-modify-write clears such as depth-only or
-stencil-only clears of packed depth-stencil buffers.
-
-
-Drawing
-^^^^^^^
-
-``draw_arrays``
-
-``draw_elements``
-
-``draw_range_elements``
-
-
-Queries
-^^^^^^^
-
-Queries gather some statistic from the 3D pipeline over one or more
-draws. Queries may be nested, though no state tracker currently
-exercises this.
-
-Queries can be created with ``create_query`` and deleted with
-``destroy_query``. To enable a query, use ``begin_query``, and when finished,
-use ``end_query`` to stop the query. Finally, ``get_query_result`` is used
-to retrieve the results.
-
-Flushing
-^^^^^^^^
-
-``flush``
-
-
-Resource Busy Queries
-^^^^^^^^^^^^^^^^^^^^^
-
-``is_texture_referenced``
-
-``is_buffer_referenced``
-
-
-
-Blitting
-^^^^^^^^
-
-These methods emulate classic blitter controls. They are not guaranteed to be
-available; if they are set to NULL, then they are not present.
-
-These methods operate directly on ``pipe_surface`` objects, and stand
-apart from any 3D state in the context. Blitting functionality may be
-moved to a separate abstraction at some point in the future.
-
-``surface_fill`` performs a fill operation on a section of a surface.
-
-``surface_copy`` blits a region of a surface to a region of another surface,
-provided that both surfaces are the same format. The source and destination
-may be the same surface, and overlapping blits are permitted.
-
-The interfaces to these calls are likely to change to make it easier
-for a driver to batch multiple blits with the same source and
-destination.
-
+++ /dev/null
-CSO
-===
-
-CSO, Constant State Objects, are a core part of Gallium's API.
-
-CSO work on the principle of reusable state; they are created by filling
-out a state object with the desired properties, then passing that object
-to a context. The context returns an opaque context-specific handle which
-can be bound at any time for the desired effect.
-
-.. toctree::
- :glob:
-
- cso/*
+++ /dev/null
-.. _blend:
-
-Blend
-=====
-
-This state controls blending of the final fragments into the target rendering
-buffers.
-
-XXX it is unresolved what behavior should result if blend_enable is off.
-
-Members
--------
-
-XXX undocumented members
+++ /dev/null
-.. _depth,stencil,&alpha:
-
-Depth, Stencil, & Alpha
-=======================
-
-These three states control the depth, stencil, and alpha tests, used to
-discard fragments that have passed through the fragment shader.
-
-Traditionally, these three tests have been clumped together in hardware, so
-they are all stored in one structure.
-
-During actual execution, the order of operations done on fragments is always:
-
-* Stencil
-* Depth
-* Alpha
-
-Depth Members
--------------
-
-enabled
- Whether the depth test is enabled.
-writemask
- Whether the depth buffer receives depth writes.
-func
- The depth test function. One of PIPE_FUNC.
-
-Stencil Members
----------------
-
-XXX document valuemask, writemask
-
-enabled
- Whether the stencil test is enabled. For the second stencil, whether the
- two-sided stencil is enabled.
-func
- The stencil test function. One of PIPE_FUNC.
-ref_value
- Stencil test reference value; used for certain functions.
-fail_op
- The operation to carry out if the stencil test fails. One of
- PIPE_STENCIL_OP.
-zfail_op
- The operation to carry out if the stencil test passes but the depth test
- fails. One of PIPE_STENCIL_OP.
-zpass_op
- The operation to carry out if the stencil test and depth test both pass.
- One of PIPE_STENCIL_OP.
-
-Alpha Members
--------------
-
-enabled
- Whether the alpha test is enabled.
-func
- The alpha test function. One of PIPE_FUNC.
-ref_value
- Alpha test reference value; used for certain functions.
+++ /dev/null
-.. _rasterizer:
-
-Rasterizer
-==========
-
-The rasterizer is the main chunk of state controlling how vertices are
-interpolated into fragments.
-
-Members
--------
-
-XXX undocumented light_twoside, front_winding, cull_mode, fill_cw, fill_ccw, offset_cw, offset_ccw
-XXX moar undocumented poly_smooth, line_stipple_factor, line_last_pixel, offset_units, offset_scale
-XXX sprite_coord_mode
-
-flatshade
- If set, the provoking vertex of each polygon is used to determine the
- color of the entire polygon. If not set, the color fragments will be
- interpolated from each vertex's color.
-scissor
- Whether the scissor test is enabled.
-poly_stipple_enable
- Whether polygon stippling is enabled.
-point_smooth
- Whether points should be smoothed. Point smoothing turns rectangular
- points into circles or ovals.
-point_sprite
- Whether point sprites are enabled.
-point_size_per_vertex
- Whether vertices have a point size element.
-multisample
- Whether :ref:`MSAA` is enabled.
-line_smooth
- Whether lines should be smoothed. Line smoothing is simply anti-aliasing.
-line_stipple_enable
- Whether line stippling is enabled.
-line_stipple_pattern
- 16-bit bitfield of on/off flags, used to pattern the line stipple.
-bypass_vs_clip_and_viewport
- Whether the entire TCL pipeline should be bypassed. This implies that
- vertices are pre-transformed for the viewport, and will not be run
- through the vertex shader. Note that implementations may still clip away
- vertices that are not in the viewport.
-flatshade_first
- Whether the first vertex should be the provoking vertex, for most
- primitives. If not set, the last vertex is the provoking vertex.
-gl_rasterization_rules
- Whether the rasterizer should use (0.5, 0.5) pixel centers. When not set,
- the rasterizer will use (0, 0) for pixel centers.
-line_width
- The width of lines.
-point_size
- The size of points, if not specified per-vertex.
-point_size_min
- The minimum size of points.
-point_size_max
- The maximum size of points.
-
-Notes
------
-
-flatshade
-^^^^^^^^^
-
-The actual interpolated shading algorithm is obviously
-implementation-dependent, but will usually be Gourard for most hardware.
-
-bypass_vs_clip_and_viewport
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When set, this implies that vertices are pre-transformed for the viewport, and
-will not be run through the vertex shader. Note that implementations may still
-clip away vertices that are not visible.
-
-flatshade_first
-^^^^^^^^^^^^^^^
-
-There are several important exceptions to the specification of this rule.
-
-* ``PIPE_PRIMITIVE_POLYGON``: The provoking vertex is always the first
- vertex. If the caller wishes to change the provoking vertex, they merely
- need to rotate the vertices themselves.
-* ``PIPE_PRIMITIVE_QUAD``, ``PIPE_PRIMITIVE_QUAD_STRIP``: This option has no
- effect; the provoking vertex is always the last vertex.
-* ``PIPE_PRIMITIVE_TRIANGLE_FAN``: When set, the provoking vertex is the
- second vertex, not the first. This permits each segment of the fan to have
- a different color.
+++ /dev/null
-.. _sampler:
-
-Sampler
-=======
-
-Texture units have many options for selecting texels from loaded textures;
-this state controls an individual texture unit's texel-sampling settings.
-
-Texture coordinates are always treated as four-dimensional, and referred to
-with the traditional (S, T, R, Q) notation.
-
-Members
--------
-
-XXX undocumented compare_mode, compare_func
-
-wrap_s
- How to wrap the S coordinate. One of PIPE_TEX_WRAP.
-wrap_t
- How to wrap the T coordinate. One of PIPE_TEX_WRAP.
-wrap_r
- How to wrap the R coordinate. One of PIPE_TEX_WRAP.
-min_img_filter
- The filter to use when minifying texels. One of PIPE_TEX_FILTER.
-min_mip_filter
- The filter to use when minifying mipmapped textures. One of
- PIPE_TEX_FILTER.
-mag_img_filter
- The filter to use when magnifying texels. One of PIPE_TEX_FILTER.
-normalized_coords
- Whether the texture coordinates are normalized. If normalized, they will
- always be in [0, 1]. If not, they will be in the range of each dimension
- of the loaded texture.
-prefilter
- XXX From the Doxy, "weird sampling state exposed by some APIs." Refine.
-lod_bias
- The bias to apply to the level of detail.
-min_lod
- Minimum level of detail, used to clamp LoD after bias.
-max_lod
- Maximum level of detail, used to clamp LoD after bias.
-border_color
- RGBA color used for out-of-bounds coordinates.
-max_anisotropy
- Maximum filtering to apply anisotropically to textures. Setting this to
- 1.0 effectively disables anisotropic filtering.
+++ /dev/null
-.. _shader:
-
-Shader
-======
-
-One of the two types of shaders supported by Gallium.
-
-Members
--------
-
-tokens
- A list of tgsi_tokens.
+++ /dev/null
-Glossary
-========
-
-.. glossary::
- :sorted:
-
- MSAA
- Multi-Sampled Anti-Aliasing. A basic anti-aliasing technique that takes
- multiple samples of the depth buffer, and uses this information to
- smooth the edges of polygons.
+++ /dev/null
-.. Gallium documentation master file, created by
- sphinx-quickstart on Sun Dec 20 14:09:05 2009.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to Gallium's documentation!
-===================================
-
-Contents:
-
-.. toctree::
- :maxdepth: 2
-
- intro
- tgsi
- screen
- context
- cso
- glossary
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
+++ /dev/null
-Introduction
-============
-
-What is Gallium?
-----------------
-
-Gallium is essentially an API for writing graphics drivers in a largely
-device-agnostic fashion. It provides several objects which encapsulate the
-core services of graphics hardware in a straightforward manner.
+++ /dev/null
-Screen
-======
-
-A screen is an object representing the context-independent part of a device.
-
-Methods
--------
-
-XXX moar; got bored
-
-get_name
-^^^^^^^^
-
-Returns an identifying name for the screen.
-
-get_vendor
-^^^^^^^^^^
-
-Returns the screen vendor.
-
-get_param
-^^^^^^^^^
-
-Get an integer/boolean screen parameter.
-
-get_paramf
-^^^^^^^^^^
-
-Get a floating-point screen parameter.
-
-is_format_supported
-^^^^^^^^^^^^^^^^^^^
-
-See if a format can be used in a specific manner.
-
-texture_create
-^^^^^^^^^^^^^^
-
-Given a template of texture setup, create a BO-backed texture.
+++ /dev/null
-TGSI
-====
-
-TGSI, Tungsten Graphics Shader Instructions, is an intermediate language
-for describing shaders. Since Gallium is inherently shaderful, shaders are
-an important part of the API. TGSI is the only intermediate representation
-used by all drivers.
-
-Instruction Set
----------------
-
-From GL_NV_vertex_program
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-ARL - Address Register Load
-
-.. math::
-
- dst.x = \lfloor src.x\rfloor
-
- dst.y = \lfloor src.y\rfloor
-
- dst.z = \lfloor src.z\rfloor
-
- dst.w = \lfloor src.w\rfloor
-
-
-MOV - Move
-
-.. math::
-
- dst.x = src.x
-
- dst.y = src.y
-
- dst.z = src.z
-
- dst.w = src.w
-
-
-LIT - Light Coefficients
-
-.. math::
-
- dst.x = 1
-
- dst.y = max(src.x, 0)
-
- dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0
-
- dst.w = 1
-
-
-RCP - Reciprocal
-
-.. math::
-
- dst.x = \frac{1}{src.x}
-
- dst.y = \frac{1}{src.x}
-
- dst.z = \frac{1}{src.x}
-
- dst.w = \frac{1}{src.x}
-
-
-RSQ - Reciprocal Square Root
-
-.. math::
-
- dst.x = \frac{1}{\sqrt{|src.x|}}
-
- dst.y = \frac{1}{\sqrt{|src.x|}}
-
- dst.z = \frac{1}{\sqrt{|src.x|}}
-
- dst.w = \frac{1}{\sqrt{|src.x|}}
-
-
-EXP - Approximate Exponential Base 2
-
-.. math::
-
- dst.x = 2^{\lfloor src.x\rfloor}
-
- dst.y = src.x - \lfloor src.x\rfloor
-
- dst.z = 2^{src.x}
-
- dst.w = 1
-
-
-LOG - Approximate Logarithm Base 2
-
-.. math::
-
- dst.x = \lfloor\log_2{|src.x|}\rfloor
-
- dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}}
-
- dst.z = \log_2{|src.x|}
-
- dst.w = 1
-
-
-MUL - Multiply
-
-.. math::
-
- dst.x = src0.x \times src1.x
-
- dst.y = src0.y \times src1.y
-
- dst.z = src0.z \times src1.z
-
- dst.w = src0.w \times src1.w
-
-
-ADD - Add
-
-.. math::
-
- dst.x = src0.x + src1.x
-
- dst.y = src0.y + src1.y
-
- dst.z = src0.z + src1.z
-
- dst.w = src0.w + src1.w
-
-
-DP3 - 3-component Dot Product
-
-.. math::
-
- dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
- dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
- dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
- dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
-
-DP4 - 4-component Dot Product
-
-.. math::
-
- dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
- dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
- dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
- dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
-
-DST - Distance Vector
-
-.. math::
-
- dst.x = 1
-
- dst.y = src0.y \times src1.y
-
- dst.z = src0.z
-
- dst.w = src1.w
-
-
-MIN - Minimum
-
-.. math::
-
- dst.x = min(src0.x, src1.x)
-
- dst.y = min(src0.y, src1.y)
-
- dst.z = min(src0.z, src1.z)
-
- dst.w = min(src0.w, src1.w)
-
-
-MAX - Maximum
-
-.. math::
-
- dst.x = max(src0.x, src1.x)
-
- dst.y = max(src0.y, src1.y)
-
- dst.z = max(src0.z, src1.z)
-
- dst.w = max(src0.w, src1.w)
-
-
-SLT - Set On Less Than
-
-.. math::
-
- dst.x = (src0.x < src1.x) ? 1 : 0
-
- dst.y = (src0.y < src1.y) ? 1 : 0
-
- dst.z = (src0.z < src1.z) ? 1 : 0
-
- dst.w = (src0.w < src1.w) ? 1 : 0
-
-
-SGE - Set On Greater Equal Than
-
-.. math::
-
- dst.x = (src0.x >= src1.x) ? 1 : 0
-
- dst.y = (src0.y >= src1.y) ? 1 : 0
-
- dst.z = (src0.z >= src1.z) ? 1 : 0
-
- dst.w = (src0.w >= src1.w) ? 1 : 0
-
-
-MAD - Multiply And Add
-
-.. math::
-
- dst.x = src0.x \times src1.x + src2.x
-
- dst.y = src0.y \times src1.y + src2.y
-
- dst.z = src0.z \times src1.z + src2.z
-
- dst.w = src0.w \times src1.w + src2.w
-
-
-SUB - Subtract
-
-.. math::
-
- dst.x = src0.x - src1.x
-
- dst.y = src0.y - src1.y
-
- dst.z = src0.z - src1.z
-
- dst.w = src0.w - src1.w
-
-
-LRP - Linear Interpolate
-
-.. math::
-
- dst.x = src0.x \times (src1.x - src2.x) + src2.x
-
- dst.y = src0.y \times (src1.y - src2.y) + src2.y
-
- dst.z = src0.z \times (src1.z - src2.z) + src2.z
-
- dst.w = src0.w \times (src1.w - src2.w) + src2.w
-
-
-CND - Condition
-
-.. math::
-
- dst.x = (src2.x > 0.5) ? src0.x : src1.x
-
- dst.y = (src2.y > 0.5) ? src0.y : src1.y
-
- dst.z = (src2.z > 0.5) ? src0.z : src1.z
-
- dst.w = (src2.w > 0.5) ? src0.w : src1.w
-
-
-DP2A - 2-component Dot Product And Add
-
-.. math::
-
- dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
- dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
- dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
- dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
-
-FRAC - Fraction
-
-.. math::
-
- dst.x = src.x - \lfloor src.x\rfloor
-
- dst.y = src.y - \lfloor src.y\rfloor
-
- dst.z = src.z - \lfloor src.z\rfloor
-
- dst.w = src.w - \lfloor src.w\rfloor
-
-
-CLAMP - Clamp
-
-.. math::
-
- dst.x = clamp(src0.x, src1.x, src2.x)
-
- dst.y = clamp(src0.y, src1.y, src2.y)
-
- dst.z = clamp(src0.z, src1.z, src2.z)
-
- dst.w = clamp(src0.w, src1.w, src2.w)
-
-
-FLR - Floor
-
-This is identical to ARL.
-
-.. math::
-
- dst.x = \lfloor src.x\rfloor
-
- dst.y = \lfloor src.y\rfloor
-
- dst.z = \lfloor src.z\rfloor
-
- dst.w = \lfloor src.w\rfloor
-
-
-ROUND - Round
-
-.. math::
-
- dst.x = round(src.x)
-
- dst.y = round(src.y)
-
- dst.z = round(src.z)
-
- dst.w = round(src.w)
-
-
-EX2 - Exponential Base 2
-
-.. math::
-
- dst.x = 2^{src.x}
-
- dst.y = 2^{src.x}
-
- dst.z = 2^{src.x}
-
- dst.w = 2^{src.x}
-
-
-LG2 - Logarithm Base 2
-
-.. math::
-
- dst.x = \log_2{src.x}
-
- dst.y = \log_2{src.x}
-
- dst.z = \log_2{src.x}
-
- dst.w = \log_2{src.x}
-
-
-POW - Power
-
-.. math::
-
- dst.x = src0.x^{src1.x}
-
- dst.y = src0.x^{src1.x}
-
- dst.z = src0.x^{src1.x}
-
- dst.w = src0.x^{src1.x}
-
-XPD - Cross Product
-
-.. math::
-
- dst.x = src0.y \times src1.z - src1.y \times src0.z
-
- dst.y = src0.z \times src1.x - src1.z \times src0.x
-
- dst.z = src0.x \times src1.y - src1.x \times src0.y
-
- dst.w = 1
-
-
-ABS - Absolute
-
-.. math::
-
- dst.x = |src.x|
-
- dst.y = |src.y|
-
- dst.z = |src.z|
-
- dst.w = |src.w|
-
-
-RCC - Reciprocal Clamped
-
-XXX cleanup on aisle three
-
-.. math::
-
- dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
- dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
- dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
- dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
-
-DPH - Homogeneous Dot Product
-
-.. math::
-
- dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
- dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
- dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
- dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
-
-COS - Cosine
-
-.. math::
-
- dst.x = \cos{src.x}
-
- dst.y = \cos{src.x}
-
- dst.z = \cos{src.x}
-
- dst.w = \cos{src.w}
-
-
-DDX - Derivative Relative To X
-
-.. math::
-
- dst.x = partialx(src.x)
-
- dst.y = partialx(src.y)
-
- dst.z = partialx(src.z)
-
- dst.w = partialx(src.w)
-
-
-DDY - Derivative Relative To Y
-
-.. math::
-
- dst.x = partialy(src.x)
-
- dst.y = partialy(src.y)
-
- dst.z = partialy(src.z)
-
- dst.w = partialy(src.w)
-
-
-KILP - Predicated Discard
-
- discard
-
-
-PK2H - Pack Two 16-bit Floats
-
- TBD
-
-
-PK2US - Pack Two Unsigned 16-bit Scalars
-
- TBD
-
-
-PK4B - Pack Four Signed 8-bit Scalars
-
- TBD
-
-
-PK4UB - Pack Four Unsigned 8-bit Scalars
-
- TBD
-
-
-RFL - Reflection Vector
-
-.. math::
-
- dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x
-
- dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y
-
- dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z
-
- dst.w = 1
-
-Considered for removal.
-
-
-SEQ - Set On Equal
-
-.. math::
-
- dst.x = (src0.x == src1.x) ? 1 : 0
- dst.y = (src0.y == src1.y) ? 1 : 0
- dst.z = (src0.z == src1.z) ? 1 : 0
- dst.w = (src0.w == src1.w) ? 1 : 0
-
-
-SFL - Set On False
-
-.. math::
-
- dst.x = 0
- dst.y = 0
- dst.z = 0
- dst.w = 0
-
-Considered for removal.
-
-SGT - Set On Greater Than
-
-.. math::
-
- dst.x = (src0.x > src1.x) ? 1 : 0
- dst.y = (src0.y > src1.y) ? 1 : 0
- dst.z = (src0.z > src1.z) ? 1 : 0
- dst.w = (src0.w > src1.w) ? 1 : 0
-
-
-SIN - Sine
-
-.. math::
-
- dst.x = \sin{src.x}
-
- dst.y = \sin{src.x}
-
- dst.z = \sin{src.x}
-
- dst.w = \sin{src.w}
-
-
-SLE - Set On Less Equal Than
-
-.. math::
-
- dst.x = (src0.x <= src1.x) ? 1 : 0
- dst.y = (src0.y <= src1.y) ? 1 : 0
- dst.z = (src0.z <= src1.z) ? 1 : 0
- dst.w = (src0.w <= src1.w) ? 1 : 0
-
-
-SNE - Set On Not Equal
-
-.. math::
-
- dst.x = (src0.x != src1.x) ? 1 : 0
- dst.y = (src0.y != src1.y) ? 1 : 0
- dst.z = (src0.z != src1.z) ? 1 : 0
- dst.w = (src0.w != src1.w) ? 1 : 0
-
-
-STR - Set On True
-
-.. math::
-
- dst.x = 1
- dst.y = 1
- dst.z = 1
- dst.w = 1
-
-
-TEX - Texture Lookup
-
- TBD
-
-
-TXD - Texture Lookup with Derivatives
-
- TBD
-
-
-TXP - Projective Texture Lookup
-
- TBD
-
-
-UP2H - Unpack Two 16-Bit Floats
-
- TBD
-
- Considered for removal.
-
-UP2US - Unpack Two Unsigned 16-Bit Scalars
-
- TBD
-
- Considered for removal.
-
-UP4B - Unpack Four Signed 8-Bit Values
-
- TBD
-
- Considered for removal.
-
-UP4UB - Unpack Four Unsigned 8-Bit Scalars
-
- TBD
-
- Considered for removal.
-
-X2D - 2D Coordinate Transformation
-
-.. math::
-
- dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y
- dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w
- dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y
- dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w
-
-Considered for removal.
-
-
-From GL_NV_vertex_program2
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-ARA - Address Register Add
-
- TBD
-
- Considered for removal.
-
-ARR - Address Register Load With Round
-
-.. math::
-
- dst.x = round(src.x)
-
- dst.y = round(src.y)
-
- dst.z = round(src.z)
-
- dst.w = round(src.w)
-
-
-BRA - Branch
-
- pc = target
-
- Considered for removal.
-
-CAL - Subroutine Call
-
- push(pc)
- pc = target
-
-
-RET - Subroutine Call Return
-
- pc = pop()
-
- Potential restrictions:
- \times Only occurs at end of function.
-
-SSG - Set Sign
-
-.. math::
-
- dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0
-
- dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0
-
- dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0
-
- dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0
-
-
-CMP - Compare
-
-.. math::
-
- dst.x = (src0.x < 0) ? src1.x : src2.x
-
- dst.y = (src0.y < 0) ? src1.y : src2.y
-
- dst.z = (src0.z < 0) ? src1.z : src2.z
-
- dst.w = (src0.w < 0) ? src1.w : src2.w
-
-
-KIL - Conditional Discard
-
-.. math::
-
- if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0)
- discard
- endif
-
-
-SCS - Sine Cosine
-
-.. math::
-
- dst.x = \cos{src.x}
-
- dst.y = \sin{src.x}
-
- dst.z = 0
-
- dst.y = 1
-
-
-TXB - Texture Lookup With Bias
-
- TBD
-
-
-NRM - 3-component Vector Normalise
-
-.. math::
-
- dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
- dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
- dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
- dst.w = 1
-
-
-DIV - Divide
-
-.. math::
-
- dst.x = \frac{src0.x}{src1.x}
-
- dst.y = \frac{src0.y}{src1.y}
-
- dst.z = \frac{src0.z}{src1.z}
-
- dst.w = \frac{src0.w}{src1.w}
-
-
-DP2 - 2-component Dot Product
-
-.. math::
-
- dst.x = src0.x \times src1.x + src0.y \times src1.y
-
- dst.y = src0.x \times src1.x + src0.y \times src1.y
-
- dst.z = src0.x \times src1.x + src0.y \times src1.y
-
- dst.w = src0.x \times src1.x + src0.y \times src1.y
-
-
-TXL - Texture Lookup With LOD
-
- TBD
-
-
-BRK - Break
-
- TBD
-
-
-IF - If
-
- TBD
-
-
-BGNFOR - Begin a For-Loop
-
- dst.x = floor(src.x)
- dst.y = floor(src.y)
- dst.z = floor(src.z)
-
- if (dst.y <= 0)
- pc = [matching ENDFOR] + 1
- endif
-
- Note: The destination must be a loop register.
- The source must be a constant register.
-
- Considered for cleanup / removal.
-
-
-REP - Repeat
-
- TBD
-
-
-ELSE - Else
-
- TBD
-
-
-ENDIF - End If
-
- TBD
-
-
-ENDFOR - End a For-Loop
-
- dst.x = dst.x + dst.z
- dst.y = dst.y - 1.0
-
- if (dst.y > 0)
- pc = [matching BGNFOR instruction] + 1
- endif
-
- Note: The destination must be a loop register.
-
- Considered for cleanup / removal.
-
-ENDREP - End Repeat
-
- TBD
-
-
-PUSHA - Push Address Register On Stack
-
- push(src.x)
- push(src.y)
- push(src.z)
- push(src.w)
-
- Considered for cleanup / removal.
-
-POPA - Pop Address Register From Stack
-
- dst.w = pop()
- dst.z = pop()
- dst.y = pop()
- dst.x = pop()
-
- Considered for cleanup / removal.
-
-
-From GL_NV_gpu_program4
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-Support for these opcodes indicated by a special pipe capability bit (TBD).
-
-CEIL - Ceiling
-
-.. math::
-
- dst.x = \lceil src.x\rceil
-
- dst.y = \lceil src.y\rceil
-
- dst.z = \lceil src.z\rceil
-
- dst.w = \lceil src.w\rceil
-
-
-I2F - Integer To Float
-
-.. math::
-
- dst.x = (float) src.x
-
- dst.y = (float) src.y
-
- dst.z = (float) src.z
-
- dst.w = (float) src.w
-
-
-NOT - Bitwise Not
-
-.. math::
-
- dst.x = ~src.x
-
- dst.y = ~src.y
-
- dst.z = ~src.z
-
- dst.w = ~src.w
-
-
-TRUNC - Truncate
-
-XXX how is this different from floor?
-
-.. math::
-
- dst.x = trunc(src.x)
-
- dst.y = trunc(src.y)
-
- dst.z = trunc(src.z)
-
- dst.w = trunc(src.w)
-
-
-SHL - Shift Left
-
-.. math::
-
- dst.x = src0.x << src1.x
-
- dst.y = src0.y << src1.x
-
- dst.z = src0.z << src1.x
-
- dst.w = src0.w << src1.x
-
-
-SHR - Shift Right
-
-.. math::
-
- dst.x = src0.x >> src1.x
-
- dst.y = src0.y >> src1.x
-
- dst.z = src0.z >> src1.x
-
- dst.w = src0.w >> src1.x
-
-
-AND - Bitwise And
-
-.. math::
-
- dst.x = src0.x & src1.x
-
- dst.y = src0.y & src1.y
-
- dst.z = src0.z & src1.z
-
- dst.w = src0.w & src1.w
-
-
-OR - Bitwise Or
-
-.. math::
-
- dst.x = src0.x | src1.x
-
- dst.y = src0.y | src1.y
-
- dst.z = src0.z | src1.z
-
- dst.w = src0.w | src1.w
-
-
-MOD - Modulus
-
-.. math::
-
- dst.x = src0.x \bmod src1.x
-
- dst.y = src0.y \bmod src1.y
-
- dst.z = src0.z \bmod src1.z
-
- dst.w = src0.w \bmod src1.w
-
-
-XOR - Bitwise Xor
-
-.. math::
-
- dst.x = src0.x ^ src1.x
-
- dst.y = src0.y ^ src1.y
-
- dst.z = src0.z ^ src1.z
-
- dst.w = src0.w ^ src1.w
-
-
-SAD - Sum Of Absolute Differences
-
-.. math::
-
- dst.x = |src0.x - src1.x| + src2.x
-
- dst.y = |src0.y - src1.y| + src2.y
-
- dst.z = |src0.z - src1.z| + src2.z
-
- dst.w = |src0.w - src1.w| + src2.w
-
-
-TXF - Texel Fetch
-
- TBD
-
-
-TXQ - Texture Size Query
-
- TBD
-
-
-CONT - Continue
-
- TBD
-
-
-From GL_NV_geometry_program4
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-
-EMIT - Emit
-
- TBD
-
-
-ENDPRIM - End Primitive
-
- TBD
-
-
-From GLSL
-^^^^^^^^^^
-
-
-BGNLOOP - Begin a Loop
-
- TBD
-
-
-BGNSUB - Begin Subroutine
-
- TBD
-
-
-ENDLOOP - End a Loop
-
- TBD
-
-
-ENDSUB - End Subroutine
-
- TBD
-
-
-
-NOP - No Operation
-
- Do nothing.
-
-NRM4 - 4-component Vector Normalise
-
-.. math::
-
- dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
- dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
- dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
- dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
-
-ps_2_x
-^^^^^^^^^^^^
-
-
-CALLNZ - Subroutine Call If Not Zero
-
- TBD
-
-
-IFC - If
-
- TBD
-
-
-BREAKC - Break Conditional
-
- TBD
-
-
-Explanation of symbols used
-------------------------------
-
-
-Functions
-^^^^^^^^^^^^^^
-
-
- :math:`|x|` Absolute value of `x`.
-
- :math:`\lceil x \rceil` Ceiling of `x`.
-
- clamp(x,y,z) Clamp x between y and z.
- (x < y) ? y : (x > z) ? z : x
-
- :math:`\lfloor x\rfloor` Floor of `x`.
-
- :math:`\log_2{x}` Logarithm of `x`, base 2.
-
- max(x,y) Maximum of x and y.
- (x > y) ? x : y
-
- min(x,y) Minimum of x and y.
- (x < y) ? x : y
-
- partialx(x) Derivative of x relative to fragment's X.
-
- partialy(x) Derivative of x relative to fragment's Y.
-
- pop() Pop from stack.
-
- :math:`x^y` `x` to the power `y`.
-
- push(x) Push x on stack.
-
- round(x) Round x.
-
- trunc(x) Truncate x.
-
-
-Keywords
-^^^^^^^^^^^^^
-
-
- discard Discard fragment.
-
- dst First destination register.
-
- dst0 First destination register.
-
- pc Program counter.
-
- src First source register.
-
- src0 First source register.
-
- src1 Second source register.
-
- src2 Third source register.
-
- target Label of target instruction.
-
-
-Other tokens
----------------
-
-
-Declaration Semantic
-^^^^^^^^^^^^^^^^^^^^^^^^
-
-
- Follows Declaration token if Semantic bit is set.
-
- Since its purpose is to link a shader with other stages of the pipeline,
- it is valid to follow only those Declaration tokens that declare a register
- either in INPUT or OUTPUT file.
-
- SemanticName field contains the semantic name of the register being declared.
- There is no default value.
-
- SemanticIndex is an optional subscript that can be used to distinguish
- different register declarations with the same semantic name. The default value
- is 0.
-
- The meanings of the individual semantic names are explained in the following
- sections.
-
-TGSI_SEMANTIC_POSITION
-""""""""""""""""""""""
-
-Position, sometimes known as HPOS or WPOS for historical reasons, is the
-location of the vertex in space, in ``(x, y, z, w)`` format. ``x``, ``y``, and ``z``
-are the Cartesian coordinates, and ``w`` is the homogenous coordinate and used
-for the perspective divide, if enabled.
-
-As a vertex shader output, position should be scaled to the viewport. When
-used in fragment shaders, position will ---
-
-XXX --- wait a minute. Should position be in [0,1] for x and y?
-
-XXX additionally, is there a way to configure the perspective divide? it's
-accelerated on most chipsets AFAIK...
-
-Position, if not specified, usually defaults to ``(0, 0, 0, 1)``, and can
-be partially specified as ``(x, y, 0, 1)`` or ``(x, y, z, 1)``.
-
-XXX usually? can we solidify that?
-
-TGSI_SEMANTIC_COLOR
-"""""""""""""""""""
-
-Colors are used to, well, color the primitives. Colors are always in
-``(r, g, b, a)`` format.
-
-If alpha is not specified, it defaults to 1.
-
-TGSI_SEMANTIC_BCOLOR
-""""""""""""""""""""
-
-Back-facing colors are only used for back-facing polygons, and are only valid
-in vertex shader outputs. After rasterization, all polygons are front-facing
-and COLOR and BCOLOR end up occupying the same slots in the fragment, so
-all BCOLORs effectively become regular COLORs in the fragment shader.
-
-TGSI_SEMANTIC_FOG
-"""""""""""""""""
-
-The fog coordinate historically has been used to replace the depth coordinate
-for generation of fog in dedicated fog blocks. Gallium, however, does not use
-dedicated fog acceleration, placing it entirely in the fragment shader
-instead.
-
-The fog coordinate should be written in ``(f, 0, 0, 1)`` format. Only the first
-component matters when writing from the vertex shader; the driver will ensure
-that the coordinate is in this format when used as a fragment shader input.
-
-TGSI_SEMANTIC_PSIZE
-"""""""""""""""""""
-
-PSIZE, or point size, is used to specify point sizes per-vertex. It should
-be in ``(p, n, x, f)`` format, where ``p`` is the point size, ``n`` is the minimum
-size, ``x`` is the maximum size, and ``f`` is the fade threshold.
-
-XXX this is arb_vp. is this what we actually do? should double-check...
-
-When using this semantic, be sure to set the appropriate state in the
-:ref:`rasterizer` first.
-
-TGSI_SEMANTIC_GENERIC
-"""""""""""""""""""""
-
-Generic semantics are nearly always used for texture coordinate attributes,
-in ``(s, t, r, q)`` format. ``t`` and ``r`` may be unused for certain kinds
-of lookups, and ``q`` is the level-of-detail bias for biased sampling.
-
-These attributes are called "generic" because they may be used for anything
-else, including parameters, texture generation information, or anything that
-can be stored inside a four-component vector.
-
-TGSI_SEMANTIC_NORMAL
-""""""""""""""""""""
-
-XXX no clue.
-
-TGSI_SEMANTIC_FACE
-""""""""""""""""""
-
-FACE is the facing bit, to store the facing information for the fragment
-shader. ``(f, 0, 0, 1)`` is the format. The first component will be positive
-when the fragment is front-facing, and negative when the component is
-back-facing.
-
-TGSI_SEMANTIC_EDGEFLAG
-""""""""""""""""""""""
-
-XXX no clue
+++ /dev/null
-/**
- * Sphinx stylesheet -- basic theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-/* -- main layout ----------------------------------------------------------- */
-
-div.clearer {
- clear: both;
-}
-
-/* -- relbar ---------------------------------------------------------------- */
-
-div.related {
- width: 100%;
- font-size: 90%;
-}
-
-div.related h3 {
- display: none;
-}
-
-div.related ul {
- margin: 0;
- padding: 0 0 0 10px;
- list-style: none;
-}
-
-div.related li {
- display: inline;
-}
-
-div.related li.right {
- float: right;
- margin-right: 5px;
-}
-
-/* -- sidebar --------------------------------------------------------------- */
-
-div.sphinxsidebarwrapper {
- padding: 10px 5px 0 10px;
-}
-
-div.sphinxsidebar {
- float: left;
- width: 230px;
- margin-left: -100%;
- font-size: 90%;
-}
-
-div.sphinxsidebar ul {
- list-style: none;
-}
-
-div.sphinxsidebar ul ul,
-div.sphinxsidebar ul.want-points {
- margin-left: 20px;
- list-style: square;
-}
-
-div.sphinxsidebar ul ul {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-div.sphinxsidebar form {
- margin-top: 10px;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-img {
- border: 0;
-}
-
-/* -- search page ----------------------------------------------------------- */
-
-ul.search {
- margin: 10px 0 0 20px;
- padding: 0;
-}
-
-ul.search li {
- padding: 5px 0 5px 20px;
- background-image: url(file.png);
- background-repeat: no-repeat;
- background-position: 0 7px;
-}
-
-ul.search li a {
- font-weight: bold;
-}
-
-ul.search li div.context {
- color: #888;
- margin: 2px 0 0 30px;
- text-align: left;
-}
-
-ul.keywordmatches li.goodmatch a {
- font-weight: bold;
-}
-
-/* -- index page ------------------------------------------------------------ */
-
-table.contentstable {
- width: 90%;
-}
-
-table.contentstable p.biglink {
- line-height: 150%;
-}
-
-a.biglink {
- font-size: 1.3em;
-}
-
-span.linkdescr {
- font-style: italic;
- padding-top: 5px;
- font-size: 90%;
-}
-
-/* -- general index --------------------------------------------------------- */
-
-table.indextable td {
- text-align: left;
- vertical-align: top;
-}
-
-table.indextable dl, table.indextable dd {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-table.indextable tr.pcap {
- height: 10px;
-}
-
-table.indextable tr.cap {
- margin-top: 10px;
- background-color: #f2f2f2;
-}
-
-img.toggler {
- margin-right: 3px;
- margin-top: 3px;
- cursor: pointer;
-}
-
-/* -- general body styles --------------------------------------------------- */
-
-a.headerlink {
- visibility: hidden;
-}
-
-h1:hover > a.headerlink,
-h2:hover > a.headerlink,
-h3:hover > a.headerlink,
-h4:hover > a.headerlink,
-h5:hover > a.headerlink,
-h6:hover > a.headerlink,
-dt:hover > a.headerlink {
- visibility: visible;
-}
-
-div.body p.caption {
- text-align: inherit;
-}
-
-div.body td {
- text-align: left;
-}
-
-.field-list ul {
- padding-left: 1em;
-}
-
-.first {
- margin-top: 0 !important;
-}
-
-p.rubric {
- margin-top: 30px;
- font-weight: bold;
-}
-
-/* -- sidebars -------------------------------------------------------------- */
-
-div.sidebar {
- margin: 0 0 0.5em 1em;
- border: 1px solid #ddb;
- padding: 7px 7px 0 7px;
- background-color: #ffe;
- width: 40%;
- float: right;
-}
-
-p.sidebar-title {
- font-weight: bold;
-}
-
-/* -- topics ---------------------------------------------------------------- */
-
-div.topic {
- border: 1px solid #ccc;
- padding: 7px 7px 0 7px;
- margin: 10px 0 10px 0;
-}
-
-p.topic-title {
- font-size: 1.1em;
- font-weight: bold;
- margin-top: 10px;
-}
-
-/* -- admonitions ----------------------------------------------------------- */
-
-div.admonition {
- margin-top: 10px;
- margin-bottom: 10px;
- padding: 7px;
-}
-
-div.admonition dt {
- font-weight: bold;
-}
-
-div.admonition dl {
- margin-bottom: 0;
-}
-
-p.admonition-title {
- margin: 0px 10px 5px 0px;
- font-weight: bold;
-}
-
-div.body p.centered {
- text-align: center;
- margin-top: 25px;
-}
-
-/* -- tables ---------------------------------------------------------------- */
-
-table.docutils {
- border: 0;
- border-collapse: collapse;
-}
-
-table.docutils td, table.docutils th {
- padding: 1px 8px 1px 0;
- border-top: 0;
- border-left: 0;
- border-right: 0;
- border-bottom: 1px solid #aaa;
-}
-
-table.field-list td, table.field-list th {
- border: 0 !important;
-}
-
-table.footnote td, table.footnote th {
- border: 0 !important;
-}
-
-th {
- text-align: left;
- padding-right: 5px;
-}
-
-/* -- other body styles ----------------------------------------------------- */
-
-dl {
- margin-bottom: 15px;
-}
-
-dd p {
- margin-top: 0px;
-}
-
-dd ul, dd table {
- margin-bottom: 10px;
-}
-
-dd {
- margin-top: 3px;
- margin-bottom: 10px;
- margin-left: 30px;
-}
-
-dt:target, .highlight {
- background-color: #fbe54e;
-}
-
-dl.glossary dt {
- font-weight: bold;
- font-size: 1.1em;
-}
-
-.field-list ul {
- margin: 0;
- padding-left: 1em;
-}
-
-.field-list p {
- margin: 0;
-}
-
-.refcount {
- color: #060;
-}
-
-.optional {
- font-size: 1.3em;
-}
-
-.versionmodified {
- font-style: italic;
-}
-
-.system-message {
- background-color: #fda;
- padding: 5px;
- border: 3px solid red;
-}
-
-.footnote:target {
- background-color: #ffa
-}
-
-/* -- code displays --------------------------------------------------------- */
-
-pre {
- overflow: auto;
-}
-
-td.linenos pre {
- padding: 5px 0px;
- border: 0;
- background-color: transparent;
- color: #aaa;
-}
-
-table.highlighttable {
- margin-left: 0.5em;
-}
-
-table.highlighttable td {
- padding: 0 0.5em 0 0.5em;
-}
-
-tt.descname {
- background-color: transparent;
- font-weight: bold;
- font-size: 1.2em;
-}
-
-tt.descclassname {
- background-color: transparent;
-}
-
-tt.xref, a tt {
- background-color: transparent;
- font-weight: bold;
-}
-
-h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
- background-color: transparent;
-}
-
-/* -- math display ---------------------------------------------------------- */
-
-img.math {
- vertical-align: middle;
-}
-
-div.body div.math p {
- text-align: center;
-}
-
-span.eqno {
- float: right;
-}
-
-/* -- printout stylesheet --------------------------------------------------- */
-
-@media print {
- div.document,
- div.documentwrapper,
- div.bodywrapper {
- margin: 0;
- width: 100%;
- }
-
- div.sphinxsidebar,
- div.related,
- div.footer,
- #top-link {
- display: none;
- }
-}
+++ /dev/null
-/**
- * Sphinx stylesheet -- default theme
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
- font-family: sans-serif;
- font-size: 100%;
- background-color: #11303d;
- color: #000;
- margin: 0;
- padding: 0;
-}
-
-div.document {
- background-color: #1c4e63;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 230px;
-}
-
-div.body {
- background-color: #ffffff;
- color: #000000;
- padding: 0 20px 30px 20px;
-}
-
-div.footer {
- color: #ffffff;
- width: 100%;
- padding: 9px 0 9px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #ffffff;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #133f52;
- line-height: 30px;
- color: #ffffff;
-}
-
-div.related a {
- color: #ffffff;
-}
-
-div.sphinxsidebar {
-}
-
-div.sphinxsidebar h3 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.4em;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-
-div.sphinxsidebar h3 a {
- color: #ffffff;
-}
-
-div.sphinxsidebar h4 {
- font-family: 'Trebuchet MS', sans-serif;
- color: #ffffff;
- font-size: 1.3em;
- font-weight: normal;
- margin: 5px 0 0 0;
- padding: 0;
-}
-
-div.sphinxsidebar p {
- color: #ffffff;
-}
-
-div.sphinxsidebar p.topless {
- margin: 5px 10px 10px 10px;
-}
-
-div.sphinxsidebar ul {
- margin: 10px;
- padding: 0;
- color: #ffffff;
-}
-
-div.sphinxsidebar a {
- color: #98dbcc;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #98dbcc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
- color: #355f7c;
- text-decoration: none;
-}
-
-a:hover {
- text-decoration: underline;
-}
-
-div.body p, div.body dd, div.body li {
- text-align: justify;
- line-height: 130%;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- font-family: 'Trebuchet MS', sans-serif;
- background-color: #f2f2f2;
- font-weight: normal;
- color: #20435c;
- border-bottom: 1px solid #ccc;
- margin: 20px -20px 10px -20px;
- padding: 3px 0 3px 10px;
-}
-
-div.body h1 { margin-top: 0; font-size: 200%; }
-div.body h2 { font-size: 160%; }
-div.body h3 { font-size: 140%; }
-div.body h4 { font-size: 120%; }
-div.body h5 { font-size: 110%; }
-div.body h6 { font-size: 100%; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- text-align: justify;
- line-height: 130%;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.note {
- background-color: #eee;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #eee;
-}
-
-div.warning {
- background-color: #ffe4e4;
- border: 1px solid #f66;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 5px;
- background-color: #eeffcc;
- color: #333333;
- line-height: 120%;
- border: 1px solid #ac9;
- border-left: none;
- border-right: none;
-}
-
-tt {
- background-color: #ecf0f3;
- padding: 0 1px 0 1px;
- font-size: 0.95em;
-}
\ No newline at end of file
+++ /dev/null
-/// XXX: make it cross browser
-
-/**
- * make the code below compatible with browsers without
- * an installed firebug like debugger
- */
-if (!window.console || !console.firebug) {
- var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
- "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
- window.console = {};
- for (var i = 0; i < names.length; ++i)
- window.console[names[i]] = function() {}
-}
-
-/**
- * small helper function to urldecode strings
- */
-jQuery.urldecode = function(x) {
- return decodeURIComponent(x).replace(/\+/g, ' ');
-}
-
-/**
- * small helper function to urlencode strings
- */
-jQuery.urlencode = encodeURIComponent;
-
-/**
- * This function returns the parsed url parameters of the
- * current request. Multiple values per key are supported,
- * it will always return arrays of strings for the value parts.
- */
-jQuery.getQueryParameters = function(s) {
- if (typeof s == 'undefined')
- s = document.location.search;
- var parts = s.substr(s.indexOf('?') + 1).split('&');
- var result = {};
- for (var i = 0; i < parts.length; i++) {
- var tmp = parts[i].split('=', 2);
- var key = jQuery.urldecode(tmp[0]);
- var value = jQuery.urldecode(tmp[1]);
- if (key in result)
- result[key].push(value);
- else
- result[key] = [value];
- }
- return result;
-}
-
-/**
- * small function to check if an array contains
- * a given item.
- */
-jQuery.contains = function(arr, item) {
- for (var i = 0; i < arr.length; i++) {
- if (arr[i] == item)
- return true;
- }
- return false;
-}
-
-/**
- * highlight a given string on a jquery object by wrapping it in
- * span elements with the given class name.
- */
-jQuery.fn.highlightText = function(text, className) {
- function highlight(node) {
- if (node.nodeType == 3) {
- var val = node.nodeValue;
- var pos = val.toLowerCase().indexOf(text);
- if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) {
- var span = document.createElement("span");
- span.className = className;
- span.appendChild(document.createTextNode(val.substr(pos, text.length)));
- node.parentNode.insertBefore(span, node.parentNode.insertBefore(
- document.createTextNode(val.substr(pos + text.length)),
- node.nextSibling));
- node.nodeValue = val.substr(0, pos);
- }
- }
- else if (!jQuery(node).is("button, select, textarea")) {
- jQuery.each(node.childNodes, function() {
- highlight(this)
- });
- }
- }
- return this.each(function() {
- highlight(this);
- });
-}
-
-/**
- * Small JavaScript module for the documentation.
- */
-var Documentation = {
-
- init : function() {
- this.fixFirefoxAnchorBug();
- this.highlightSearchWords();
- this.initModIndex();
- },
-
- /**
- * i18n support
- */
- TRANSLATIONS : {},
- PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; },
- LOCALE : 'unknown',
-
- // gettext and ngettext don't access this so that the functions
- // can savely bound to a different name (_ = Documentation.gettext)
- gettext : function(string) {
- var translated = Documentation.TRANSLATIONS[string];
- if (typeof translated == 'undefined')
- return string;
- return (typeof translated == 'string') ? translated : translated[0];
- },
-
- ngettext : function(singular, plural, n) {
- var translated = Documentation.TRANSLATIONS[singular];
- if (typeof translated == 'undefined')
- return (n == 1) ? singular : plural;
- return translated[Documentation.PLURALEXPR(n)];
- },
-
- addTranslations : function(catalog) {
- for (var key in catalog.messages)
- this.TRANSLATIONS[key] = catalog.messages[key];
- this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')');
- this.LOCALE = catalog.locale;
- },
-
- /**
- * add context elements like header anchor links
- */
- addContextElements : function() {
- $('div[id] > :header:first').each(function() {
- $('<a class="headerlink">\u00B6</a>').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this headline')).
- appendTo(this);
- });
- $('dt[id]').each(function() {
- $('<a class="headerlink">\u00B6</a>').
- attr('href', '#' + this.id).
- attr('title', _('Permalink to this definition')).
- appendTo(this);
- });
- },
-
- /**
- * workaround a firefox stupidity
- */
- fixFirefoxAnchorBug : function() {
- if (document.location.hash && $.browser.mozilla)
- window.setTimeout(function() {
- document.location.href += '';
- }, 10);
- },
-
- /**
- * highlight the search words provided in the url in the text
- */
- highlightSearchWords : function() {
- var params = $.getQueryParameters();
- var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : [];
- if (terms.length) {
- var body = $('div.body');
- window.setTimeout(function() {
- $.each(terms, function() {
- body.highlightText(this.toLowerCase(), 'highlight');
- });
- }, 10);
- $('<li class="highlight-link"><a href="javascript:Documentation.' +
- 'hideSearchWords()">' + _('Hide Search Matches') + '</a></li>')
- .appendTo($('.sidebar .this-page-menu'));
- }
- },
-
- /**
- * init the modindex toggle buttons
- */
- initModIndex : function() {
- var togglers = $('img.toggler').click(function() {
- var src = $(this).attr('src');
- var idnum = $(this).attr('id').substr(7);
- console.log($('tr.cg-' + idnum).toggle());
- if (src.substr(-9) == 'minus.png')
- $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
- else
- $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
- }).css('display', '');
- if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
- togglers.click();
- }
- },
-
- /**
- * helper function to hide the search marks again
- */
- hideSearchWords : function() {
- $('.sidebar .this-page-menu li.highlight-link').fadeOut(300);
- $('span.highlight').removeClass('highlight');
- },
-
- /**
- * make the url absolute
- */
- makeURL : function(relativeURL) {
- return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL;
- },
-
- /**
- * get the current relative url
- */
- getCurrentURL : function() {
- var path = document.location.pathname;
- var parts = path.split(/\//);
- $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() {
- if (this == '..')
- parts.pop();
- });
- var url = parts.join('/');
- return path.substring(url.lastIndexOf('/') + 1, path.length - 1);
- }
-};
-
-// quick alias for translations
-_ = Documentation.gettext;
-
-$(document).ready(function() {
- Documentation.init();
-});
+++ /dev/null
-/*
- * jQuery 1.2.6 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
- * $Rev: 5685 $
- */
-(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
-return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
-return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
-selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
-return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
-this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
-return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
-jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&©&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
-script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
-for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
-for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
-jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
-ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
-while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
-while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
-for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
-jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
-xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
-jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
-for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
-s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
-e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})();
\ No newline at end of file
+++ /dev/null
-.hll { background-color: #ffffcc }
-.c { color: #408090; font-style: italic } /* Comment */
-.err { border: 1px solid #FF0000 } /* Error */
-.k { color: #007020; font-weight: bold } /* Keyword */
-.o { color: #666666 } /* Operator */
-.cm { color: #408090; font-style: italic } /* Comment.Multiline */
-.cp { color: #007020 } /* Comment.Preproc */
-.c1 { color: #408090; font-style: italic } /* Comment.Single */
-.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
-.gd { color: #A00000 } /* Generic.Deleted */
-.ge { font-style: italic } /* Generic.Emph */
-.gr { color: #FF0000 } /* Generic.Error */
-.gh { color: #000080; font-weight: bold } /* Generic.Heading */
-.gi { color: #00A000 } /* Generic.Inserted */
-.go { color: #303030 } /* Generic.Output */
-.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
-.gs { font-weight: bold } /* Generic.Strong */
-.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.gt { color: #0040D0 } /* Generic.Traceback */
-.kc { color: #007020; font-weight: bold } /* Keyword.Constant */
-.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
-.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
-.kp { color: #007020 } /* Keyword.Pseudo */
-.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */
-.kt { color: #902000 } /* Keyword.Type */
-.m { color: #208050 } /* Literal.Number */
-.s { color: #4070a0 } /* Literal.String */
-.na { color: #4070a0 } /* Name.Attribute */
-.nb { color: #007020 } /* Name.Builtin */
-.nc { color: #0e84b5; font-weight: bold } /* Name.Class */
-.no { color: #60add5 } /* Name.Constant */
-.nd { color: #555555; font-weight: bold } /* Name.Decorator */
-.ni { color: #d55537; font-weight: bold } /* Name.Entity */
-.ne { color: #007020 } /* Name.Exception */
-.nf { color: #06287e } /* Name.Function */
-.nl { color: #002070; font-weight: bold } /* Name.Label */
-.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */
-.nt { color: #062873; font-weight: bold } /* Name.Tag */
-.nv { color: #bb60d5 } /* Name.Variable */
-.ow { color: #007020; font-weight: bold } /* Operator.Word */
-.w { color: #bbbbbb } /* Text.Whitespace */
-.mf { color: #208050 } /* Literal.Number.Float */
-.mh { color: #208050 } /* Literal.Number.Hex */
-.mi { color: #208050 } /* Literal.Number.Integer */
-.mo { color: #208050 } /* Literal.Number.Oct */
-.sb { color: #4070a0 } /* Literal.String.Backtick */
-.sc { color: #4070a0 } /* Literal.String.Char */
-.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */
-.s2 { color: #4070a0 } /* Literal.String.Double */
-.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */
-.sh { color: #4070a0 } /* Literal.String.Heredoc */
-.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */
-.sx { color: #c65d09 } /* Literal.String.Other */
-.sr { color: #235388 } /* Literal.String.Regex */
-.s1 { color: #4070a0 } /* Literal.String.Single */
-.ss { color: #517918 } /* Literal.String.Symbol */
-.bp { color: #007020 } /* Name.Builtin.Pseudo */
-.vc { color: #bb60d5 } /* Name.Variable.Class */
-.vg { color: #bb60d5 } /* Name.Variable.Global */
-.vi { color: #bb60d5 } /* Name.Variable.Instance */
-.il { color: #208050 } /* Literal.Number.Integer.Long */
\ No newline at end of file
+++ /dev/null
-/**
- * helper function to return a node containing the
- * search summary for a given text. keywords is a list
- * of stemmed words, hlwords is the list of normal, unstemmed
- * words. the first one is used to find the occurance, the
- * latter for highlighting it.
- */
-
-jQuery.makeSearchSummary = function(text, keywords, hlwords) {
- var textLower = text.toLowerCase();
- var start = 0;
- $.each(keywords, function() {
- var i = textLower.indexOf(this.toLowerCase());
- if (i > -1)
- start = i;
- });
- start = Math.max(start - 120, 0);
- var excerpt = ((start > 0) ? '...' : '') +
- $.trim(text.substr(start, 240)) +
- ((start + 240 - text.length) ? '...' : '');
- var rv = $('<div class="context"></div>').text(excerpt);
- $.each(hlwords, function() {
- rv = rv.highlightText(this, 'highlight');
- });
- return rv;
-}
-
-/**
- * Porter Stemmer
- */
-var PorterStemmer = function() {
-
- var step2list = {
- ational: 'ate',
- tional: 'tion',
- enci: 'ence',
- anci: 'ance',
- izer: 'ize',
- bli: 'ble',
- alli: 'al',
- entli: 'ent',
- eli: 'e',
- ousli: 'ous',
- ization: 'ize',
- ation: 'ate',
- ator: 'ate',
- alism: 'al',
- iveness: 'ive',
- fulness: 'ful',
- ousness: 'ous',
- aliti: 'al',
- iviti: 'ive',
- biliti: 'ble',
- logi: 'log'
- };
-
- var step3list = {
- icate: 'ic',
- ative: '',
- alize: 'al',
- iciti: 'ic',
- ical: 'ic',
- ful: '',
- ness: ''
- };
-
- var c = "[^aeiou]"; // consonant
- var v = "[aeiouy]"; // vowel
- var C = c + "[^aeiouy]*"; // consonant sequence
- var V = v + "[aeiou]*"; // vowel sequence
-
- var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0
- var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1
- var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1
- var s_v = "^(" + C + ")?" + v; // vowel in stem
-
- this.stemWord = function (w) {
- var stem;
- var suffix;
- var firstch;
- var origword = w;
-
- if (w.length < 3)
- return w;
-
- var re;
- var re2;
- var re3;
- var re4;
-
- firstch = w.substr(0,1);
- if (firstch == "y")
- w = firstch.toUpperCase() + w.substr(1);
-
- // Step 1a
- re = /^(.+?)(ss|i)es$/;
- re2 = /^(.+?)([^s])s$/;
-
- if (re.test(w))
- w = w.replace(re,"$1$2");
- else if (re2.test(w))
- w = w.replace(re2,"$1$2");
-
- // Step 1b
- re = /^(.+?)eed$/;
- re2 = /^(.+?)(ed|ing)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- re = new RegExp(mgr0);
- if (re.test(fp[1])) {
- re = /.$/;
- w = w.replace(re,"");
- }
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1];
- re2 = new RegExp(s_v);
- if (re2.test(stem)) {
- w = stem;
- re2 = /(at|bl|iz)$/;
- re3 = new RegExp("([^aeiouylsz])\\1$");
- re4 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re2.test(w))
- w = w + "e";
- else if (re3.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
- else if (re4.test(w))
- w = w + "e";
- }
- }
-
- // Step 1c
- re = /^(.+?)y$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(s_v);
- if (re.test(stem))
- w = stem + "i";
- }
-
- // Step 2
- re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step2list[suffix];
- }
-
- // Step 3
- re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- suffix = fp[2];
- re = new RegExp(mgr0);
- if (re.test(stem))
- w = stem + step3list[suffix];
- }
-
- // Step 4
- re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;
- re2 = /^(.+?)(s|t)(ion)$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- if (re.test(stem))
- w = stem;
- }
- else if (re2.test(w)) {
- var fp = re2.exec(w);
- stem = fp[1] + fp[2];
- re2 = new RegExp(mgr1);
- if (re2.test(stem))
- w = stem;
- }
-
- // Step 5
- re = /^(.+?)e$/;
- if (re.test(w)) {
- var fp = re.exec(w);
- stem = fp[1];
- re = new RegExp(mgr1);
- re2 = new RegExp(meq1);
- re3 = new RegExp("^" + C + v + "[^aeiouwxy]$");
- if (re.test(stem) || (re2.test(stem) && !(re3.test(stem))))
- w = stem;
- }
- re = /ll$/;
- re2 = new RegExp(mgr1);
- if (re.test(w) && re2.test(w)) {
- re = /.$/;
- w = w.replace(re,"");
- }
-
- // and turn initial Y back to y
- if (firstch == "y")
- w = firstch.toLowerCase() + w.substr(1);
- return w;
- }
-}
-
-
-/**
- * Search Module
- */
-var Search = {
-
- _index : null,
- _queued_query : null,
- _pulse_status : -1,
-
- init : function() {
- var params = $.getQueryParameters();
- if (params.q) {
- var query = params.q[0];
- $('input[name="q"]')[0].value = query;
- this.performSearch(query);
- }
- },
-
- /**
- * Sets the index
- */
- setIndex : function(index) {
- var q;
- this._index = index;
- if ((q = this._queued_query) !== null) {
- this._queued_query = null;
- Search.query(q);
- }
- },
-
- hasIndex : function() {
- return this._index !== null;
- },
-
- deferQuery : function(query) {
- this._queued_query = query;
- },
-
- stopPulse : function() {
- this._pulse_status = 0;
- },
-
- startPulse : function() {
- if (this._pulse_status >= 0)
- return;
- function pulse() {
- Search._pulse_status = (Search._pulse_status + 1) % 4;
- var dotString = '';
- for (var i = 0; i < Search._pulse_status; i++)
- dotString += '.';
- Search.dots.text(dotString);
- if (Search._pulse_status > -1)
- window.setTimeout(pulse, 500);
- };
- pulse();
- },
-
- /**
- * perform a search for something
- */
- performSearch : function(query) {
- // create the required interface elements
- this.out = $('#search-results');
- this.title = $('<h2>' + _('Searching') + '</h2>').appendTo(this.out);
- this.dots = $('<span></span>').appendTo(this.title);
- this.status = $('<p style="display: none"></p>').appendTo(this.out);
- this.output = $('<ul class="search"/>').appendTo(this.out);
-
- $('#search-progress').text(_('Preparing search...'));
- this.startPulse();
-
- // index already loaded, the browser was quick!
- if (this.hasIndex())
- this.query(query);
- else
- this.deferQuery(query);
- },
-
- query : function(query) {
- // stem the searchterms and add them to the
- // correct list
- var stemmer = new PorterStemmer();
- var searchterms = [];
- var excluded = [];
- var hlterms = [];
- var tmp = query.split(/\s+/);
- var object = (tmp.length == 1) ? tmp[0].toLowerCase() : null;
- for (var i = 0; i < tmp.length; i++) {
- // stem the word
- var word = stemmer.stemWord(tmp[i]).toLowerCase();
- // select the correct list
- if (word[0] == '-') {
- var toAppend = excluded;
- word = word.substr(1);
- }
- else {
- var toAppend = searchterms;
- hlterms.push(tmp[i].toLowerCase());
- }
- // only add if not already in the list
- if (!$.contains(toAppend, word))
- toAppend.push(word);
- };
- var highlightstring = '?highlight=' + $.urlencode(hlterms.join(" "));
-
- console.debug('SEARCH: searching for:');
- console.info('required: ', searchterms);
- console.info('excluded: ', excluded);
-
- // prepare search
- var filenames = this._index.filenames;
- var titles = this._index.titles;
- var terms = this._index.terms;
- var descrefs = this._index.descrefs;
- var modules = this._index.modules;
- var desctypes = this._index.desctypes;
- var fileMap = {};
- var files = null;
- var objectResults = [];
- var regularResults = [];
- $('#search-progress').empty();
-
- // lookup as object
- if (object != null) {
- for (var module in modules) {
- if (module.indexOf(object) > -1) {
- fn = modules[module];
- descr = _('module, in ') + titles[fn];
- objectResults.push([filenames[fn], module, '#module-'+module, descr]);
- }
- }
- for (var prefix in descrefs) {
- for (var name in descrefs[prefix]) {
- var fullname = (prefix ? prefix + '.' : '') + name;
- if (fullname.toLowerCase().indexOf(object) > -1) {
- match = descrefs[prefix][name];
- descr = desctypes[match[1]] + _(', in ') + titles[match[0]];
- objectResults.push([filenames[match[0]], fullname, '#'+fullname, descr]);
- }
- }
- }
- }
-
- // sort results descending
- objectResults.sort(function(a, b) {
- return (a[1] > b[1]) ? -1 : ((a[1] < b[1]) ? 1 : 0);
- });
-
-
- // perform the search on the required terms
- for (var i = 0; i < searchterms.length; i++) {
- var word = searchterms[i];
- // no match but word was a required one
- if ((files = terms[word]) == null)
- break;
- if (files.length == undefined) {
- files = [files];
- }
- // create the mapping
- for (var j = 0; j < files.length; j++) {
- var file = files[j];
- if (file in fileMap)
- fileMap[file].push(word);
- else
- fileMap[file] = [word];
- }
- }
-
- // now check if the files don't contain excluded terms
- for (var file in fileMap) {
- var valid = true;
-
- // check if all requirements are matched
- if (fileMap[file].length != searchterms.length)
- continue;
-
- // ensure that none of the excluded terms is in the
- // search result.
- for (var i = 0; i < excluded.length; i++) {
- if (terms[excluded[i]] == file ||
- $.contains(terms[excluded[i]] || [], file)) {
- valid = false;
- break;
- }
- }
-
- // if we have still a valid result we can add it
- // to the result list
- if (valid)
- regularResults.push([filenames[file], titles[file], '', null]);
- }
-
- // delete unused variables in order to not waste
- // memory until list is retrieved completely
- delete filenames, titles, terms;
-
- // now sort the regular results descending by title
- regularResults.sort(function(a, b) {
- var left = a[1].toLowerCase();
- var right = b[1].toLowerCase();
- return (left > right) ? -1 : ((left < right) ? 1 : 0);
- });
-
- // combine both
- var results = regularResults.concat(objectResults);
-
- // print the results
- var resultCount = results.length;
- function displayNextItem() {
- // results left, load the summary and display it
- if (results.length) {
- var item = results.pop();
- var listItem = $('<li style="display:none"></li>');
- listItem.append($('<a/>').attr(
- 'href',
- item[0] + DOCUMENTATION_OPTIONS.FILE_SUFFIX +
- highlightstring + item[2]).html(item[1]));
- if (item[3]) {
- listItem.append($('<span> (' + item[3] + ')</span>'));
- Search.output.append(listItem);
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- } else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
- $.get('_sources/' + item[0] + '.txt', function(data) {
- listItem.append($.makeSearchSummary(data, searchterms, hlterms));
- Search.output.append(listItem);
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- });
- } else {
- // no source available, just display title
- Search.output.append(listItem);
- listItem.slideDown(5, function() {
- displayNextItem();
- });
- }
- }
- // search finished, update title and status message
- else {
- Search.stopPulse();
- Search.title.text(_('Search Results'));
- if (!resultCount)
- Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.'));
- else
- Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount));
- Search.status.fadeIn(500);
- }
- }
- displayNextItem();
- }
-}
-
-$(document).ready(function() {
- Search.init();
-});
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Context — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="next" title="CSO" href="cso.html" />
- <link rel="prev" title="Screen" href="screen.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="cso.html" title="CSO"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="screen.html" title="Screen"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="context">
-<h1>Context<a class="headerlink" href="#context" title="Permalink to this headline">¶</a></h1>
-<p>The context object represents the purest, most directly accessible, abilities
-of the device’s 3D rendering pipeline.</p>
-<div class="section" id="methods">
-<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="cso-state">
-<h3>CSO State<a class="headerlink" href="#cso-state" title="Permalink to this headline">¶</a></h3>
-<p>All CSO state is created, bound, and destroyed, with triplets of methods that
-all follow a specific naming scheme. For example, <tt class="docutils literal"><span class="pre">create_blend_state</span></tt>,
-<tt class="docutils literal"><span class="pre">bind_blend_state</span></tt>, and <tt class="docutils literal"><span class="pre">destroy_blend_state</span></tt>.</p>
-<p>CSO objects handled by the context object:</p>
-<ul class="simple">
-<li><a class="reference external" href="cso/blend.html#blend"><em>Blend</em></a>: <tt class="docutils literal"><span class="pre">*_blend_state</span></tt></li>
-<li><a class="reference external" href="cso/sampler.html#sampler"><em>Sampler</em></a>: These are special; they can be bound to either vertex or
-fragment samplers, and they are bound in groups.
-<tt class="docutils literal"><span class="pre">bind_fragment_sampler_states</span></tt>, <tt class="docutils literal"><span class="pre">bind_vertex_sampler_states</span></tt></li>
-<li><a class="reference external" href="cso/rasterizer.html#rasterizer"><em>Rasterizer</em></a>: <tt class="docutils literal"><span class="pre">*_rasterizer_state</span></tt></li>
-<li><a class="reference external" href="cso/dsa.html#depth-stencil-alpha"><em>Depth, Stencil, & Alpha</em></a>: <tt class="docutils literal"><span class="pre">*_depth_stencil_alpha_state</span></tt></li>
-<li><a class="reference external" href="cso/shader.html#shader"><em>Shader</em></a>: These have two sets of methods. <tt class="docutils literal"><span class="pre">*_fs_state</span></tt> is for
-fragment shaders, and <tt class="docutils literal"><span class="pre">*_vs_state</span></tt> is for vertex shaders.</li>
-</ul>
-</div>
-<div class="section" id="resource-binding-state">
-<h3>Resource Binding State<a class="headerlink" href="#resource-binding-state" title="Permalink to this headline">¶</a></h3>
-<p>This state describes how resources in various flavours (textures,
-buffers, surfaces) are bound to the driver.</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">set_constant_buffer</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_framebuffer_state</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_fragment_sampler_textures</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_vertex_sampler_textures</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_vertex_buffers</span></tt></li>
-</ul>
-</div>
-<div class="section" id="non-cso-state">
-<h3>Non-CSO State<a class="headerlink" href="#non-cso-state" title="Permalink to this headline">¶</a></h3>
-<p>These pieces of state are too small, variable, and/or trivial to have CSO
-objects. They all follow simple, one-method binding calls, e.g.
-<tt class="docutils literal"><span class="pre">set_edgeflags</span></tt>.</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">set_edgeflags</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_blend_color</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_clip_state</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_polygon_stipple</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_scissor_state</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_viewport_state</span></tt></li>
-<li><tt class="docutils literal"><span class="pre">set_vertex_elements</span></tt></li>
-</ul>
-</div>
-<div class="section" id="clearing">
-<h3>Clearing<a class="headerlink" href="#clearing" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">clear</span></tt> initializes some or all of the surfaces currently bound to
-the framebuffer to particular RGBA, depth, or stencil values.</p>
-<p>Clear is one of the most difficult concepts to nail down to a single
-interface and it seems likely that we will want to add additional
-clear paths, for instance clearing surfaces not bound to the
-framebuffer, or read-modify-write clears such as depth-only or
-stencil-only clears of packed depth-stencil buffers.</p>
-</div>
-<div class="section" id="drawing">
-<h3>Drawing<a class="headerlink" href="#drawing" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">draw_arrays</span></tt></p>
-<p><tt class="docutils literal"><span class="pre">draw_elements</span></tt></p>
-<p><tt class="docutils literal"><span class="pre">draw_range_elements</span></tt></p>
-</div>
-<div class="section" id="queries">
-<h3>Queries<a class="headerlink" href="#queries" title="Permalink to this headline">¶</a></h3>
-<p>Queries gather some statistic from the 3D pipeline over one or more
-draws. Queries may be nested, though no state tracker currently
-exercises this.</p>
-<p>Queries can be created with <tt class="docutils literal"><span class="pre">create_query</span></tt> and deleted with
-<tt class="docutils literal"><span class="pre">destroy_query</span></tt>. To enable a query, use <tt class="docutils literal"><span class="pre">begin_query</span></tt>, and when finished,
-use <tt class="docutils literal"><span class="pre">end_query</span></tt> to stop the query. Finally, <tt class="docutils literal"><span class="pre">get_query_result</span></tt> is used
-to retrieve the results.</p>
-</div>
-<div class="section" id="flushing">
-<h3>Flushing<a class="headerlink" href="#flushing" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">flush</span></tt></p>
-</div>
-<div class="section" id="resource-busy-queries">
-<h3>Resource Busy Queries<a class="headerlink" href="#resource-busy-queries" title="Permalink to this headline">¶</a></h3>
-<p><tt class="docutils literal"><span class="pre">is_texture_referenced</span></tt></p>
-<p><tt class="docutils literal"><span class="pre">is_buffer_referenced</span></tt></p>
-</div>
-<div class="section" id="blitting">
-<h3>Blitting<a class="headerlink" href="#blitting" title="Permalink to this headline">¶</a></h3>
-<p>These methods emulate classic blitter controls. They are not guaranteed to be
-available; if they are set to NULL, then they are not present.</p>
-<p>These methods operate directly on <tt class="docutils literal"><span class="pre">pipe_surface</span></tt> objects, and stand
-apart from any 3D state in the context. Blitting functionality may be
-moved to a separate abstraction at some point in the future.</p>
-<p><tt class="docutils literal"><span class="pre">surface_fill</span></tt> performs a fill operation on a section of a surface.</p>
-<p><tt class="docutils literal"><span class="pre">surface_copy</span></tt> blits a region of a surface to a region of another surface,
-provided that both surfaces are the same format. The source and destination
-may be the same surface, and overlapping blits are permitted.</p>
-<p>The interfaces to these calls are likely to change to make it easier
-for a driver to batch multiple blits with the same source and
-destination.</p>
-</div>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Context</a><ul>
-<li><a class="reference external" href="#methods">Methods</a><ul>
-<li><a class="reference external" href="#cso-state">CSO State</a></li>
-<li><a class="reference external" href="#resource-binding-state">Resource Binding State</a></li>
-<li><a class="reference external" href="#non-cso-state">Non-CSO State</a></li>
-<li><a class="reference external" href="#clearing">Clearing</a></li>
-<li><a class="reference external" href="#drawing">Drawing</a></li>
-<li><a class="reference external" href="#queries">Queries</a></li>
-<li><a class="reference external" href="#flushing">Flushing</a></li>
-<li><a class="reference external" href="#resource-busy-queries">Resource Busy Queries</a></li>
-<li><a class="reference external" href="#blitting">Blitting</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="screen.html"
- title="previous chapter">Screen</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="cso.html"
- title="next chapter">CSO</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/context.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="cso.html" title="CSO"
- >next</a> |</li>
- <li class="right" >
- <a href="screen.html" title="Screen"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>CSO — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="next" title="Blend" href="cso/blend.html" />
- <link rel="prev" title="Context" href="context.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="cso/blend.html" title="Blend"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="context.html" title="Context"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="cso">
-<h1>CSO<a class="headerlink" href="#cso" title="Permalink to this headline">¶</a></h1>
-<p>CSO, Constant State Objects, are a core part of Gallium’s API.</p>
-<p>CSO work on the principle of reusable state; they are created by filling
-out a state object with the desired properties, then passing that object
-to a context. The context returns an opaque context-specific handle which
-can be bound at any time for the desired effect.</p>
-<ul>
-<li class="toctree-l1"><a class="reference external" href="cso/blend.html">Blend</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/blend.html#members">Members</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="cso/dsa.html">Depth, Stencil, & Alpha</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/dsa.html#depth-members">Depth Members</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/dsa.html#stencil-members">Stencil Members</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/dsa.html#alpha-members">Alpha Members</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="cso/rasterizer.html">Rasterizer</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/rasterizer.html#members">Members</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/rasterizer.html#notes">Notes</a><ul>
-<li class="toctree-l3"><a class="reference external" href="cso/rasterizer.html#flatshade">flatshade</a></li>
-<li class="toctree-l3"><a class="reference external" href="cso/rasterizer.html#bypass-vs-clip-and-viewport">bypass_vs_clip_and_viewport</a></li>
-<li class="toctree-l3"><a class="reference external" href="cso/rasterizer.html#flatshade-first">flatshade_first</a></li>
-</ul>
-</li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="cso/sampler.html">Sampler</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/sampler.html#members">Members</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="cso/shader.html">Shader</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/shader.html#members">Members</a></li>
-</ul>
-</li>
-</ul>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h4>Previous topic</h4>
- <p class="topless"><a href="context.html"
- title="previous chapter">Context</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="cso/blend.html"
- title="next chapter">Blend</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/cso.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="cso/blend.html" title="Blend"
- >next</a> |</li>
- <li class="right" >
- <a href="context.html" title="Context"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Blend — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="../index.html" />
- <link rel="up" title="CSO" href="../cso.html" />
- <link rel="next" title="Depth, Stencil, & Alpha" href="dsa.html" />
- <link rel="prev" title="CSO" href="../cso.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="dsa.html" title="Depth, Stencil, & Alpha"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="../cso.html" title="CSO"
- accesskey="P">previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" accesskey="U">CSO</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="blend">
-<span id="id1"></span><h1>Blend<a class="headerlink" href="#blend" title="Permalink to this headline">¶</a></h1>
-<p>This state controls blending of the final fragments into the target rendering
-buffers.</p>
-<p>XXX it is unresolved what behavior should result if blend_enable is off.</p>
-<div class="section" id="members">
-<h2>Members<a class="headerlink" href="#members" title="Permalink to this headline">¶</a></h2>
-<p>XXX undocumented members</p>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="../index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Blend</a><ul>
-<li><a class="reference external" href="#members">Members</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="../cso.html"
- title="previous chapter">CSO</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="dsa.html"
- title="next chapter">Depth, Stencil, & Alpha</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="../_sources/cso/blend.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="dsa.html" title="Depth, Stencil, & Alpha"
- >next</a> |</li>
- <li class="right" >
- <a href="../cso.html" title="CSO"
- >previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" >CSO</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Depth, Stencil, & Alpha — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="../index.html" />
- <link rel="up" title="CSO" href="../cso.html" />
- <link rel="next" title="Rasterizer" href="rasterizer.html" />
- <link rel="prev" title="Blend" href="blend.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="rasterizer.html" title="Rasterizer"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="blend.html" title="Blend"
- accesskey="P">previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" accesskey="U">CSO</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="depth-stencil-alpha">
-<span id="id1"></span><h1>Depth, Stencil, & Alpha<a class="headerlink" href="#depth-stencil-alpha" title="Permalink to this headline">¶</a></h1>
-<p>These three states control the depth, stencil, and alpha tests, used to
-discard fragments that have passed through the fragment shader.</p>
-<p>Traditionally, these three tests have been clumped together in hardware, so
-they are all stored in one structure.</p>
-<p>During actual execution, the order of operations done on fragments is always:</p>
-<ul class="simple">
-<li>Stencil</li>
-<li>Depth</li>
-<li>Alpha</li>
-</ul>
-<div class="section" id="depth-members">
-<h2>Depth Members<a class="headerlink" href="#depth-members" title="Permalink to this headline">¶</a></h2>
-<dl class="docutils">
-<dt>enabled</dt>
-<dd>Whether the depth test is enabled.</dd>
-<dt>writemask</dt>
-<dd>Whether the depth buffer receives depth writes.</dd>
-<dt>func</dt>
-<dd>The depth test function. One of PIPE_FUNC.</dd>
-</dl>
-</div>
-<div class="section" id="stencil-members">
-<h2>Stencil Members<a class="headerlink" href="#stencil-members" title="Permalink to this headline">¶</a></h2>
-<p>XXX document valuemask, writemask</p>
-<dl class="docutils">
-<dt>enabled</dt>
-<dd>Whether the stencil test is enabled. For the second stencil, whether the
-two-sided stencil is enabled.</dd>
-<dt>func</dt>
-<dd>The stencil test function. One of PIPE_FUNC.</dd>
-<dt>ref_value</dt>
-<dd>Stencil test reference value; used for certain functions.</dd>
-<dt>fail_op</dt>
-<dd>The operation to carry out if the stencil test fails. One of
-PIPE_STENCIL_OP.</dd>
-<dt>zfail_op</dt>
-<dd>The operation to carry out if the stencil test passes but the depth test
-fails. One of PIPE_STENCIL_OP.</dd>
-<dt>zpass_op</dt>
-<dd>The operation to carry out if the stencil test and depth test both pass.
-One of PIPE_STENCIL_OP.</dd>
-</dl>
-</div>
-<div class="section" id="alpha-members">
-<h2>Alpha Members<a class="headerlink" href="#alpha-members" title="Permalink to this headline">¶</a></h2>
-<dl class="docutils">
-<dt>enabled</dt>
-<dd>Whether the alpha test is enabled.</dd>
-<dt>func</dt>
-<dd>The alpha test function. One of PIPE_FUNC.</dd>
-<dt>ref_value</dt>
-<dd>Alpha test reference value; used for certain functions.</dd>
-</dl>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="../index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Depth, Stencil, & Alpha</a><ul>
-<li><a class="reference external" href="#depth-members">Depth Members</a></li>
-<li><a class="reference external" href="#stencil-members">Stencil Members</a></li>
-<li><a class="reference external" href="#alpha-members">Alpha Members</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="blend.html"
- title="previous chapter">Blend</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="rasterizer.html"
- title="next chapter">Rasterizer</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="../_sources/cso/dsa.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="rasterizer.html" title="Rasterizer"
- >next</a> |</li>
- <li class="right" >
- <a href="blend.html" title="Blend"
- >previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" >CSO</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Rasterizer — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="../index.html" />
- <link rel="up" title="CSO" href="../cso.html" />
- <link rel="next" title="Sampler" href="sampler.html" />
- <link rel="prev" title="Depth, Stencil, & Alpha" href="dsa.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="sampler.html" title="Sampler"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="dsa.html" title="Depth, Stencil, & Alpha"
- accesskey="P">previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" accesskey="U">CSO</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="rasterizer">
-<span id="id1"></span><h1>Rasterizer<a class="headerlink" href="#rasterizer" title="Permalink to this headline">¶</a></h1>
-<p>The rasterizer is the main chunk of state controlling how vertices are
-interpolated into fragments.</p>
-<div class="section" id="members">
-<h2>Members<a class="headerlink" href="#members" title="Permalink to this headline">¶</a></h2>
-<p>XXX undocumented light_twoside, front_winding, cull_mode, fill_cw, fill_ccw, offset_cw, offset_ccw
-XXX moar undocumented poly_smooth, line_stipple_factor, line_last_pixel, offset_units, offset_scale
-XXX sprite_coord_mode</p>
-<dl class="docutils">
-<dt>flatshade</dt>
-<dd>If set, the provoking vertex of each polygon is used to determine the
-color of the entire polygon. If not set, the color fragments will be
-interpolated from each vertex’s color.</dd>
-<dt>scissor</dt>
-<dd>Whether the scissor test is enabled.</dd>
-<dt>poly_stipple_enable</dt>
-<dd>Whether polygon stippling is enabled.</dd>
-<dt>point_smooth</dt>
-<dd>Whether points should be smoothed. Point smoothing turns rectangular
-points into circles or ovals.</dd>
-<dt>point_sprite</dt>
-<dd>Whether point sprites are enabled.</dd>
-<dt>point_size_per_vertex</dt>
-<dd>Whether vertices have a point size element.</dd>
-<dt>multisample</dt>
-<dd>Whether <em class="xref">MSAA</em> is enabled.</dd>
-<dt>line_smooth</dt>
-<dd>Whether lines should be smoothed. Line smoothing is simply anti-aliasing.</dd>
-<dt>line_stipple_enable</dt>
-<dd>Whether line stippling is enabled.</dd>
-<dt>line_stipple_pattern</dt>
-<dd>16-bit bitfield of on/off flags, used to pattern the line stipple.</dd>
-<dt>bypass_vs_clip_and_viewport</dt>
-<dd>Whether the entire TCL pipeline should be bypassed. This implies that
-vertices are pre-transformed for the viewport, and will not be run
-through the vertex shader. Note that implementations may still clip away
-vertices that are not in the viewport.</dd>
-<dt>flatshade_first</dt>
-<dd>Whether the first vertex should be the provoking vertex, for most
-primitives. If not set, the last vertex is the provoking vertex.</dd>
-<dt>gl_rasterization_rules</dt>
-<dd>Whether the rasterizer should use (0.5, 0.5) pixel centers. When not set,
-the rasterizer will use (0, 0) for pixel centers.</dd>
-<dt>line_width</dt>
-<dd>The width of lines.</dd>
-<dt>point_size</dt>
-<dd>The size of points, if not specified per-vertex.</dd>
-<dt>point_size_min</dt>
-<dd>The minimum size of points.</dd>
-<dt>point_size_max</dt>
-<dd>The maximum size of points.</dd>
-</dl>
-</div>
-<div class="section" id="notes">
-<h2>Notes<a class="headerlink" href="#notes" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="flatshade">
-<h3>flatshade<a class="headerlink" href="#flatshade" title="Permalink to this headline">¶</a></h3>
-<p>The actual interpolated shading algorithm is obviously
-implementation-dependent, but will usually be Gourard for most hardware.</p>
-</div>
-<div class="section" id="bypass-vs-clip-and-viewport">
-<h3>bypass_vs_clip_and_viewport<a class="headerlink" href="#bypass-vs-clip-and-viewport" title="Permalink to this headline">¶</a></h3>
-<p>When set, this implies that vertices are pre-transformed for the viewport, and
-will not be run through the vertex shader. Note that implementations may still
-clip away vertices that are not visible.</p>
-</div>
-<div class="section" id="flatshade-first">
-<h3>flatshade_first<a class="headerlink" href="#flatshade-first" title="Permalink to this headline">¶</a></h3>
-<p>There are several important exceptions to the specification of this rule.</p>
-<ul class="simple">
-<li><tt class="docutils literal"><span class="pre">PIPE_PRIMITIVE_POLYGON</span></tt>: The provoking vertex is always the first
-vertex. If the caller wishes to change the provoking vertex, they merely
-need to rotate the vertices themselves.</li>
-<li><tt class="docutils literal"><span class="pre">PIPE_PRIMITIVE_QUAD</span></tt>, <tt class="docutils literal"><span class="pre">PIPE_PRIMITIVE_QUAD_STRIP</span></tt>: This option has no
-effect; the provoking vertex is always the last vertex.</li>
-<li><tt class="docutils literal"><span class="pre">PIPE_PRIMITIVE_TRIANGLE_FAN</span></tt>: When set, the provoking vertex is the
-second vertex, not the first. This permits each segment of the fan to have
-a different color.</li>
-</ul>
-</div>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="../index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Rasterizer</a><ul>
-<li><a class="reference external" href="#members">Members</a></li>
-<li><a class="reference external" href="#notes">Notes</a><ul>
-<li><a class="reference external" href="#flatshade">flatshade</a></li>
-<li><a class="reference external" href="#bypass-vs-clip-and-viewport">bypass_vs_clip_and_viewport</a></li>
-<li><a class="reference external" href="#flatshade-first">flatshade_first</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="dsa.html"
- title="previous chapter">Depth, Stencil, & Alpha</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="sampler.html"
- title="next chapter">Sampler</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="../_sources/cso/rasterizer.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="sampler.html" title="Sampler"
- >next</a> |</li>
- <li class="right" >
- <a href="dsa.html" title="Depth, Stencil, & Alpha"
- >previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" >CSO</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Sampler — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="../index.html" />
- <link rel="up" title="CSO" href="../cso.html" />
- <link rel="next" title="Shader" href="shader.html" />
- <link rel="prev" title="Rasterizer" href="rasterizer.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="shader.html" title="Shader"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="rasterizer.html" title="Rasterizer"
- accesskey="P">previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" accesskey="U">CSO</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="sampler">
-<span id="id1"></span><h1>Sampler<a class="headerlink" href="#sampler" title="Permalink to this headline">¶</a></h1>
-<p>Texture units have many options for selecting texels from loaded textures;
-this state controls an individual texture unit’s texel-sampling settings.</p>
-<p>Texture coordinates are always treated as four-dimensional, and referred to
-with the traditional (S, T, R, Q) notation.</p>
-<div class="section" id="members">
-<h2>Members<a class="headerlink" href="#members" title="Permalink to this headline">¶</a></h2>
-<p>XXX undocumented compare_mode, compare_func</p>
-<dl class="docutils">
-<dt>wrap_s</dt>
-<dd>How to wrap the S coordinate. One of PIPE_TEX_WRAP.</dd>
-<dt>wrap_t</dt>
-<dd>How to wrap the T coordinate. One of PIPE_TEX_WRAP.</dd>
-<dt>wrap_r</dt>
-<dd>How to wrap the R coordinate. One of PIPE_TEX_WRAP.</dd>
-<dt>min_img_filter</dt>
-<dd>The filter to use when minifying texels. One of PIPE_TEX_FILTER.</dd>
-<dt>min_mip_filter</dt>
-<dd>The filter to use when minifying mipmapped textures. One of
-PIPE_TEX_FILTER.</dd>
-<dt>mag_img_filter</dt>
-<dd>The filter to use when magnifying texels. One of PIPE_TEX_FILTER.</dd>
-<dt>normalized_coords</dt>
-<dd>Whether the texture coordinates are normalized. If normalized, they will
-always be in [0, 1]. If not, they will be in the range of each dimension
-of the loaded texture.</dd>
-<dt>prefilter</dt>
-<dd>XXX From the Doxy, “weird sampling state exposed by some APIs.” Refine.</dd>
-<dt>lod_bias</dt>
-<dd>The bias to apply to the level of detail.</dd>
-<dt>min_lod</dt>
-<dd>Minimum level of detail, used to clamp LoD after bias.</dd>
-<dt>max_lod</dt>
-<dd>Maximum level of detail, used to clamp LoD after bias.</dd>
-<dt>border_color</dt>
-<dd>RGBA color used for out-of-bounds coordinates.</dd>
-<dt>max_anisotropy</dt>
-<dd>Maximum filtering to apply anisotropically to textures. Setting this to
-1.0 effectively disables anisotropic filtering.</dd>
-</dl>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="../index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Sampler</a><ul>
-<li><a class="reference external" href="#members">Members</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="rasterizer.html"
- title="previous chapter">Rasterizer</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="shader.html"
- title="next chapter">Shader</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="../_sources/cso/sampler.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="shader.html" title="Shader"
- >next</a> |</li>
- <li class="right" >
- <a href="rasterizer.html" title="Rasterizer"
- >previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" >CSO</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Shader — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="../_static/default.css" type="text/css" />
- <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '../',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="../_static/jquery.js"></script>
- <script type="text/javascript" src="../_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="../index.html" />
- <link rel="up" title="CSO" href="../cso.html" />
- <link rel="next" title="Glossary" href="../glossary.html" />
- <link rel="prev" title="Sampler" href="sampler.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="../glossary.html" title="Glossary"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="sampler.html" title="Sampler"
- accesskey="P">previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" accesskey="U">CSO</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="shader">
-<span id="id1"></span><h1>Shader<a class="headerlink" href="#shader" title="Permalink to this headline">¶</a></h1>
-<p>One of the two types of shaders supported by Gallium.</p>
-<div class="section" id="members">
-<h2>Members<a class="headerlink" href="#members" title="Permalink to this headline">¶</a></h2>
-<dl class="docutils">
-<dt>tokens</dt>
-<dd>A list of tgsi_tokens.</dd>
-</dl>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="../index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Shader</a><ul>
-<li><a class="reference external" href="#members">Members</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="sampler.html"
- title="previous chapter">Sampler</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="../glossary.html"
- title="next chapter">Glossary</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="../_sources/cso/shader.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="../search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="../genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="../glossary.html" title="Glossary"
- >next</a> |</li>
- <li class="right" >
- <a href="sampler.html" title="Sampler"
- >previous</a> |</li>
- <li><a href="../index.html">Gallium v0.3 documentation</a> »</li>
- <li><a href="../cso.html" >CSO</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Index — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="" title="General Index"
- accesskey="I">index</a></li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
-
- <h1 id="index">Index</h1>
-
- <a href="#M"><strong>M</strong></a>
-
- <hr />
-
-
-<h2 id="M">M</h2>
-<table width="100%" class="indextable"><tr><td width="33%" valign="top">
-<dl>
-
-<dt><a href="glossary.html#term-msaa">MSAA</a></dt></dl></td><td width="33%" valign="top"><dl>
-</dl></td></tr></table>
-
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
-
-
-
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="" title="General Index"
- >index</a></li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Glossary — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="prev" title="Shader" href="cso/shader.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="cso/shader.html" title="Shader"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="glossary">
-<h1>Glossary<a class="headerlink" href="#glossary" title="Permalink to this headline">¶</a></h1>
-<dl class="glossary docutils">
-<dt id="term-msaa">MSAA</dt>
-<dd>Multi-Sampled Anti-Aliasing. A basic anti-aliasing technique that takes
-multiple samples of the depth buffer, and uses this information to
-smooth the edges of polygons.</dd>
-</dl>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h4>Previous topic</h4>
- <p class="topless"><a href="cso/shader.html"
- title="previous chapter">Shader</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/glossary.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="cso/shader.html" title="Shader"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Welcome to Gallium’s documentation! — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="" />
- <link rel="next" title="Introduction" href="intro.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="intro.html" title="Introduction"
- accesskey="N">next</a> |</li>
- <li><a href="">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="welcome-to-gallium-s-documentation">
-<h1>Welcome to Gallium’s documentation!<a class="headerlink" href="#welcome-to-gallium-s-documentation" title="Permalink to this headline">¶</a></h1>
-<p>Contents:</p>
-<ul>
-<li class="toctree-l1"><a class="reference external" href="intro.html">Introduction</a><ul>
-<li class="toctree-l2"><a class="reference external" href="intro.html#what-is-gallium">What is Gallium?</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="tgsi.html">TGSI</a><ul>
-<li class="toctree-l2"><a class="reference external" href="tgsi.html#instruction-set">Instruction Set</a></li>
-<li class="toctree-l2"><a class="reference external" href="tgsi.html#explanation-of-symbols-used">Explanation of symbols used</a></li>
-<li class="toctree-l2"><a class="reference external" href="tgsi.html#other-tokens">Other tokens</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="screen.html">Screen</a><ul>
-<li class="toctree-l2"><a class="reference external" href="screen.html#methods">Methods</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="context.html">Context</a><ul>
-<li class="toctree-l2"><a class="reference external" href="context.html#methods">Methods</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="cso.html">CSO</a><ul>
-<li class="toctree-l2"><a class="reference external" href="cso/blend.html">Blend</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/dsa.html">Depth, Stencil, & Alpha</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/rasterizer.html">Rasterizer</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/sampler.html">Sampler</a></li>
-<li class="toctree-l2"><a class="reference external" href="cso/shader.html">Shader</a></li>
-</ul>
-</li>
-<li class="toctree-l1"><a class="reference external" href="glossary.html">Glossary</a></li>
-</ul>
-</div>
-<div class="section" id="indices-and-tables">
-<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>
-<ul class="simple">
-<li><a class="reference external" href="genindex.html"><em>Index</em></a></li>
-<li><a class="reference external" href="modindex.html"><em>Module Index</em></a></li>
-<li><a class="reference external" href="search.html"><em>Search Page</em></a></li>
-</ul>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Welcome to Gallium’s documentation!</a><ul>
-</ul>
-</li>
-<li><a class="reference external" href="#indices-and-tables">Indices and tables</a></li>
-</ul>
-
- <h4>Next topic</h4>
- <p class="topless"><a href="intro.html"
- title="next chapter">Introduction</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/index.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="intro.html" title="Introduction"
- >next</a> |</li>
- <li><a href="">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Introduction — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="next" title="TGSI" href="tgsi.html" />
- <link rel="prev" title="Welcome to Gallium’s documentation!" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="tgsi.html" title="TGSI"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="index.html" title="Welcome to Gallium’s documentation!"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="introduction">
-<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
-<div class="section" id="what-is-gallium">
-<h2>What is Gallium?<a class="headerlink" href="#what-is-gallium" title="Permalink to this headline">¶</a></h2>
-<p>Gallium is essentially an API for writing graphics drivers in a largely
-device-agnostic fashion. It provides several objects which encapsulate the
-core services of graphics hardware in a straightforward manner.</p>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Introduction</a><ul>
-<li><a class="reference external" href="#what-is-gallium">What is Gallium?</a></li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="index.html"
- title="previous chapter">Welcome to Gallium’s documentation!</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="tgsi.html"
- title="next chapter">TGSI</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/intro.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="tgsi.html" title="TGSI"
- >next</a> |</li>
- <li class="right" >
- <a href="index.html" title="Welcome to Gallium’s documentation!"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-# Sphinx inventory version 1
-# Project: Gallium
-# Version: 0.3
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Screen — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="next" title="Context" href="context.html" />
- <link rel="prev" title="TGSI" href="tgsi.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="context.html" title="Context"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="tgsi.html" title="TGSI"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="screen">
-<h1>Screen<a class="headerlink" href="#screen" title="Permalink to this headline">¶</a></h1>
-<p>A screen is an object representing the context-independent part of a device.</p>
-<div class="section" id="methods">
-<h2>Methods<a class="headerlink" href="#methods" title="Permalink to this headline">¶</a></h2>
-<p>XXX moar; got bored</p>
-<div class="section" id="get-name">
-<h3>get_name<a class="headerlink" href="#get-name" title="Permalink to this headline">¶</a></h3>
-<p>Returns an identifying name for the screen.</p>
-</div>
-<div class="section" id="get-vendor">
-<h3>get_vendor<a class="headerlink" href="#get-vendor" title="Permalink to this headline">¶</a></h3>
-<p>Returns the screen vendor.</p>
-</div>
-<div class="section" id="get-param">
-<h3>get_param<a class="headerlink" href="#get-param" title="Permalink to this headline">¶</a></h3>
-<p>Get an integer/boolean screen parameter.</p>
-</div>
-<div class="section" id="get-paramf">
-<h3>get_paramf<a class="headerlink" href="#get-paramf" title="Permalink to this headline">¶</a></h3>
-<p>Get a floating-point screen parameter.</p>
-</div>
-<div class="section" id="is-format-supported">
-<h3>is_format_supported<a class="headerlink" href="#is-format-supported" title="Permalink to this headline">¶</a></h3>
-<p>See if a format can be used in a specific manner.</p>
-</div>
-<div class="section" id="texture-create">
-<h3>texture_create<a class="headerlink" href="#texture-create" title="Permalink to this headline">¶</a></h3>
-<p>Given a template of texture setup, create a BO-backed texture.</p>
-</div>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">Screen</a><ul>
-<li><a class="reference external" href="#methods">Methods</a><ul>
-<li><a class="reference external" href="#get-name">get_name</a></li>
-<li><a class="reference external" href="#get-vendor">get_vendor</a></li>
-<li><a class="reference external" href="#get-param">get_param</a></li>
-<li><a class="reference external" href="#get-paramf">get_paramf</a></li>
-<li><a class="reference external" href="#is-format-supported">is_format_supported</a></li>
-<li><a class="reference external" href="#texture-create">texture_create</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="tgsi.html"
- title="previous chapter">TGSI</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="context.html"
- title="next chapter">Context</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/screen.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="context.html" title="Context"
- >next</a> |</li>
- <li class="right" >
- <a href="tgsi.html" title="TGSI"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>Search — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <script type="text/javascript" src="_static/searchtools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <h1 id="search-documentation">Search</h1>
- <div id="fallback" class="admonition warning">
- <script type="text/javascript">$('#fallback').hide();</script>
- <p>
- Please activate JavaScript to enable the search
- functionality.
- </p>
- </div>
- <p>
- From here you can search these documents. Enter your search
- words into the box below and click "search". Note that the search
- function will automatically search for all of the words. Pages
- containing fewer words won't appear in the result list.
- </p>
- <form action="" method="get">
- <input type="text" name="q" value="" />
- <input type="submit" value="search" />
- <span id="search-progress" style="padding-left: 10px"></span>
- </form>
-
- <div id="search-results">
-
- </div>
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- <script type="text/javascript" src="searchindex.js"></script>
-
- </body>
-</html>
\ No newline at end of file
+++ /dev/null
-Search.setIndex({desctypes:{},terms:{represent:4,all:[4,9,11],concept:9,partial:4,edg:2,queri:[4,9],particular:9,four:[4,10],scalar:4,per:[4,5],abil:9,follow:[4,9],locat:4,depend:5,name:[3,4,9],intermedi:4,ps_2_x:4,those:4,unit:10,logarithm:4,sourc:[4,9],normalis:4,straightforward:7,fals:4,set_vertex_el:9,lrp:4,fan:5,partialx:4,level:[4,10],pk4b:4,list:6,emul:9,prefilt:10,cosin:4,small:9,div:4,round:4,cmp:4,dimens:10,impli:5,flr:4,tgsi_semantic_posit:4,up4b:4,sign:4,tex:4,second:[4,5,11],pass:[1,11],light_twosid:5,zfail_op:11,index:0,what:[8,0,4,7],xor:4,sub:4,compar:4,neg:4,section:[4,9],access:9,delet:9,rgba:[9,10],method:[0,3,9],themselv:5,deriv:4,gener:4,coeffici:4,psize:4,becom:4,inher:4,path:9,vertic:5,modifi:9,sinc:4,valu:[4,9,11],trunc:4,line_stipple_factor:5,search:0,shift:4,current:9,vbo:[],shader:[0,1,4,5,6,9,11],permit:[5,9],weird:10,gourard:5,endrep:4,semant:4,txl:4,"boolean":3,txf:4,modul:0,txd:4,sgt:4,textur:[3,4,9,10],src2:4,src0:4,api:[1,4,7,10],brk:4,is_texture_referenc:9,visibl:5,oval:5,sge:4,select:10,encapsul:7,gl_rasterization_rul:5,from:[4,5,9,10],offset_unit:5,subtract:4,doubl:4,regist:4,two:[4,6,9,11],program:4,call:[4,9],get_paramf:3,stage:4,type:6,more:9,desir:1,get_nam:3,raster:[0,1,4,5,9],pipe_primitive_quad:5,clue:4,flag:5,indic:[0,4],fill_ccw:5,known:4,unpack:4,point_size_min:5,must:4,poly_smooth:5,graphic:[4,7],retriev:9,setup:3,work:1,obvious:5,can:[1,4,3,9],cal:4,purpos:4,root:4,fetch:4,control:[11,8,5,9,10],create_blend_st:9,pipe_surfac:9,templat:3,minimum:[4,5,10],want:9,dp2a:4,unsign:4,occur:4,nearli:4,gl_nv_vertex_program:4,alwai:[11,4,5,10],point_size_per_vertex:5,multipl:[2,9],divid:4,anoth:9,write:[4,7,9,11],how:[4,5,9,10],flatshad:[1,5],instead:4,simpl:9,sin:4,"42101e":[],product:4,sne:4,resourc:9,max:4,after:[4,10],cso:[0,1,9],set_constant_buff:9,mad:4,mai:[4,5,9],end:4,fail_op:11,pipe_stencil_op:11,principl:1,essenti:7,third:4,bind:9,counter:4,element:5,endprim:4,inform:[2,4],valuemask:11,order:11,rotat:5,over:9,move:[4,9],becaus:4,through:[5,11],sqrt:[],still:5,tgsi_semantic_bcolor:4,paramet:[3,4],group:9,directli:9,bypass:5,main:5,easier:9,non:9,"return":[1,4,3],greater:4,thei:[1,4,5,9,10,11],fragment:[4,8,5,9,11],initi:9,get_vendor:3,"break":4,line_smooth:5,cull_mod:5,front:4,nop:4,introduct:[0,7],"884467e":[],anyth:4,perspect:4,separ:9,token:[0,4,6],each:[5,10],side:11,doxi:10,offset_ccw:5,clamp:[4,10],replac:4,chunk:5,continu:4,ensur:4,frac:4,special:[4,9],out:[1,11,10],variabl:9,space:4,dst:4,ret:4,content:0,vector:4,rel:4,hardwar:[7,5,11],got:3,linear:4,insid:4,offset_cw:5,given:3,compare_func:10,endsub:4,reason:4,base:4,begin_queri:9,"_rasterizer_st":9,reusabl:1,wai:4,where:4,filter:10,turn:5,wpo:4,place:4,get_param:3,clump:11,first:[4,5],oper:[4,9,11],glsl:4,rang:10,max_lod:10,render:[8,9],carri:11,independ:3,restrict:4,instruct:[0,4],done:11,tgsi_semantic_gener:4,light:4,size:[4,5],differ:[4,5],stencil:[0,1,9,11],exponenti:4,sometim:4,tradition:11,too:9,circl:5,scheme:9,moar:[3,5],store:[4,11],nrm4:4,min_img_filt:10,option:[4,5,10],pipe_tex_filt:10,specifi:[4,5],create_queri:9,part:[1,4,3],than:4,line_stipple_en:5,kind:4,target:[4,8],keyword:4,provid:[7,9],remov:4,see:3,structur:11,texel:[4,10],stippl:5,matter:4,str:4,opaqu:1,posit:4,minut:4,result:[8,9],pre:5,fashion:7,clip:5,pk4ub:4,ani:[1,9],"_blend_stat":9,bitfield:5,subroutin:4,max_anisotropi:10,txb:4,manner:[3,7],have:[11,5,9,10],tabl:0,need:5,dedic:4,"null":9,arb_vp:4,bitwis:4,techniqu:2,unresolv:8,alias:[2,5],destroi:9,fill_cw:5,note:[1,4,5],ex2:4,take:2,set_viewport_st:9,pipe_func:11,noth:4,singl:9,pipelin:[4,5,9],sure:4,shade:5,normal:10,buffer:[2,8,9,11],object:[1,7,3,9],most:[4,5,9],sfl:4,regular:4,mipmap:10,sprite_coord_mod:5,pipe_primitive_polygon:5,segment:5,tgsi_semantic_fog:4,tradit:10,pk2h:4,clear:9,tgsi:[0,4],face:4,pipe:4,declar:4,tracker:9,determin:5,pk2u:4,left:4,blend:[0,1,8,9],sum:4,dot:4,end_queri:9,popa:4,destroy_blend_st:9,wrap_:10,dst0:4,threshold:4,hpo:4,trivial:9,slot:4,absolut:4,onli:[4,9],dp4:4,dp3:4,dp2:4,front_wind:5,point_sprit:5,configur:4,written:4,should:[4,8,5],busi:9,endloop:4,lit:4,unus:4,variou:9,get:3,set_scissor_st:9,stop:9,tgsi_semantic_color:4,ceil:4,mul:4,tungsten:4,ssg:4,tgsi_token:6,tbd:4,set_fragment_sampler_textur:9,shr:4,enabl:[4,5,9,11],draw_el:9,"default":4,statist:9,contain:4,anisotrop:10,shl:4,valid:4,dph:4,arr:4,set:[0,4,5,9,10],set_framebuffer_st:9,seq:4,smooth:[2,5],tgsi_semantic_edgeflag:4,ara:4,msaa:[2,5],wrap_t:10,wrap_r:10,fail:11,arl:4,purest:9,modulu:4,project:4,pattern:5,label:4,state:[1,4,5,8,9,10,11],between:4,"import":[4,5],subscript:4,attribut:4,triplet:9,screen:[0,3],min_mip_filt:10,entir:[4,5],chipset:4,is_buffer_referenc:9,lod_bia:10,addit:9,both:[9,11],last:5,framebuff:9,x2d:4,region:9,equal:4,min_lod:10,context:[0,1,3,9],line_last_pixel:5,mani:10,destroy_queri:9,load:[4,10],acceler:4,undocu:[8,5,10],point:[3,4,5,9],color:[4,5,10],pow:4,address:4,pop:4,distinguish:4,callnz:4,reciproc:4,anti:[2,5],provok:5,lg2:4,asdf:[],sine:4,endif:4,addition:4,devic:[3,7,9],three:[4,11],been:[4,11],compon:4,get_query_result:9,treat:10,basic:2,wait:4,up4ub:4,sprite:5,nrm:4,normalized_coord:10,xxx:[3,4,5,8,10,11],fade:4,coordin:[4,10],zero:4,minifi:10,texture_cr:3,func:11,predic:4,bgnloop:4,sad:4,present:9,multi:2,ident:4,slt:4,servic:7,properti:1,histor:4,rectangular:5,behavior:8,glossari:[2,0],sle:4,howev:4,loop:4,pack:[4,9],gl_nv_vertex_program2:4,cont:4,set_edgeflag:9,endfor:4,destin:[4,9],txq:4,bias:4,primit:[4,5],"_vs_state":9,sever:[7,5],set_blend_color:9,surface_fil:9,welcom:0,bind_fragment_sampler_st:9,perform:9,make:9,nail:9,cross:4,same:[4,9],member:[1,5,6,8,10,11],handl:[1,9],compare_mod:10,instanc:9,zpass_op:11,document:[0,11],difficult:9,finish:9,nest:9,driver:[4,7,9],effect:[1,4,5,10],mov:4,capabl:4,rais:[],kil:4,stack:4,squar:4,multisampl:5,appropri:4,off:[8,5],center:5,surface_copi:9,min:4,well:4,bgnsub:4,aisl:4,scissor:5,exampl:9,reflect:4,poly_stipple_en:5,thi:[2,4,5,8,9,10],interpol:[4,5],set_clip_st:9,dimension:10,i2f:4,usual:[4,5],explan:[0,4],distanc:4,identifi:3,execut:11,less:4,kilp:4,up2u:4,up2h:4,tcl:5,simpli:5,semanticnam:4,breakc:4,languag:4,begin:4,gl_nv_geometry_program4:4,expos:10,afaik:4,except:5,seem:9,add:[4,9],cleanup:4,exercis:9,sampler:[0,1,9,10],els:4,mod:4,bypass_vs_clip_and_viewport:[1,5],match:4,pipe_tex_wrap:10,vendor:3,which:[1,7],format:[3,4,9],read:9,agnost:7,piec:9,bia:[4,10],bgnfor:4,magnifi:10,amp:11,bit:[4,5],truncat:4,apart:9,like:9,specif:[1,3,9,5],integ:[3,4],point_siz:5,src1:4,either:[4,9],output:4,page:0,mag_img_filt:10,refin:10,pipe_primitive_quad_strip:5,right:4,draw_range_el:9,some:[9,10],blend_en:8,pusha:4,opcod:4,sampl:[2,4,10],bcolor:4,flush:9,guarante:9,bore:3,pixel:5,ddy:4,ddx:4,partiali:4,though:9,overlap:9,point_smooth:5,multipli:4,cnd:4,fog:4,larg:7,bra:4,condit:4,txp:4,refer:[11,10],core:[1,7],tgsi_semantic_ps:4,run:5,rsq:4,border_color:10,ifc:4,"_depth_stencil_alpha_st":9,appli:10,describ:[4,9],writemask:11,src:4,actual:[4,5,11],solidifi:4,gallium:[0,1,4,7,6],semanticindex:4,bind_vertex_sampler_st:9,set_vertex_buff:9,stand:9,awai:5,discard:[4,11],approxim:4,mean:4,disabl:10,block:4,"final":[8,9],"float":[3,4],bound:[1,9,10],down:9,explain:4,alpha:[0,1,4,9,11],wrap:10,chang:[5,9],batch:9,mere:5,flatshade_first:[1,5],occupi:4,log:4,lod:[4,10],support:[4,6],rcp:4,transform:[4,5],xpd:4,avail:9,width:5,set_polygon_stippl:9,interfac:9,includ:4,fraction:4,cartesian:4,individu:[4,10],rcc:4,"function":[4,9,11],homogen:4,back:[3,4],tgsi_semantic_fac:4,set_vertex_sampler_textur:9,point_size_max:5,link:4,blit:9,line:5,"true":4,viewport:[4,5],gl_nv_gpu_program4:4,notat:10,flavour:9,input:4,draw_arrai:9,whether:[11,5,10],wish:5,caller:5,bind_blend_st:9,maximum:[4,5,10],"abstract":9,line_stipple_pattern:5,tgsi_semantic_norm:4,emit:4,offset_scal:5,gather:9,constant:[1,4],creat:[1,3,9],classic:9,certain:[4,11],dure:11,rfl:4,repres:[3,9],implement:5,file:4,doe:4,check:4,fill:[1,9],polygon:[2,4,5],floor:4,when:[4,5,9,10],detail:[4,10],power:4,field:4,other:[0,4],lookup:4,futur:9,branch:4,test:[5,11],ref_valu:11,draw:9,repeat:4,exp:4,is_format_support:3,symbol:[0,4],vertex:[4,5,9],surfac:9,scale:4,consid:4,receiv:11,blitter:9,algorithm:5,rule:5,pipe_primitive_triangle_fan:5,depth:[0,1,2,4,9,11],"_fs_state":9,potenti:4,time:[1,4],push:4,line_width:5,rep:4,togeth:11},titles:["Welcome to Gallium’s documentation!","CSO","Glossary","Screen","TGSI","Rasterizer","Shader","Introduction","Blend","Context","Sampler","Depth, Stencil, & Alpha"],modules:{},descrefs:{},filenames:["index","cso","glossary","screen","tgsi","cso/rasterizer","cso/shader","intro","cso/blend","context","cso/sampler","cso/dsa"]})
\ No newline at end of file
+++ /dev/null
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-
- <title>TGSI — Gallium v0.3 documentation</title>
- <link rel="stylesheet" href="_static/default.css" type="text/css" />
- <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
- <script type="text/javascript">
- var DOCUMENTATION_OPTIONS = {
- URL_ROOT: '',
- VERSION: '0.3',
- COLLAPSE_MODINDEX: false,
- FILE_SUFFIX: '.html',
- HAS_SOURCE: true
- };
- </script>
- <script type="text/javascript" src="_static/jquery.js"></script>
- <script type="text/javascript" src="_static/doctools.js"></script>
- <link rel="top" title="Gallium v0.3 documentation" href="index.html" />
- <link rel="next" title="Screen" href="screen.html" />
- <link rel="prev" title="Introduction" href="intro.html" />
- </head>
- <body>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- accesskey="I">index</a></li>
- <li class="right" >
- <a href="screen.html" title="Screen"
- accesskey="N">next</a> |</li>
- <li class="right" >
- <a href="intro.html" title="Introduction"
- accesskey="P">previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
-
- <div class="document">
- <div class="documentwrapper">
- <div class="bodywrapper">
- <div class="body">
-
- <div class="section" id="tgsi">
-<h1>TGSI<a class="headerlink" href="#tgsi" title="Permalink to this headline">¶</a></h1>
-<p>TGSI, Tungsten Graphics Shader Instructions, is an intermediate language
-for describing shaders. Since Gallium is inherently shaderful, shaders are
-an important part of the API. TGSI is the only intermediate representation
-used by all drivers.</p>
-<div class="section" id="instruction-set">
-<h2>Instruction Set<a class="headerlink" href="#instruction-set" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="from-gl-nv-vertex-program">
-<h3>From GL_NV_vertex_program<a class="headerlink" href="#from-gl-nv-vertex-program" title="Permalink to this headline">¶</a></h3>
-<p>ARL - Address Register Load</p>
-<div class="math">
-<p><img src="_images/math/a6a788a4144ea0b8be244aad870806646081b809.png" alt="dst.x = \lfloor src.x\rfloor
-
-dst.y = \lfloor src.y\rfloor
-
-dst.z = \lfloor src.z\rfloor
-
-dst.w = \lfloor src.w\rfloor" /></p>
-</div><p>MOV - Move</p>
-<div class="math">
-<p><img src="_images/math/723d0548eae0d4f8738fcf051e2e56bce034e7d4.png" alt="dst.x = src.x
-
-dst.y = src.y
-
-dst.z = src.z
-
-dst.w = src.w" /></p>
-</div><p>LIT - Light Coefficients</p>
-<div class="math">
-<p><img src="_images/math/758e5c32fbcca15fadbbf1ee7cb5967466f056e9.png" alt="dst.x = 1
-
-dst.y = max(src.x, 0)
-
-dst.z = (src.x > 0) ? max(src.y, 0)^{clamp(src.w, -128, 128))} : 0
-
-dst.w = 1" /></p>
-</div><p>RCP - Reciprocal</p>
-<div class="math">
-<p><img src="_images/math/c9bc0e532b3b63ed42567436058b919bc78442ce.png" alt="dst.x = \frac{1}{src.x}
-
-dst.y = \frac{1}{src.x}
-
-dst.z = \frac{1}{src.x}
-
-dst.w = \frac{1}{src.x}" /></p>
-</div><p>RSQ - Reciprocal Square Root</p>
-<div class="math">
-<p><img src="_images/math/70d1866ff09388f68ff5f0f88719006a59e19187.png" alt="dst.x = \frac{1}{\sqrt{|src.x|}}
-
-dst.y = \frac{1}{\sqrt{|src.x|}}
-
-dst.z = \frac{1}{\sqrt{|src.x|}}
-
-dst.w = \frac{1}{\sqrt{|src.x|}}" /></p>
-</div><p>EXP - Approximate Exponential Base 2</p>
-<div class="math">
-<p><img src="_images/math/61a735a5ca4687a35d98a8d42c127cb425b16eed.png" alt="dst.x = 2^{\lfloor src.x\rfloor}
-
-dst.y = src.x - \lfloor src.x\rfloor
-
-dst.z = 2^{src.x}
-
-dst.w = 1" /></p>
-</div><p>LOG - Approximate Logarithm Base 2</p>
-<div class="math">
-<p><img src="_images/math/f71ea96f5550b90a162f1d7a8b754eeb9b0d126e.png" alt="dst.x = \lfloor\log_2{|src.x|}\rfloor
-
-dst.y = \frac{|src.x|}{2^{\lfloor\log_2{|src.x|}\rfloor}}
-
-dst.z = \log_2{|src.x|}
-
-dst.w = 1" /></p>
-</div><p>MUL - Multiply</p>
-<div class="math">
-<p><img src="_images/math/8d727b11852ddbb13fb91083a0ce71ea2a47306f.png" alt="dst.x = src0.x \times src1.x
-
-dst.y = src0.y \times src1.y
-
-dst.z = src0.z \times src1.z
-
-dst.w = src0.w \times src1.w" /></p>
-</div><p>ADD - Add</p>
-<div class="math">
-<p><img src="_images/math/419ee673cdf363cbe29df99a84db18bf74b83cc4.png" alt="dst.x = src0.x + src1.x
-
-dst.y = src0.y + src1.y
-
-dst.z = src0.z + src1.z
-
-dst.w = src0.w + src1.w" /></p>
-</div><p>DP3 - 3-component Dot Product</p>
-<div class="math">
-<p><img src="_images/math/cd11030c4826718fe39618e48ae07d9298184a65.png" alt="dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
-dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
-dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z
-
-dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z" /></p>
-</div><p>DP4 - 4-component Dot Product</p>
-<div class="math">
-<p><img src="_images/math/efbae5a733577ba979c4f08fa0e1de5e31953b92.png" alt="dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
-dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
-dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w
-
-dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src0.w \times src1.w" /></p>
-</div><p>DST - Distance Vector</p>
-<div class="math">
-<p><img src="_images/math/6d0d5702a6e475d584f295bd4f0fa80a70b70ee5.png" alt="dst.x = 1
-
-dst.y = src0.y \times src1.y
-
-dst.z = src0.z
-
-dst.w = src1.w" /></p>
-</div><p>MIN - Minimum</p>
-<div class="math">
-<p><img src="_images/math/73dec9e78c22629aa3379d21ccc96b1a5c5d2dbd.png" alt="dst.x = min(src0.x, src1.x)
-
-dst.y = min(src0.y, src1.y)
-
-dst.z = min(src0.z, src1.z)
-
-dst.w = min(src0.w, src1.w)" /></p>
-</div><p>MAX - Maximum</p>
-<div class="math">
-<p><img src="_images/math/1ad10aa070bc12ee93fca94040edb8900468ae29.png" alt="dst.x = max(src0.x, src1.x)
-
-dst.y = max(src0.y, src1.y)
-
-dst.z = max(src0.z, src1.z)
-
-dst.w = max(src0.w, src1.w)" /></p>
-</div><p>SLT - Set On Less Than</p>
-<div class="math">
-<p><img src="_images/math/b1db3ad26718bdcf3d1afeb866f1fc595230786d.png" alt="dst.x = (src0.x < src1.x) ? 1 : 0
-
-dst.y = (src0.y < src1.y) ? 1 : 0
-
-dst.z = (src0.z < src1.z) ? 1 : 0
-
-dst.w = (src0.w < src1.w) ? 1 : 0" /></p>
-</div><p>SGE - Set On Greater Equal Than</p>
-<div class="math">
-<p><img src="_images/math/bb15ac1bdb0b295273a7c57060899063cf618a95.png" alt="dst.x = (src0.x >= src1.x) ? 1 : 0
-
-dst.y = (src0.y >= src1.y) ? 1 : 0
-
-dst.z = (src0.z >= src1.z) ? 1 : 0
-
-dst.w = (src0.w >= src1.w) ? 1 : 0" /></p>
-</div><p>MAD - Multiply And Add</p>
-<div class="math">
-<p><img src="_images/math/cb4e90af76c03c927762a3c33e989ce2c41f5be5.png" alt="dst.x = src0.x \times src1.x + src2.x
-
-dst.y = src0.y \times src1.y + src2.y
-
-dst.z = src0.z \times src1.z + src2.z
-
-dst.w = src0.w \times src1.w + src2.w" /></p>
-</div><p>SUB - Subtract</p>
-<div class="math">
-<p><img src="_images/math/d96d8a97260276b9db5e903a05339b869391856f.png" alt="dst.x = src0.x - src1.x
-
-dst.y = src0.y - src1.y
-
-dst.z = src0.z - src1.z
-
-dst.w = src0.w - src1.w" /></p>
-</div><p>LRP - Linear Interpolate</p>
-<div class="math">
-<p><img src="_images/math/cf94ae7663599af8dc7ada12a43b33ca5083044a.png" alt="dst.x = src0.x \times (src1.x - src2.x) + src2.x
-
-dst.y = src0.y \times (src1.y - src2.y) + src2.y
-
-dst.z = src0.z \times (src1.z - src2.z) + src2.z
-
-dst.w = src0.w \times (src1.w - src2.w) + src2.w" /></p>
-</div><p>CND - Condition</p>
-<div class="math">
-<p><img src="_images/math/f9be0a9bff61d950cb768b8d10c66a45377f3124.png" alt="dst.x = (src2.x > 0.5) ? src0.x : src1.x
-
-dst.y = (src2.y > 0.5) ? src0.y : src1.y
-
-dst.z = (src2.z > 0.5) ? src0.z : src1.z
-
-dst.w = (src2.w > 0.5) ? src0.w : src1.w" /></p>
-</div><p>DP2A - 2-component Dot Product And Add</p>
-<div class="math">
-<p><img src="_images/math/abcd8a9f57fcaecc5e5c14835fa7438b08b4009d.png" alt="dst.x = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
-dst.y = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
-dst.z = src0.x \times src1.x + src0.y \times src1.y + src2.x
-
-dst.w = src0.x \times src1.x + src0.y \times src1.y + src2.x" /></p>
-</div><p>FRAC - Fraction</p>
-<div class="math">
-<p><img src="_images/math/df45d09eb32da9798269d030845962e4d92e26de.png" alt="dst.x = src.x - \lfloor src.x\rfloor
-
-dst.y = src.y - \lfloor src.y\rfloor
-
-dst.z = src.z - \lfloor src.z\rfloor
-
-dst.w = src.w - \lfloor src.w\rfloor" /></p>
-</div><p>CLAMP - Clamp</p>
-<div class="math">
-<p><img src="_images/math/56093f3e51016bf4a7784ed66cb8628202f58b2d.png" alt="dst.x = clamp(src0.x, src1.x, src2.x)
-
-dst.y = clamp(src0.y, src1.y, src2.y)
-
-dst.z = clamp(src0.z, src1.z, src2.z)
-
-dst.w = clamp(src0.w, src1.w, src2.w)" /></p>
-</div><p>FLR - Floor</p>
-<p>This is identical to ARL.</p>
-<div class="math">
-<p><img src="_images/math/a6a788a4144ea0b8be244aad870806646081b809.png" alt="dst.x = \lfloor src.x\rfloor
-
-dst.y = \lfloor src.y\rfloor
-
-dst.z = \lfloor src.z\rfloor
-
-dst.w = \lfloor src.w\rfloor" /></p>
-</div><p>ROUND - Round</p>
-<div class="math">
-<p><img src="_images/math/226c98a475a610bdeb91b4fbf51261cf8721d8f6.png" alt="dst.x = round(src.x)
-
-dst.y = round(src.y)
-
-dst.z = round(src.z)
-
-dst.w = round(src.w)" /></p>
-</div><p>EX2 - Exponential Base 2</p>
-<div class="math">
-<p><img src="_images/math/0210d258bc676109314169f2dd4320059387500c.png" alt="dst.x = 2^{src.x}
-
-dst.y = 2^{src.x}
-
-dst.z = 2^{src.x}
-
-dst.w = 2^{src.x}" /></p>
-</div><p>LG2 - Logarithm Base 2</p>
-<div class="math">
-<p><img src="_images/math/1b910bba9c9c6d11618b234335f33413d4f76ee6.png" alt="dst.x = \log_2{src.x}
-
-dst.y = \log_2{src.x}
-
-dst.z = \log_2{src.x}
-
-dst.w = \log_2{src.x}" /></p>
-</div><p>POW - Power</p>
-<div class="math">
-<p><img src="_images/math/290ad5e39fd561a8616e6eb9abc488c8615b36c7.png" alt="dst.x = src0.x^{src1.x}
-
-dst.y = src0.x^{src1.x}
-
-dst.z = src0.x^{src1.x}
-
-dst.w = src0.x^{src1.x}" /></p>
-</div><p>XPD - Cross Product</p>
-<div class="math">
-<p><img src="_images/math/751ec5401cf0d30257850404124ddad65cd5c0b2.png" alt="dst.x = src0.y \times src1.z - src1.y \times src0.z
-
-dst.y = src0.z \times src1.x - src1.z \times src0.x
-
-dst.z = src0.x \times src1.y - src1.x \times src0.y
-
-dst.w = 1" /></p>
-</div><p>ABS - Absolute</p>
-<div class="math">
-<p><img src="_images/math/ad452a9162cb4c5aeb7638cac156cf04155c968a.png" alt="dst.x = |src.x|
-
-dst.y = |src.y|
-
-dst.z = |src.z|
-
-dst.w = |src.w|" /></p>
-</div><p>RCC - Reciprocal Clamped</p>
-<p>XXX cleanup on aisle three</p>
-<div class="math">
-<p><img src="_images/math/f5fe168fde58a4d9fb87b5ef1e8b532f02f3a7cb.png" alt="dst.x = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
-dst.y = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
-dst.z = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)
-
-dst.w = (1 / src.x) > 0 ? clamp(1 / src.x, 5.42101e-020, 1.884467e+019) : clamp(1 / src.x, -1.884467e+019, -5.42101e-020)" /></p>
-</div><p>DPH - Homogeneous Dot Product</p>
-<div class="math">
-<p><img src="_images/math/2049740526a3bf3b01a0793817069df1d2b217a6.png" alt="dst.x = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
-dst.y = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
-dst.z = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w
-
-dst.w = src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z + src1.w" /></p>
-</div><p>COS - Cosine</p>
-<div class="math">
-<p><img src="_images/math/ade7e8ec73d74fb03022a40c9a69055c7a0a937b.png" alt="dst.x = \cos{src.x}
-
-dst.y = \cos{src.x}
-
-dst.z = \cos{src.x}
-
-dst.w = \cos{src.w}" /></p>
-</div><p>DDX - Derivative Relative To X</p>
-<div class="math">
-<p><img src="_images/math/5846a9ccdaf9e3c8c9ffa099acee7e80c7cc0d4b.png" alt="dst.x = partialx(src.x)
-
-dst.y = partialx(src.y)
-
-dst.z = partialx(src.z)
-
-dst.w = partialx(src.w)" /></p>
-</div><p>DDY - Derivative Relative To Y</p>
-<div class="math">
-<p><img src="_images/math/f89c54b3cac95d930ef70dffa6dc62db5fac05a6.png" alt="dst.x = partialy(src.x)
-
-dst.y = partialy(src.y)
-
-dst.z = partialy(src.z)
-
-dst.w = partialy(src.w)" /></p>
-</div><p>KILP - Predicated Discard</p>
-<blockquote>
-discard</blockquote>
-<p>PK2H - Pack Two 16-bit Floats</p>
-<blockquote>
-TBD</blockquote>
-<p>PK2US - Pack Two Unsigned 16-bit Scalars</p>
-<blockquote>
-TBD</blockquote>
-<p>PK4B - Pack Four Signed 8-bit Scalars</p>
-<blockquote>
-TBD</blockquote>
-<p>PK4UB - Pack Four Unsigned 8-bit Scalars</p>
-<blockquote>
-TBD</blockquote>
-<p>RFL - Reflection Vector</p>
-<div class="math">
-<p><img src="_images/math/6dfa1d81b7272fac743c04c8f5fbd74bb42639b4.png" alt="dst.x = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.x - src1.x
-
-dst.y = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.y - src1.y
-
-dst.z = 2 \times (src0.x \times src1.x + src0.y \times src1.y + src0.z \times src1.z) / (src0.x \times src0.x + src0.y \times src0.y + src0.z \times src0.z) \times src0.z - src1.z
-
-dst.w = 1" /></p>
-</div><p>Considered for removal.</p>
-<p>SEQ - Set On Equal</p>
-<div class="math">
-<p><img src="_images/math/5eac00cd4b387d141630ace602ed89d9a2ccc0ef.png" alt="dst.x = (src0.x == src1.x) ? 1 : 0
-dst.y = (src0.y == src1.y) ? 1 : 0
-dst.z = (src0.z == src1.z) ? 1 : 0
-dst.w = (src0.w == src1.w) ? 1 : 0" /></p>
-</div><p>SFL - Set On False</p>
-<div class="math">
-<p><img src="_images/math/15f738543d3cfe86879e953e69536effdc1d97f5.png" alt="dst.x = 0
-dst.y = 0
-dst.z = 0
-dst.w = 0" /></p>
-</div><p>Considered for removal.</p>
-<p>SGT - Set On Greater Than</p>
-<div class="math">
-<p><img src="_images/math/2bbfc816656154cb764d951002e595719a0cfce1.png" alt="dst.x = (src0.x > src1.x) ? 1 : 0
-dst.y = (src0.y > src1.y) ? 1 : 0
-dst.z = (src0.z > src1.z) ? 1 : 0
-dst.w = (src0.w > src1.w) ? 1 : 0" /></p>
-</div><p>SIN - Sine</p>
-<div class="math">
-<p><img src="_images/math/0e5562f4fdf39c2754c17f761d76dcdb738dd233.png" alt="dst.x = \sin{src.x}
-
-dst.y = \sin{src.x}
-
-dst.z = \sin{src.x}
-
-dst.w = \sin{src.w}" /></p>
-</div><p>SLE - Set On Less Equal Than</p>
-<div class="math">
-<p><img src="_images/math/3f4ffe13f32660772fc7dbde7b56fff6308b347c.png" alt="dst.x = (src0.x <= src1.x) ? 1 : 0
-dst.y = (src0.y <= src1.y) ? 1 : 0
-dst.z = (src0.z <= src1.z) ? 1 : 0
-dst.w = (src0.w <= src1.w) ? 1 : 0" /></p>
-</div><p>SNE - Set On Not Equal</p>
-<div class="math">
-<p><img src="_images/math/7a206759bbd06a8ef2385b8b7cf42b07521d36a8.png" alt="dst.x = (src0.x != src1.x) ? 1 : 0
-dst.y = (src0.y != src1.y) ? 1 : 0
-dst.z = (src0.z != src1.z) ? 1 : 0
-dst.w = (src0.w != src1.w) ? 1 : 0" /></p>
-</div><p>STR - Set On True</p>
-<div class="math">
-<p><img src="_images/math/9a8aa4392d07b8c3fd7f2bc7ddee9eecd87e2c21.png" alt="dst.x = 1
-dst.y = 1
-dst.z = 1
-dst.w = 1" /></p>
-</div><p>TEX - Texture Lookup</p>
-<blockquote>
-TBD</blockquote>
-<p>TXD - Texture Lookup with Derivatives</p>
-<blockquote>
-TBD</blockquote>
-<p>TXP - Projective Texture Lookup</p>
-<blockquote>
-TBD</blockquote>
-<p>UP2H - Unpack Two 16-Bit Floats</p>
-<blockquote>
-<p>TBD</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>UP2US - Unpack Two Unsigned 16-Bit Scalars</p>
-<blockquote>
-<p>TBD</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>UP4B - Unpack Four Signed 8-Bit Values</p>
-<blockquote>
-<p>TBD</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>UP4UB - Unpack Four Unsigned 8-Bit Scalars</p>
-<blockquote>
-<p>TBD</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>X2D - 2D Coordinate Transformation</p>
-<div class="math">
-<p><img src="_images/math/f94a20471877c44c7f623279934018e5c7348e83.png" alt="dst.x = src0.x + src1.x \times src2.x + src1.y \times src2.y
-dst.y = src0.y + src1.x \times src2.z + src1.y \times src2.w
-dst.z = src0.x + src1.x \times src2.x + src1.y \times src2.y
-dst.w = src0.y + src1.x \times src2.z + src1.y \times src2.w" /></p>
-</div><p>Considered for removal.</p>
-</div>
-<div class="section" id="from-gl-nv-vertex-program2">
-<h3>From GL_NV_vertex_program2<a class="headerlink" href="#from-gl-nv-vertex-program2" title="Permalink to this headline">¶</a></h3>
-<p>ARA - Address Register Add</p>
-<blockquote>
-<p>TBD</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>ARR - Address Register Load With Round</p>
-<div class="math">
-<p><img src="_images/math/226c98a475a610bdeb91b4fbf51261cf8721d8f6.png" alt="dst.x = round(src.x)
-
-dst.y = round(src.y)
-
-dst.z = round(src.z)
-
-dst.w = round(src.w)" /></p>
-</div><p>BRA - Branch</p>
-<blockquote>
-<p>pc = target</p>
-<p>Considered for removal.</p>
-</blockquote>
-<p>CAL - Subroutine Call</p>
-<blockquote>
-push(pc)
-pc = target</blockquote>
-<p>RET - Subroutine Call Return</p>
-<blockquote>
-<p>pc = pop()</p>
-<p>Potential restrictions:
-times Only occurs at end of function.</p>
-</blockquote>
-<p>SSG - Set Sign</p>
-<div class="math">
-<p><img src="_images/math/096db0cc9a735fa08397a0d940cb96025db3e3c8.png" alt="dst.x = (src.x > 0) ? 1 : (src.x < 0) ? -1 : 0
-
-dst.y = (src.y > 0) ? 1 : (src.y < 0) ? -1 : 0
-
-dst.z = (src.z > 0) ? 1 : (src.z < 0) ? -1 : 0
-
-dst.w = (src.w > 0) ? 1 : (src.w < 0) ? -1 : 0" /></p>
-</div><p>CMP - Compare</p>
-<div class="math">
-<p><img src="_images/math/53961253955fd2148f7cef66c79f2274c76f1954.png" alt="dst.x = (src0.x < 0) ? src1.x : src2.x
-
-dst.y = (src0.y < 0) ? src1.y : src2.y
-
-dst.z = (src0.z < 0) ? src1.z : src2.z
-
-dst.w = (src0.w < 0) ? src1.w : src2.w" /></p>
-</div><p>KIL - Conditional Discard</p>
-<div class="math">
-<p><img src="_images/math/ef0c42df6cde68a9c411ff8ce9ad1603b2715daf.png" alt="if (src.x < 0 || src.y < 0 || src.z < 0 || src.w < 0)
- discard
-endif" /></p>
-</div><p>SCS - Sine Cosine</p>
-<div class="math">
-<p><img src="_images/math/1ed3a5293ecdad1b4847367fba55be005fe7f6ba.png" alt="dst.x = \cos{src.x}
-
-dst.y = \sin{src.x}
-
-dst.z = 0
-
-dst.y = 1" /></p>
-</div><p>TXB - Texture Lookup With Bias</p>
-<blockquote>
-TBD</blockquote>
-<p>NRM - 3-component Vector Normalise</p>
-<div class="math">
-<p><img src="_images/math/a6403ef2be1ec6b8eafb37e12b4e44adf240444e.png" alt="dst.x = src.x / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
-dst.y = src.y / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
-dst.z = src.z / (src.x \times src.x + src.y \times src.y + src.z \times src.z)
-
-dst.w = 1" /></p>
-</div><p>DIV - Divide</p>
-<div class="math">
-<p><img src="_images/math/f8d904588ef4d267803f5aee2f5789d9eda5b0e4.png" alt="dst.x = \frac{src0.x}{src1.x}
-
-dst.y = \frac{src0.y}{src1.y}
-
-dst.z = \frac{src0.z}{src1.z}
-
-dst.w = \frac{src0.w}{src1.w}" /></p>
-</div><p>DP2 - 2-component Dot Product</p>
-<div class="math">
-<p><img src="_images/math/052e6cb10c4892efcc9dfdd69fd3480adbae7bba.png" alt="dst.x = src0.x \times src1.x + src0.y \times src1.y
-
-dst.y = src0.x \times src1.x + src0.y \times src1.y
-
-dst.z = src0.x \times src1.x + src0.y \times src1.y
-
-dst.w = src0.x \times src1.x + src0.y \times src1.y" /></p>
-</div><p>TXL - Texture Lookup With LOD</p>
-<blockquote>
-TBD</blockquote>
-<p>BRK - Break</p>
-<blockquote>
-TBD</blockquote>
-<p>IF - If</p>
-<blockquote>
-TBD</blockquote>
-<p>BGNFOR - Begin a For-Loop</p>
-<blockquote>
-<p>dst.x = floor(src.x)
-dst.y = floor(src.y)
-dst.z = floor(src.z)</p>
-<dl class="docutils">
-<dt>if (dst.y <= 0)</dt>
-<dd>pc = [matching ENDFOR] + 1</dd>
-</dl>
-<p>endif</p>
-<dl class="docutils">
-<dt>Note: The destination must be a loop register.</dt>
-<dd>The source must be a constant register.</dd>
-</dl>
-<p>Considered for cleanup / removal.</p>
-</blockquote>
-<p>REP - Repeat</p>
-<blockquote>
-TBD</blockquote>
-<p>ELSE - Else</p>
-<blockquote>
-TBD</blockquote>
-<p>ENDIF - End If</p>
-<blockquote>
-TBD</blockquote>
-<p>ENDFOR - End a For-Loop</p>
-<blockquote>
-<p>dst.x = dst.x + dst.z
-dst.y = dst.y - 1.0</p>
-<dl class="docutils">
-<dt>if (dst.y > 0)</dt>
-<dd>pc = [matching BGNFOR instruction] + 1</dd>
-</dl>
-<p>endif</p>
-<p>Note: The destination must be a loop register.</p>
-<p>Considered for cleanup / removal.</p>
-</blockquote>
-<p>ENDREP - End Repeat</p>
-<blockquote>
-TBD</blockquote>
-<p>PUSHA - Push Address Register On Stack</p>
-<blockquote>
-<p>push(src.x)
-push(src.y)
-push(src.z)
-push(src.w)</p>
-<p>Considered for cleanup / removal.</p>
-</blockquote>
-<p>POPA - Pop Address Register From Stack</p>
-<blockquote>
-<p>dst.w = pop()
-dst.z = pop()
-dst.y = pop()
-dst.x = pop()</p>
-<p>Considered for cleanup / removal.</p>
-</blockquote>
-</div>
-<div class="section" id="from-gl-nv-gpu-program4">
-<h3>From GL_NV_gpu_program4<a class="headerlink" href="#from-gl-nv-gpu-program4" title="Permalink to this headline">¶</a></h3>
-<p>Support for these opcodes indicated by a special pipe capability bit (TBD).</p>
-<p>CEIL - Ceiling</p>
-<div class="math">
-<p><img src="_images/math/03e47c613e946131569cb8ab9b88ae7b31a7a436.png" alt="dst.x = \lceil src.x\rceil
-
-dst.y = \lceil src.y\rceil
-
-dst.z = \lceil src.z\rceil
-
-dst.w = \lceil src.w\rceil" /></p>
-</div><p>I2F - Integer To Float</p>
-<div class="math">
-<p><img src="_images/math/fa38e14d5e8d8fcf15c70890e66ae5727443e531.png" alt="dst.x = (float) src.x
-
-dst.y = (float) src.y
-
-dst.z = (float) src.z
-
-dst.w = (float) src.w" /></p>
-</div><p>NOT - Bitwise Not</p>
-<div class="math">
-<p><img src="_images/math/ae28f3acd0883602c612198d7bcd7fc277972f31.png" alt="dst.x = ~src.x
-
-dst.y = ~src.y
-
-dst.z = ~src.z
-
-dst.w = ~src.w" /></p>
-</div><p>TRUNC - Truncate</p>
-<p>XXX how is this different from floor?</p>
-<div class="math">
-<p><img src="_images/math/4a413dd124842171577a13c5de2f45c92f1a0c59.png" alt="dst.x = trunc(src.x)
-
-dst.y = trunc(src.y)
-
-dst.z = trunc(src.z)
-
-dst.w = trunc(src.w)" /></p>
-</div><p>SHL - Shift Left</p>
-<div class="math">
-<p><img src="_images/math/6d8f34db37f5d0909f568cbd49dbb9bbd376629d.png" alt="dst.x = src0.x << src1.x
-
-dst.y = src0.y << src1.x
-
-dst.z = src0.z << src1.x
-
-dst.w = src0.w << src1.x" /></p>
-</div><p>SHR - Shift Right</p>
-<div class="math">
-<p><img src="_images/math/8bb711dcf8af2b6a34bd4cb19311c1c2c445ef5e.png" alt="dst.x = src0.x >> src1.x
-
-dst.y = src0.y >> src1.x
-
-dst.z = src0.z >> src1.x
-
-dst.w = src0.w >> src1.x" /></p>
-</div><p>AND - Bitwise And</p>
-<div class="math">
-<p><img src="_images/math/a37f2da4dd31c01e7c3afd0adab9bdf27c9d4805.png" alt="dst.x = src0.x & src1.x
-
-dst.y = src0.y & src1.y
-
-dst.z = src0.z & src1.z
-
-dst.w = src0.w & src1.w" /></p>
-</div><p>OR - Bitwise Or</p>
-<div class="math">
-<p><img src="_images/math/84549dcb2fc79ba332fa86d8b6bdac239d32097f.png" alt="dst.x = src0.x | src1.x
-
-dst.y = src0.y | src1.y
-
-dst.z = src0.z | src1.z
-
-dst.w = src0.w | src1.w" /></p>
-</div><p>MOD - Modulus</p>
-<div class="math">
-<p><img src="_images/math/10d8720201a3a554b1610687157a80fae1871f6d.png" alt="dst.x = src0.x \bmod src1.x
-
-dst.y = src0.y \bmod src1.y
-
-dst.z = src0.z \bmod src1.z
-
-dst.w = src0.w \bmod src1.w" /></p>
-</div><p>XOR - Bitwise Xor</p>
-<div class="math">
-<p><img src="_images/math/0f7e82c35f1b87f2d11da3fbc639085a54a5e7ec.png" alt="dst.x = src0.x ^ src1.x
-
-dst.y = src0.y ^ src1.y
-
-dst.z = src0.z ^ src1.z
-
-dst.w = src0.w ^ src1.w" /></p>
-</div><p>SAD - Sum Of Absolute Differences</p>
-<div class="math">
-<p><img src="_images/math/a4a04906e15ff687e62dcad0046baa9ae05eabb5.png" alt="dst.x = |src0.x - src1.x| + src2.x
-
-dst.y = |src0.y - src1.y| + src2.y
-
-dst.z = |src0.z - src1.z| + src2.z
-
-dst.w = |src0.w - src1.w| + src2.w" /></p>
-</div><p>TXF - Texel Fetch</p>
-<blockquote>
-TBD</blockquote>
-<p>TXQ - Texture Size Query</p>
-<blockquote>
-TBD</blockquote>
-<p>CONT - Continue</p>
-<blockquote>
-TBD</blockquote>
-</div>
-<div class="section" id="from-gl-nv-geometry-program4">
-<h3>From GL_NV_geometry_program4<a class="headerlink" href="#from-gl-nv-geometry-program4" title="Permalink to this headline">¶</a></h3>
-<p>EMIT - Emit</p>
-<blockquote>
-TBD</blockquote>
-<p>ENDPRIM - End Primitive</p>
-<blockquote>
-TBD</blockquote>
-</div>
-<div class="section" id="from-glsl">
-<h3>From GLSL<a class="headerlink" href="#from-glsl" title="Permalink to this headline">¶</a></h3>
-<p>BGNLOOP - Begin a Loop</p>
-<blockquote>
-TBD</blockquote>
-<p>BGNSUB - Begin Subroutine</p>
-<blockquote>
-TBD</blockquote>
-<p>ENDLOOP - End a Loop</p>
-<blockquote>
-TBD</blockquote>
-<p>ENDSUB - End Subroutine</p>
-<blockquote>
-TBD</blockquote>
-<p>NOP - No Operation</p>
-<blockquote>
-Do nothing.</blockquote>
-<p>NRM4 - 4-component Vector Normalise</p>
-<div class="math">
-<p><img src="_images/math/740c183de3654a7e7ee772a640badd3b2844da81.png" alt="dst.x = \frac{src.x}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
-dst.y = \frac{src.y}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
-dst.z = \frac{src.z}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}
-
-dst.w = \frac{src.w}{src.x \times src.x + src.y \times src.y + src.z \times src.z + src.w \times src.w}" /></p>
-</div></div>
-<div class="section" id="ps-2-x">
-<h3>ps_2_x<a class="headerlink" href="#ps-2-x" title="Permalink to this headline">¶</a></h3>
-<p>CALLNZ - Subroutine Call If Not Zero</p>
-<blockquote>
-TBD</blockquote>
-<p>IFC - If</p>
-<blockquote>
-TBD</blockquote>
-<p>BREAKC - Break Conditional</p>
-<blockquote>
-TBD</blockquote>
-</div>
-</div>
-<div class="section" id="explanation-of-symbols-used">
-<h2>Explanation of symbols used<a class="headerlink" href="#explanation-of-symbols-used" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="functions">
-<h3>Functions<a class="headerlink" href="#functions" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<p><img class="math" src="_images/math/49428192d366caf373c0af3c3261687f12b4c883.png" alt="|x|"/> Absolute value of <cite>x</cite>.</p>
-<p><img class="math" src="_images/math/1a7cd7095a9b123f81967d8d3b14d1e02b0174e7.png" alt="\lceil x \rceil"/> Ceiling of <cite>x</cite>.</p>
-<dl class="docutils">
-<dt>clamp(x,y,z) Clamp x between y and z.</dt>
-<dd>(x < y) ? y : (x > z) ? z : x</dd>
-</dl>
-<p><img class="math" src="_images/math/441416e660d25335f27e55334ac2a06e51541c97.png" alt="\lfloor x\rfloor"/> Floor of <cite>x</cite>.</p>
-<p><img class="math" src="_images/math/1ce288a883e98c3d1027d27f6246e7d3fdc4d78c.png" alt="\log_2{x}"/> Logarithm of <cite>x</cite>, base 2.</p>
-<dl class="docutils">
-<dt>max(x,y) Maximum of x and y.</dt>
-<dd>(x > y) ? x : y</dd>
-<dt>min(x,y) Minimum of x and y.</dt>
-<dd>(x < y) ? x : y</dd>
-</dl>
-<p>partialx(x) Derivative of x relative to fragment’s X.</p>
-<p>partialy(x) Derivative of x relative to fragment’s Y.</p>
-<p>pop() Pop from stack.</p>
-<p><img class="math" src="_images/math/8f9af910fe749481919573c0dd2b132118f19d19.png" alt="x^y"/> <cite>x</cite> to the power <cite>y</cite>.</p>
-<p>push(x) Push x on stack.</p>
-<p>round(x) Round x.</p>
-<p>trunc(x) Truncate x.</p>
-</blockquote>
-</div>
-<div class="section" id="keywords">
-<h3>Keywords<a class="headerlink" href="#keywords" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<p>discard Discard fragment.</p>
-<p>dst First destination register.</p>
-<p>dst0 First destination register.</p>
-<p>pc Program counter.</p>
-<p>src First source register.</p>
-<p>src0 First source register.</p>
-<p>src1 Second source register.</p>
-<p>src2 Third source register.</p>
-<p>target Label of target instruction.</p>
-</blockquote>
-</div>
-</div>
-<div class="section" id="other-tokens">
-<h2>Other tokens<a class="headerlink" href="#other-tokens" title="Permalink to this headline">¶</a></h2>
-<div class="section" id="declaration-semantic">
-<h3>Declaration Semantic<a class="headerlink" href="#declaration-semantic" title="Permalink to this headline">¶</a></h3>
-<blockquote>
-<p>Follows Declaration token if Semantic bit is set.</p>
-<p>Since its purpose is to link a shader with other stages of the pipeline,
-it is valid to follow only those Declaration tokens that declare a register
-either in INPUT or OUTPUT file.</p>
-<p>SemanticName field contains the semantic name of the register being declared.
-There is no default value.</p>
-<p>SemanticIndex is an optional subscript that can be used to distinguish
-different register declarations with the same semantic name. The default value
-is 0.</p>
-<p>The meanings of the individual semantic names are explained in the following
-sections.</p>
-</blockquote>
-<div class="section" id="tgsi-semantic-position">
-<h4>TGSI_SEMANTIC_POSITION<a class="headerlink" href="#tgsi-semantic-position" title="Permalink to this headline">¶</a></h4>
-<p>Position, sometimes known as HPOS or WPOS for historical reasons, is the
-location of the vertex in space, in <tt class="docutils literal"><span class="pre">(x,</span> <span class="pre">y,</span> <span class="pre">z,</span> <span class="pre">w)</span></tt> format. <tt class="docutils literal"><span class="pre">x</span></tt>, <tt class="docutils literal"><span class="pre">y</span></tt>, and <tt class="docutils literal"><span class="pre">z</span></tt>
-are the Cartesian coordinates, and <tt class="docutils literal"><span class="pre">w</span></tt> is the homogenous coordinate and used
-for the perspective divide, if enabled.</p>
-<p>As a vertex shader output, position should be scaled to the viewport. When
-used in fragment shaders, position will —</p>
-<p>XXX — wait a minute. Should position be in [0,1] for x and y?</p>
-<p>XXX additionally, is there a way to configure the perspective divide? it’s
-accelerated on most chipsets AFAIK...</p>
-<p>Position, if not specified, usually defaults to <tt class="docutils literal"><span class="pre">(0,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">1)</span></tt>, and can
-be partially specified as <tt class="docutils literal"><span class="pre">(x,</span> <span class="pre">y,</span> <span class="pre">0,</span> <span class="pre">1)</span></tt> or <tt class="docutils literal"><span class="pre">(x,</span> <span class="pre">y,</span> <span class="pre">z,</span> <span class="pre">1)</span></tt>.</p>
-<p>XXX usually? can we solidify that?</p>
-</div>
-<div class="section" id="tgsi-semantic-color">
-<h4>TGSI_SEMANTIC_COLOR<a class="headerlink" href="#tgsi-semantic-color" title="Permalink to this headline">¶</a></h4>
-<p>Colors are used to, well, color the primitives. Colors are always in
-<tt class="docutils literal"><span class="pre">(r,</span> <span class="pre">g,</span> <span class="pre">b,</span> <span class="pre">a)</span></tt> format.</p>
-<p>If alpha is not specified, it defaults to 1.</p>
-</div>
-<div class="section" id="tgsi-semantic-bcolor">
-<h4>TGSI_SEMANTIC_BCOLOR<a class="headerlink" href="#tgsi-semantic-bcolor" title="Permalink to this headline">¶</a></h4>
-<p>Back-facing colors are only used for back-facing polygons, and are only valid
-in vertex shader outputs. After rasterization, all polygons are front-facing
-and COLOR and BCOLOR end up occupying the same slots in the fragment, so
-all BCOLORs effectively become regular COLORs in the fragment shader.</p>
-</div>
-<div class="section" id="tgsi-semantic-fog">
-<h4>TGSI_SEMANTIC_FOG<a class="headerlink" href="#tgsi-semantic-fog" title="Permalink to this headline">¶</a></h4>
-<p>The fog coordinate historically has been used to replace the depth coordinate
-for generation of fog in dedicated fog blocks. Gallium, however, does not use
-dedicated fog acceleration, placing it entirely in the fragment shader
-instead.</p>
-<p>The fog coordinate should be written in <tt class="docutils literal"><span class="pre">(f,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">1)</span></tt> format. Only the first
-component matters when writing from the vertex shader; the driver will ensure
-that the coordinate is in this format when used as a fragment shader input.</p>
-</div>
-<div class="section" id="tgsi-semantic-psize">
-<h4>TGSI_SEMANTIC_PSIZE<a class="headerlink" href="#tgsi-semantic-psize" title="Permalink to this headline">¶</a></h4>
-<p>PSIZE, or point size, is used to specify point sizes per-vertex. It should
-be in <tt class="docutils literal"><span class="pre">(p,</span> <span class="pre">n,</span> <span class="pre">x,</span> <span class="pre">f)</span></tt> format, where <tt class="docutils literal"><span class="pre">p</span></tt> is the point size, <tt class="docutils literal"><span class="pre">n</span></tt> is the minimum
-size, <tt class="docutils literal"><span class="pre">x</span></tt> is the maximum size, and <tt class="docutils literal"><span class="pre">f</span></tt> is the fade threshold.</p>
-<p>XXX this is arb_vp. is this what we actually do? should double-check...</p>
-<p>When using this semantic, be sure to set the appropriate state in the
-<a class="reference external" href="cso/rasterizer.html#rasterizer"><em>Rasterizer</em></a> first.</p>
-</div>
-<div class="section" id="tgsi-semantic-generic">
-<h4>TGSI_SEMANTIC_GENERIC<a class="headerlink" href="#tgsi-semantic-generic" title="Permalink to this headline">¶</a></h4>
-<p>Generic semantics are nearly always used for texture coordinate attributes,
-in <tt class="docutils literal"><span class="pre">(s,</span> <span class="pre">t,</span> <span class="pre">r,</span> <span class="pre">q)</span></tt> format. <tt class="docutils literal"><span class="pre">t</span></tt> and <tt class="docutils literal"><span class="pre">r</span></tt> may be unused for certain kinds
-of lookups, and <tt class="docutils literal"><span class="pre">q</span></tt> is the level-of-detail bias for biased sampling.</p>
-<p>These attributes are called “generic” because they may be used for anything
-else, including parameters, texture generation information, or anything that
-can be stored inside a four-component vector.</p>
-</div>
-<div class="section" id="tgsi-semantic-normal">
-<h4>TGSI_SEMANTIC_NORMAL<a class="headerlink" href="#tgsi-semantic-normal" title="Permalink to this headline">¶</a></h4>
-<p>XXX no clue.</p>
-</div>
-<div class="section" id="tgsi-semantic-face">
-<h4>TGSI_SEMANTIC_FACE<a class="headerlink" href="#tgsi-semantic-face" title="Permalink to this headline">¶</a></h4>
-<p>FACE is the facing bit, to store the facing information for the fragment
-shader. <tt class="docutils literal"><span class="pre">(f,</span> <span class="pre">0,</span> <span class="pre">0,</span> <span class="pre">1)</span></tt> is the format. The first component will be positive
-when the fragment is front-facing, and negative when the component is
-back-facing.</p>
-</div>
-<div class="section" id="tgsi-semantic-edgeflag">
-<h4>TGSI_SEMANTIC_EDGEFLAG<a class="headerlink" href="#tgsi-semantic-edgeflag" title="Permalink to this headline">¶</a></h4>
-<p>XXX no clue</p>
-</div>
-</div>
-</div>
-</div>
-
-
- </div>
- </div>
- </div>
- <div class="sphinxsidebar">
- <div class="sphinxsidebarwrapper">
- <h3><a href="index.html">Table Of Contents</a></h3>
- <ul>
-<li><a class="reference external" href="">TGSI</a><ul>
-<li><a class="reference external" href="#instruction-set">Instruction Set</a><ul>
-<li><a class="reference external" href="#from-gl-nv-vertex-program">From GL_NV_vertex_program</a></li>
-<li><a class="reference external" href="#from-gl-nv-vertex-program2">From GL_NV_vertex_program2</a></li>
-<li><a class="reference external" href="#from-gl-nv-gpu-program4">From GL_NV_gpu_program4</a></li>
-<li><a class="reference external" href="#from-gl-nv-geometry-program4">From GL_NV_geometry_program4</a></li>
-<li><a class="reference external" href="#from-glsl">From GLSL</a></li>
-<li><a class="reference external" href="#ps-2-x">ps_2_x</a></li>
-</ul>
-</li>
-<li><a class="reference external" href="#explanation-of-symbols-used">Explanation of symbols used</a><ul>
-<li><a class="reference external" href="#functions">Functions</a></li>
-<li><a class="reference external" href="#keywords">Keywords</a></li>
-</ul>
-</li>
-<li><a class="reference external" href="#other-tokens">Other tokens</a><ul>
-<li><a class="reference external" href="#declaration-semantic">Declaration Semantic</a><ul>
-<li><a class="reference external" href="#tgsi-semantic-position">TGSI_SEMANTIC_POSITION</a></li>
-<li><a class="reference external" href="#tgsi-semantic-color">TGSI_SEMANTIC_COLOR</a></li>
-<li><a class="reference external" href="#tgsi-semantic-bcolor">TGSI_SEMANTIC_BCOLOR</a></li>
-<li><a class="reference external" href="#tgsi-semantic-fog">TGSI_SEMANTIC_FOG</a></li>
-<li><a class="reference external" href="#tgsi-semantic-psize">TGSI_SEMANTIC_PSIZE</a></li>
-<li><a class="reference external" href="#tgsi-semantic-generic">TGSI_SEMANTIC_GENERIC</a></li>
-<li><a class="reference external" href="#tgsi-semantic-normal">TGSI_SEMANTIC_NORMAL</a></li>
-<li><a class="reference external" href="#tgsi-semantic-face">TGSI_SEMANTIC_FACE</a></li>
-<li><a class="reference external" href="#tgsi-semantic-edgeflag">TGSI_SEMANTIC_EDGEFLAG</a></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-
- <h4>Previous topic</h4>
- <p class="topless"><a href="intro.html"
- title="previous chapter">Introduction</a></p>
- <h4>Next topic</h4>
- <p class="topless"><a href="screen.html"
- title="next chapter">Screen</a></p>
- <h3>This Page</h3>
- <ul class="this-page-menu">
- <li><a href="_sources/tgsi.txt"
- rel="nofollow">Show Source</a></li>
- </ul>
- <div id="searchbox" style="display: none">
- <h3>Quick search</h3>
- <form class="search" action="search.html" method="get">
- <input type="text" name="q" size="18" />
- <input type="submit" value="Go" />
- <input type="hidden" name="check_keywords" value="yes" />
- <input type="hidden" name="area" value="default" />
- </form>
- <p class="searchtip" style="font-size: 90%">
- Enter search terms or a module, class or function name.
- </p>
- </div>
- <script type="text/javascript">$('#searchbox').show(0);</script>
- </div>
- </div>
- <div class="clearer"></div>
- </div>
- <div class="related">
- <h3>Navigation</h3>
- <ul>
- <li class="right" style="margin-right: 10px">
- <a href="genindex.html" title="General Index"
- >index</a></li>
- <li class="right" >
- <a href="screen.html" title="Screen"
- >next</a> |</li>
- <li class="right" >
- <a href="intro.html" title="Introduction"
- >previous</a> |</li>
- <li><a href="index.html">Gallium v0.3 documentation</a> »</li>
- </ul>
- </div>
- <div class="footer">
- © Copyright 2009, VMWare, X.org, Nouveau.
- Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 0.6.3.
- </div>
- </body>
-</html>
\ No newline at end of file