var searchIndex = {}; searchIndex["gfx"] = {"doc":"An efficient, low-level, bindless graphics API for Rust. See [the\nblog](http://gfx-rs.github.io/) for explanations and annotated examples.","items":[[3,"DrawState","gfx","An assembly of states that affect regular draw calls",null,null],[12,"primitive","","How to rasterize geometric primitives.",0,null],[12,"multi_sample","","Multi-sampling mode",0,null],[12,"scissor","","Scissor mask to use. If set, no pixel outside of this rectangle (in screen space) will be\nwritten to as a result of rendering.",0,null],[12,"stencil","","Stencil test to use. If None, no stencil testing is done.",0,null],[12,"depth","","Depth test to use. If None, no depth testing is done.",0,null],[12,"blend","","Blend function to use. If None, no blending is done.",0,null],[12,"color_mask","","Color mask to use. Each flag indicates that the given color channel can be written to, and\nthey can be OR'd together.",0,null],[4,"BlendPreset","","Blend function presets for ease of use.",null,null],[13,"Add","","When combining two fragments, add their values together, saturating at 1.0",1,null],[13,"Multiply","","When combining two fragments, multiply their values together.",1,null],[13,"Alpha","","When combining two fragments, add the value of the source times its alpha channel with the\nvalue of the destination multiplied by the inverse of the source alpha channel. Has the\nusual transparency effect: mixes the two colors using a fraction of each one specified by\nthe alpha of the source.",1,null],[13,"Invert","","When combining two fragments, subtract the destination color from a constant color\nusing the source color as weight. Has an invert effect with the constant color\nas base and source color controlling displacement from the base color.\nA white source color and a white value results in plain invert.\nThe output alpha is same as destination alpha.",1,null],[0,"state","","Fixed-function hardware state.",null,null],[4,"FrontFace","gfx::state","The front face winding order of a set of vertices.",null,null],[13,"Clockwise","","Clockwise winding order.",2,null],[13,"CounterClockwise","","Counter-clockwise winding order.",2,null],[6,"LineWidth","","",null,null],[6,"OffsetFactor","","",null,null],[6,"OffsetUnits","","",null,null],[3,"Offset","","How to offset vertices in screen space, if at all.",null,null],[12,"0","","",3,null],[12,"1","","",3,null],[4,"CullFace","","Which face, if any, to cull.",null,null],[13,"Nothing","","",4,null],[13,"Front","","",4,null],[13,"Back","","",4,null],[4,"RasterMethod","","How to rasterize a primitive.",null,null],[13,"Point","","Rasterize as a point.",5,null],[13,"Line","","Rasterize as a line with the given width.",5,null],[13,"Fill","","Rasterize as a face with a given cull face mode.",5,null],[3,"Primitive","","Primitive rasterization state. Note that GL allows different raster\nmethod to be used for front and back, while this abstraction does not.",null,null],[12,"front_face","","Which vertex winding is considered to be the front face for culling.",6,null],[12,"method","","How to rasterize this primitive.",6,null],[12,"offset","","Any polygon offset to apply.",6,null],[3,"MultiSample","","Multi-sampling rasterization mode",null,null],[4,"Comparison","","A pixel-wise comparison function.",null,null],[13,"Never","","`false`",7,null],[13,"Less","","`x < y`",7,null],[13,"LessEqual","","`x <= y`",7,null],[13,"Equal","","`x == y`",7,null],[13,"GreaterEqual","","`x >= y`",7,null],[13,"Greater","","`x > y`",7,null],[13,"NotEqual","","`x != y`",7,null],[13,"Always","","`true`",7,null],[4,"StencilOp","","Stencil mask operation.",null,null],[13,"Keep","","Keep the current value in the stencil buffer (no change).",8,null],[13,"Zero","","Set the value in the stencil buffer to zero.",8,null],[13,"Replace","","Set the stencil buffer value to `value` from `StencilSide`",8,null],[13,"IncrementClamp","","Increment the stencil buffer value, clamping to its maximum value.",8,null],[13,"IncrementWrap","","Increment the stencil buffer value, wrapping around to 0 on overflow.",8,null],[13,"DecrementClamp","","Decrement the stencil buffer value, clamping to its minimum value.",8,null],[13,"DecrementWrap","","Decrement the stencil buffer value, wrapping around to the maximum value on overflow.",8,null],[13,"Invert","","Bitwise invert the current value in the stencil buffer.",8,null],[3,"StencilSide","","Complete stencil state for a given side of a face.",null,null],[12,"fun","","Comparison function to use to determine if the stencil test passes.",9,null],[12,"value","","Reference value to compare the value in the stencil buffer with.",9,null],[12,"mask_read","","A mask that is ANDd with both the stencil buffer value and the reference value when they\nare read before doing the stencil test.",9,null],[12,"mask_write","","A mask that is ANDd with the stencil value before writing to the stencil buffer.",9,null],[12,"op_fail","","What operation to do if the stencil test fails.",9,null],[12,"op_depth_fail","","What operation to do if the stenil test passes but the depth test fails.",9,null],[12,"op_pass","","What operation to do if both the depth and stencil test pass.",9,null],[3,"Stencil","","Complete stencil state, specifying how to handle the front and back side of a face.",null,null],[12,"front","","",10,null],[12,"back","","",10,null],[3,"Depth","","Depth test state.",null,null],[12,"fun","","Comparison function to use.",11,null],[12,"write","","Specify whether to write to the depth buffer or not.",11,null],[4,"Equation","","",null,null],[13,"Add","","Adds source and destination.\nSource and destination are multiplied by blending parameters before addition.",12,null],[13,"Sub","","Subtracts destination from source.\nSource and destination are multiplied by blending parameters before subtraction.",12,null],[13,"RevSub","","Subtracts source from destination.\nSource and destination are multiplied by blending parameters before subtraction.",12,null],[13,"Min","","Component-wise minimum value of source and destination.\nBlending parameters are ignored.",12,null],[13,"Max","","Component-wise maximum value of source and destination.\nBlending parameters are ignored.",12,null],[4,"BlendValue","","",null,null],[13,"SourceColor","","",13,null],[13,"SourceAlpha","","",13,null],[13,"DestColor","","",13,null],[13,"DestAlpha","","",13,null],[13,"ConstColor","","",13,null],[13,"ConstAlpha","","",13,null],[4,"Factor","","",null,null],[13,"Zero","","",14,null],[13,"One","","",14,null],[13,"SourceAlphaSaturated","","",14,null],[13,"ZeroPlus","","",14,null],[13,"OneMinus","","",14,null],[3,"BlendChannel","","",null,null],[12,"equation","","",15,null],[12,"source","","",15,null],[12,"destination","","",15,null],[3,"Blend","","",null,null],[12,"color","","",16,null],[12,"alpha","","",16,null],[12,"value","","",16,null],[3,"ColorMask","","",null,null],[17,"RED","","",null,null],[17,"GREEN","","",null,null],[17,"BLUE","","",null,null],[17,"ALPHA","","",null,null],[17,"MASK_ALL","","",null,null],[17,"MASK_NONE","","",null,null],[0,"traits","gfx","public re-exported traits",null,null],[0,"device","","Graphics device. Not meant for direct use.",null,null],[0,"target","gfx::device","Render target specification.",null,null],[6,"Layer","gfx::device::target","",null,null],[6,"Level","","",null,null],[6,"Depth","","",null,null],[6,"Stencil","","",null,null],[3,"Rect","","A screen space rectangle",null,null],[12,"x","","",17,null],[12,"y","","",17,null],[12,"w","","",17,null],[12,"h","","",17,null],[6,"ColorValue","","",null,null],[3,"Mask","","Output mask, used for blitting and clearing",null,null],[17,"COLOR","","",null,null],[17,"COLOR0","","",null,null],[17,"COLOR1","","",null,null],[17,"COLOR2","","",null,null],[17,"COLOR3","","",null,null],[17,"DEPTH","","",null,null],[17,"STENCIL","","",null,null],[3,"Mirror","","Mirroring flags, used for blitting",null,null],[17,"MIRROR_X","","",null,null],[17,"MIRROR_Y","","",null,null],[3,"ClearData","","How to clear a frame.",null,null],[12,"color","","The color to clear the frame with",18,null],[12,"depth","","The depth value to clear the frame with",18,null],[12,"stencil","","The stencil value to clear the frame with",18,null],[0,"state","gfx::device","Fixed-function hardware state.",null,null],[4,"FrontFace","gfx::device::state","The front face winding order of a set of vertices.",null,null],[13,"Clockwise","","Clockwise winding order.",2,null],[13,"CounterClockwise","","Counter-clockwise winding order.",2,null],[6,"LineWidth","","",null,null],[6,"OffsetFactor","","",null,null],[6,"OffsetUnits","","",null,null],[3,"Offset","","How to offset vertices in screen space, if at all.",null,null],[12,"0","","",3,null],[12,"1","","",3,null],[4,"CullFace","","Which face, if any, to cull.",null,null],[13,"Nothing","","",4,null],[13,"Front","","",4,null],[13,"Back","","",4,null],[4,"RasterMethod","","How to rasterize a primitive.",null,null],[13,"Point","","Rasterize as a point.",5,null],[13,"Line","","Rasterize as a line with the given width.",5,null],[13,"Fill","","Rasterize as a face with a given cull face mode.",5,null],[3,"Primitive","","Primitive rasterization state. Note that GL allows different raster\nmethod to be used for front and back, while this abstraction does not.",null,null],[12,"front_face","","Which vertex winding is considered to be the front face for culling.",6,null],[12,"method","","How to rasterize this primitive.",6,null],[12,"offset","","Any polygon offset to apply.",6,null],[3,"MultiSample","","Multi-sampling rasterization mode",null,null],[4,"Comparison","","A pixel-wise comparison function.",null,null],[13,"Never","","`false`",7,null],[13,"Less","","`x < y`",7,null],[13,"LessEqual","","`x <= y`",7,null],[13,"Equal","","`x == y`",7,null],[13,"GreaterEqual","","`x >= y`",7,null],[13,"Greater","","`x > y`",7,null],[13,"NotEqual","","`x != y`",7,null],[13,"Always","","`true`",7,null],[4,"StencilOp","","Stencil mask operation.",null,null],[13,"Keep","","Keep the current value in the stencil buffer (no change).",8,null],[13,"Zero","","Set the value in the stencil buffer to zero.",8,null],[13,"Replace","","Set the stencil buffer value to `value` from `StencilSide`",8,null],[13,"IncrementClamp","","Increment the stencil buffer value, clamping to its maximum value.",8,null],[13,"IncrementWrap","","Increment the stencil buffer value, wrapping around to 0 on overflow.",8,null],[13,"DecrementClamp","","Decrement the stencil buffer value, clamping to its minimum value.",8,null],[13,"DecrementWrap","","Decrement the stencil buffer value, wrapping around to the maximum value on overflow.",8,null],[13,"Invert","","Bitwise invert the current value in the stencil buffer.",8,null],[3,"StencilSide","","Complete stencil state for a given side of a face.",null,null],[12,"fun","","Comparison function to use to determine if the stencil test passes.",9,null],[12,"value","","Reference value to compare the value in the stencil buffer with.",9,null],[12,"mask_read","","A mask that is ANDd with both the stencil buffer value and the reference value when they\nare read before doing the stencil test.",9,null],[12,"mask_write","","A mask that is ANDd with the stencil value before writing to the stencil buffer.",9,null],[12,"op_fail","","What operation to do if the stencil test fails.",9,null],[12,"op_depth_fail","","What operation to do if the stenil test passes but the depth test fails.",9,null],[12,"op_pass","","What operation to do if both the depth and stencil test pass.",9,null],[3,"Stencil","","Complete stencil state, specifying how to handle the front and back side of a face.",null,null],[12,"front","","",10,null],[12,"back","","",10,null],[3,"Depth","","Depth test state.",null,null],[12,"fun","","Comparison function to use.",11,null],[12,"write","","Specify whether to write to the depth buffer or not.",11,null],[4,"Equation","","",null,null],[13,"Add","","Adds source and destination.\nSource and destination are multiplied by blending parameters before addition.",12,null],[13,"Sub","","Subtracts destination from source.\nSource and destination are multiplied by blending parameters before subtraction.",12,null],[13,"RevSub","","Subtracts source from destination.\nSource and destination are multiplied by blending parameters before subtraction.",12,null],[13,"Min","","Component-wise minimum value of source and destination.\nBlending parameters are ignored.",12,null],[13,"Max","","Component-wise maximum value of source and destination.\nBlending parameters are ignored.",12,null],[4,"BlendValue","","",null,null],[13,"SourceColor","","",13,null],[13,"SourceAlpha","","",13,null],[13,"DestColor","","",13,null],[13,"DestAlpha","","",13,null],[13,"ConstColor","","",13,null],[13,"ConstAlpha","","",13,null],[4,"Factor","","",null,null],[13,"Zero","","",14,null],[13,"One","","",14,null],[13,"SourceAlphaSaturated","","",14,null],[13,"ZeroPlus","","",14,null],[13,"OneMinus","","",14,null],[3,"BlendChannel","","",null,null],[12,"equation","","",15,null],[12,"source","","",15,null],[12,"destination","","",15,null],[3,"Blend","","",null,null],[12,"color","","",16,null],[12,"alpha","","",16,null],[12,"value","","",16,null],[3,"ColorMask","","",null,null],[17,"RED","","",null,null],[17,"GREEN","","",null,null],[17,"BLUE","","",null,null],[17,"ALPHA","","",null,null],[17,"MASK_ALL","","",null,null],[17,"MASK_NONE","","",null,null],[3,"NotSupported","gfx::device","Generic error for features that are not supported\nby the device capabilities.",null,null],[3,"Capabilities","","Features that the device supports.",null,null],[12,"shader_model","","",19,null],[12,"max_vertex_count","","",19,null],[12,"max_index_count","","",19,null],[12,"max_draw_buffers","","",19,null],[12,"max_texture_size","","",19,null],[12,"max_vertex_attributes","","",19,null],[12,"buffer_role_change_allowed","","In GLES it is not allowed to re-bind a buffer to a different\ntarget than the one it was initialized with.",19,null],[12,"array_buffer_supported","","",19,null],[12,"fragment_output_supported","","",19,null],[12,"immutable_storage_supported","","",19,null],[12,"instance_base_supported","","",19,null],[12,"instance_call_supported","","",19,null],[12,"instance_rate_supported","","",19,null],[12,"render_targets_supported","","",19,null],[12,"sampler_objects_supported","","",19,null],[12,"srgb_color_supported","","",19,null],[12,"uniform_block_supported","","",19,null],[12,"vertex_base_supported","","",19,null],[3,"BufferInfo","","An information block that is immutable and associated with each buffer",null,null],[12,"role","","Role",20,null],[12,"usage","","Usage hint",20,null],[12,"size","","Size in bytes",20,null],[4,"MapAccess","","Specifies the access allowed to a buffer mapping.",null,null],[13,"Readable","","Only allow reads.",21,null],[13,"Writable","","Only allow writes.",21,null],[13,"RW","","Allow full access.",21,null],[4,"PrimitiveType","","Describes what geometric primitives are created from vertex data.",null,null],[13,"Point","","Each vertex represents a single point.",22,null],[13,"Line","","Each pair of vertices represent a single line segment. For example, with `[a, b, c, d,\ne]`, `a` and `b` form a line, `c` and `d` form a line, and `e` is discarded.",22,null],[13,"LineStrip","","Every two consecutive vertices represent a single line segment. Visually forms a "path" of\nlines, as they are all connected. For example, with `[a, b, c]`, `a` and `b` form a line\nline, and `b` and `c` form a line.",22,null],[13,"TriangleList","","Each triplet of vertices represent a single triangle. For example, with `[a, b, c, d, e]`,\n`a`, `b`, and `c` form a triangle, `d` and `e` are discarded.",22,null],[13,"TriangleStrip","","Every three consecutive vertices represent a single triangle. For example, with `[a, b, c,\nd]`, `a`, `b`, and `c` form a triangle, and `b`, `c`, and `d` form a triangle.",22,null],[13,"TriangleFan","","The first vertex with the last two are forming a triangle. For example, with `[a, b, c, d\n]`, `a` , `b`, and `c` form a triangle, and `a`, `c`, and `d` form a triangle.",22,null],[4,"BufferRole","","Role of the memory buffer. GLES doesn't chaning bind points for buffers.",null,null],[13,"Vertex","","Generic vertex buffer",23,null],[13,"Index","","Index buffer",23,null],[13,"Uniform","","Uniform block buffer",23,null],[4,"BufferUsage","","A hint as to how this buffer will be used.",null,null],[13,"Static","","Once uploaded, this buffer will rarely change, but will be read from often.",24,null],[13,"Dynamic","","This buffer will be updated "frequently", and will be read from multiple times between\nupdates.",24,null],[13,"Stream","","This buffer always or almost always be updated after each read.",24,null],[4,"BufferUpdateError","","An error happening on buffer updates.",null,null],[13,"OutOfBounds","","Trying to change the contents outside of the allocation.",25,null],[5,"as_byte_slice","","Treat a given slice as `&[u8]` for the given function call",null,null],[0,"attrib","","Vertex attribute types.",null,null],[3,"Format","gfx::device::attrib","Complete format of a vertex attribute.",null,null],[12,"elem_count","","Number of elements per vertex",26,null],[12,"elem_type","","Type of a single element",26,null],[12,"offset","","Offset in bytes to the first vertex",26,null],[12,"stride","","Stride in bytes between consecutive vertices",26,null],[12,"instance_rate","","Instance rate per vertex",26,null],[3,"FixedPoint","","Fixed-point version of integer attributes.",null,null],[12,"0","","",27,null],[3,"Floater","","Floating-point version of integer attributes.",null,null],[12,"0","","",28,null],[4,"SignFlag","","The signedness of an attribute.",null,null],[13,"Signed","","",29,null],[13,"Unsigned","","",29,null],[4,"IntSubType","","Describes how an integer value is interpreted by the shader.",null,null],[13,"Raw","","",30,null],[13,"Normalized","","",30,null],[13,"AsFloat","","",30,null],[4,"IntSize","","The size of an integer attribute, in bits.",null,null],[13,"U8","","",31,null],[13,"U16","","",31,null],[13,"U32","","",31,null],[4,"FloatSubType","","Type of a floating point attribute on the shader side.",null,null],[13,"Default","","",32,null],[13,"Precision","","",32,null],[4,"FloatSize","","The size of a floating point attribute, in bits.",null,null],[13,"F16","","",33,null],[13,"F32","","",33,null],[13,"F64","","",33,null],[4,"Type","","The type of an attribute.",null,null],[13,"Int","","",34,null],[13,"Float","","",34,null],[13,"Special","","",34,null],[0,"format","","A service module for deriving `ToFormat` for primitive types.",null,null],[8,"ToFormat","gfx::device::attrib::format","A trait for getting the format out of vertex element types.\nNeeded to implement `VertexFormat` with a macro.",null,null],[10,"describe","","",35,null],[8,"ToType","","A helper trait for implementing ToFormat.",null,null],[10,"describe","","",36,{"inputs":[],"output":{"name":"type"}}],[11,"describe","gfx::device::attrib","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",27,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[11,"describe","","",28,{"inputs":[],"output":{"name":"type"}}],[6,"Count","","Number of elements per attribute, only 1 to 4 are supported",null,null],[6,"Offset","","Offset of an attribute from the start of the buffer, in bytes",null,null],[6,"Stride","","Offset between attribute values, in bytes",null,null],[6,"InstanceRate","","The number of instances between each subsequent attribute value",null,null],[11,"fmt","","",29,null],[11,"clone","","",29,null],[11,"hash","","",29,null],[11,"partial_cmp","","",29,null],[11,"eq","","",29,null],[11,"cmp","","",29,null],[11,"fmt","","",30,null],[11,"clone","","",30,null],[11,"hash","","",30,null],[11,"partial_cmp","","",30,null],[11,"eq","","",30,null],[11,"cmp","","",30,null],[11,"fmt","","",31,null],[11,"clone","","",31,null],[11,"hash","","",31,null],[11,"partial_cmp","","",31,null],[11,"eq","","",31,null],[11,"cmp","","",31,null],[11,"fmt","","",32,null],[11,"clone","","",32,null],[11,"hash","","",32,null],[11,"partial_cmp","","",32,null],[11,"eq","","",32,null],[11,"cmp","","",32,null],[11,"fmt","","",33,null],[11,"clone","","",33,null],[11,"hash","","",33,null],[11,"partial_cmp","","",33,null],[11,"eq","","",33,null],[11,"cmp","","",33,null],[11,"fmt","","",34,null],[11,"clone","","",34,null],[11,"hash","","",34,null],[11,"partial_cmp","","",34,null],[11,"lt","","",34,null],[11,"le","","",34,null],[11,"gt","","",34,null],[11,"ge","","",34,null],[11,"eq","","",34,null],[11,"ne","","",34,null],[11,"cmp","","",34,null],[11,"is_compatible","","Check if the attribute is compatible with a particular shader type.",34,null],[11,"get_size","","Return the size of the type in bytes.",34,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"hash","","",26,null],[11,"partial_cmp","","",26,null],[11,"lt","","",26,null],[11,"le","","",26,null],[11,"gt","","",26,null],[11,"ge","","",26,null],[11,"eq","","",26,null],[11,"ne","","",26,null],[11,"cmp","","",26,null],[11,"hash","","",27,null],[11,"eq","","",27,null],[11,"ne","","",27,null],[11,"fmt","","",27,null],[11,"clone","","",27,null],[11,"cast2","","Cast a fixed-size2 array to fixed-point.",27,null],[11,"cast3","","Cast a fixed-size3 array to fixed-point.",27,null],[11,"cast4","","Cast a fixed-size4 array to fixed-point.",27,null],[11,"hash","","",28,null],[11,"eq","","",28,null],[11,"ne","","",28,null],[11,"fmt","","",28,null],[11,"clone","","",28,null],[11,"cast2","","Cast a fixed-size2 array to floating-point.",28,null],[11,"cast3","","Cast a fixed-size3 array to floating-point.",28,null],[11,"cast4","","Cast a fixed-size4 array to floating-point.",28,null],[0,"command","gfx::device","",null,null],[3,"CommandBuffer","gfx::device::command","Generic command buffer to be used by multiple backends",null,null],[4,"Command","","Serialized device command.",null,null],[13,"BindProgram","","",37,null],[13,"BindArrayBuffer","","",37,null],[13,"BindAttribute","","",37,null],[13,"BindIndex","","",37,null],[13,"BindFrameBuffer","","",37,null],[13,"UnbindTarget","","",37,null],[13,"BindTargetSurface","","",37,null],[13,"BindTargetTexture","","",37,null],[13,"BindUniformBlock","","",37,null],[13,"BindUniform","","",37,null],[13,"BindTexture","","",37,null],[13,"SetDrawColorBuffers","","",37,null],[13,"SetPrimitiveState","","",37,null],[13,"SetViewport","","",37,null],[13,"SetMultiSampleState","","",37,null],[13,"SetScissor","","",37,null],[13,"SetDepthStencilState","","",37,null],[13,"SetBlendState","","",37,null],[13,"SetColorMask","","",37,null],[13,"UpdateBuffer","","",37,null],[13,"UpdateTexture","","",37,null],[13,"Clear","","",37,null],[13,"Draw","","",37,null],[13,"DrawIndexed","","",37,null],[13,"Blit","","",37,null],[11,"fmt","","",37,null],[11,"clone","","",37,null],[11,"iter","","",38,null],[11,"new","","",38,{"inputs":[],"output":{"name":"commandbuffer"}}],[11,"clear","","",38,null],[11,"bind_program","","",38,null],[11,"bind_array_buffer","","",38,null],[11,"bind_attribute","","",38,null],[11,"bind_index","","",38,null],[11,"bind_frame_buffer","","",38,null],[11,"unbind_target","","",38,null],[11,"bind_target_surface","","",38,null],[11,"bind_target_texture","","",38,null],[11,"bind_uniform_block","","",38,null],[11,"bind_uniform","","",38,null],[11,"bind_texture","","",38,null],[11,"set_draw_color_buffers","","",38,null],[11,"set_primitive","","",38,null],[11,"set_viewport","","",38,null],[11,"set_multi_sample","","",38,null],[11,"set_scissor","","",38,null],[11,"set_depth_stencil","","",38,null],[11,"set_blend","","",38,null],[11,"set_color_mask","","",38,null],[11,"update_buffer","","",38,null],[11,"update_texture","","",38,null],[11,"call_clear","","",38,null],[11,"call_draw","","",38,null],[11,"call_draw_indexed","","",38,null],[11,"call_blit","","",38,null],[0,"draw","gfx::device","Command Buffer device interface",null,null],[3,"DataPointer","gfx::device::draw","The place of some data in the data buffer.",null,null],[3,"DataBuffer","","A buffer of data accompanying the commands. It can be vertex data, texture\nupdates, uniform blocks, or even some draw states.",null,null],[4,"Access","","Type of the frame buffer access.",null,null],[13,"Draw","","Draw access",39,null],[13,"Read","","Read access",39,null],[4,"Gamma","","Type of the gamma transformation for framebuffer writes.",null,null],[13,"Original","","Process in linear color space.",40,null],[13,"Convert","","Convert to sRGB color space.",40,null],[4,"Target","","When rendering, each "output" of the fragment shader goes to a specific target. A `Plane` can\nbe bound to a target, causing writes to that target to affect the `Plane`.",null,null],[13,"Color","","Color data.",41,null],[13,"Depth","","Depth data.",41,null],[13,"Stencil","","Stencil data.",41,null],[13,"DepthStencil","","A target for both depth and stencil data at once.",41,null],[6,"InstanceOption","","Optional instance parameters",null,null],[8,"CommandBuffer","","An interface of the abstract command buffer. It collects commands in an\nefficient API-specific manner, to be ready for execution on the device.",null,null],[10,"new","","An empty constructor",42,{"inputs":[],"output":{"name":"self"}}],[10,"clear","","Clear the command buffer contents, retain the allocated storage",42,null],[10,"bind_program","","Bind a shader program",42,null],[10,"bind_array_buffer","","Bind an array buffer object",42,null],[10,"bind_attribute","","Bind a vertex attribute",42,null],[10,"bind_index","","Bind an index buffer",42,null],[10,"bind_frame_buffer","","Bind a frame buffer object",42,null],[10,"unbind_target","","Unbind any surface from the specified target slot",42,null],[10,"bind_target_surface","","Bind a surface to the specified target slot",42,null],[10,"bind_target_texture","","Bind a level of the texture to the specified target slot",42,null],[10,"bind_uniform_block","","Bind a uniform block",42,null],[10,"bind_uniform","","Bind a single uniform in the default block",42,null],[10,"bind_texture","","Bind a texture",42,null],[10,"set_draw_color_buffers","","Select, which color buffers are going to be targetted by the shader",42,null],[10,"set_primitive","","Set primitive topology",42,null],[10,"set_viewport","","Set viewport rectangle",42,null],[10,"set_multi_sample","","Set multi-sampling state",42,null],[10,"set_scissor","","Set scissor test",42,null],[10,"set_depth_stencil","","Set depth and stencil states",42,null],[10,"set_blend","","Set blend state",42,null],[10,"set_color_mask","","Set output color mask for all targets",42,null],[10,"update_buffer","","Update a vertex/index/uniform buffer",42,null],[10,"update_texture","","Update a texture region",42,null],[10,"call_clear","","Clear target surfaces",42,null],[10,"call_draw","","Draw a primitive",42,null],[10,"call_draw_indexed","","Draw a primitive with index buffer",42,null],[10,"call_blit","","Blit from one target to another",42,null],[11,"fmt","","",43,null],[11,"eq","","",43,null],[11,"ne","","",43,null],[11,"clone","","",43,null],[11,"new","","Create a fresh new data buffer.",44,{"inputs":[],"output":{"name":"databuffer"}}],[11,"clear","","Clear all the data but retain the allocated storage.",44,null],[11,"add_struct","","Copy a given structure into the buffer, return the offset and the size.",44,null],[11,"add_vec","","Copy a given vector slice into the buffer",44,null],[11,"get_ref","","Return a reference to a stored data object.",44,null],[11,"fmt","","",39,null],[11,"eq","","",39,null],[11,"clone","","",39,null],[11,"fmt","","",40,null],[11,"eq","","",40,null],[11,"clone","","",40,null],[11,"fmt","","",41,null],[11,"eq","","",41,null],[11,"ne","","",41,null],[11,"clone","","",41,null],[0,"dummy","gfx::device","",null,null],[3,"DummyDevice","gfx::device::dummy","Dummy device which does minimal work, just to allow testing gfx-rs apps for\ncompilation.",null,null],[4,"DummyResources","","",null,null],[11,"eq","","",45,null],[11,"hash","","",45,null],[11,"fmt","","",45,null],[11,"clone","","",45,null],[11,"new","","",46,{"inputs":[{"name":"capabilities"}],"output":{"name":"dummydevice"}}],[11,"get_capabilities","","",46,null],[11,"reset_state","","",46,null],[11,"submit","","",46,null],[11,"cleanup","","",46,null],[0,"handle","gfx::device","Device resource handles",null,null],[3,"RawBuffer","gfx::device::handle","Raw (untyped) Buffer Handle",null,null],[3,"Buffer","","Type-safe buffer handle",null,null],[3,"ArrayBuffer","","Array Buffer Handle",null,null],[3,"Shader","","Shader Handle",null,null],[3,"Program","","Program Handle",null,null],[3,"FrameBuffer","","Frame Buffer Handle",null,null],[3,"Surface","","Surface Handle",null,null],[3,"Texture","","Texture Handle",null,null],[3,"Sampler","","Sampler Handle",null,null],[3,"Fence","","Fence Handle",null,null],[3,"Manager","","Stores reference-counted resources used in a command buffer.\nSeals actual resource names behind the interface, automatically\nreferencing them both by the Factory on resource creation\nand the Renderer during CommandBuffer population.",null,null],[8,"Producer","","A service trait to be used by the device implementation",null,null],[10,"make_buffer","","",47,null],[10,"make_array_buffer","","",47,null],[10,"make_shader","","",47,null],[10,"make_program","","",47,null],[10,"make_frame_buffer","","",47,null],[10,"make_surface","","",47,null],[10,"make_texture","","",47,null],[10,"make_sampler","","",47,null],[10,"make_fence","","",47,null],[10,"clean_with","","Walk through all the handles, keep ones that are reference elsewhere\nand call the provided delete function (resource-specific) for others",47,null],[11,"eq","","",48,null],[11,"ne","","",48,null],[11,"hash","","",48,null],[11,"fmt","","",48,null],[11,"clone","","",48,null],[11,"get_info","","Get raw buffer info",48,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",48,null],[11,"eq","","",49,null],[11,"ne","","",49,null],[11,"hash","","",49,null],[11,"fmt","","",49,null],[11,"clone","","",49,null],[11,"from_raw","","Create a type-safe Buffer from a RawBuffer",49,{"inputs":[{"name":"rawbuffer"}],"output":{"name":"buffer"}}],[11,"cast","","Cast the type this Buffer references",49,null],[11,"raw","","Get the underlying raw Handle",49,null],[11,"get_info","","Get the associated information about the buffer",49,null],[11,"len","","Get the number of elements in the buffer.",49,null],[11,"eq","","",50,null],[11,"ne","","",50,null],[11,"hash","","",50,null],[11,"fmt","","",50,null],[11,"clone","","",50,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",50,null],[11,"eq","","",51,null],[11,"ne","","",51,null],[11,"hash","","",51,null],[11,"fmt","","",51,null],[11,"clone","","",51,null],[11,"get_stage","","Get shader stage",51,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",51,null],[11,"eq","","",52,null],[11,"ne","","",52,null],[11,"fmt","","",52,null],[11,"clone","","",52,null],[11,"get_info","","Get program info",52,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",52,null],[11,"eq","","",53,null],[11,"ne","","",53,null],[11,"hash","","",53,null],[11,"fmt","","",53,null],[11,"clone","","",53,null],[11,"eq","","",54,null],[11,"ne","","",54,null],[11,"hash","","",54,null],[11,"fmt","","",54,null],[11,"clone","","",54,null],[11,"get_info","","Get surface info",54,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",54,null],[11,"eq","","",55,null],[11,"ne","","",55,null],[11,"hash","","",55,null],[11,"fmt","","",55,null],[11,"clone","","",55,null],[11,"get_info","","Get texture info",55,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",55,null],[11,"eq","","",56,null],[11,"ne","","",56,null],[11,"fmt","","",56,null],[11,"clone","","",56,null],[11,"get_info","","Get sampler info",56,null],[11,"cmp_ref","","Compare ethe handle by the reference (not data)",56,null],[11,"eq","","",57,null],[11,"ne","","",57,null],[11,"fmt","","",57,null],[11,"clone","","",57,null],[11,"make_buffer","","",58,null],[11,"make_array_buffer","","",58,null],[11,"make_shader","","",58,null],[11,"make_program","","",58,null],[11,"make_frame_buffer","","",58,null],[11,"make_surface","","",58,null],[11,"make_texture","","",58,null],[11,"make_sampler","","",58,null],[11,"make_fence","","",58,null],[11,"clean_with","","",58,null],[11,"new","","Create a new handle manager",58,{"inputs":[],"output":{"name":"manager"}}],[11,"clear","","Clear all references",58,null],[11,"extend","","Extend with all references of another handle manager",58,null],[11,"count","","Count the total number of referenced resources",58,null],[11,"ref_buffer","","Reference a buffer",58,null],[11,"ref_array_buffer","","Reference am array buffer",58,null],[11,"ref_shader","","Reference a shader",58,null],[11,"ref_program","","Reference a program",58,null],[11,"ref_frame_buffer","","Reference a frame buffer",58,null],[11,"ref_surface","","Reference a surface",58,null],[11,"ref_texture","","Reference a texture",58,null],[11,"ref_sampler","","Reference a sampler",58,null],[11,"ref_fence","","Reference a fence",58,null],[0,"mapping","gfx::device","Memory mapping",null,null],[3,"Readable","gfx::device::mapping","A handle to a readable map, which can be sliced.",null,null],[3,"Writable","","A handle to a writable map, which only allows setting elements.",null,null],[3,"RW","","A handle to a complete readable/writable map, which can be sliced both ways.",null,null],[8,"Raw","","Unsafe operations for a buffer mapping",null,null],[10,"set","","Set the element at `index` to `val`. Not bounds-checked.",59,null],[10,"to_slice","","Returns a slice of the specified length.",59,null],[10,"to_mut_slice","","Returns a mutable slice of the specified length.",59,null],[8,"Builder","","A service trait with methods for mapping already implemented.\nTo be used by device back ends.",null,null],[16,"RawMapping","","",60,null],[10,"map_readable","","",60,null],[10,"map_writable","","",60,null],[10,"map_read_write","","",60,null],[11,"deref","","",61,null],[11,"drop","","",61,null],[11,"set","","Set a value in the buffer",62,null],[11,"drop","","",62,null],[11,"deref","","",63,null],[11,"deref_mut","","",63,null],[11,"drop","","",63,null],[0,"shade","gfx::device","Shader handling.",null,null],[3,"Attribute","gfx::device::shade","Vertex information that a shader takes as input.",null,null],[12,"name","","Name of this attribute.",64,null],[12,"location","","Vertex attribute binding.",64,null],[12,"count","","Number of elements this attribute represents.",64,null],[12,"base_type","","Type that this attribute is composed of.",64,null],[12,"container","",""Scalarness" of this attribute.",64,null],[3,"UniformVar","","Uniform, a type of shader parameter representing data passed to the program.",null,null],[12,"name","","Name of this uniform.",65,null],[12,"location","","Location of this uniform in the program.",65,null],[12,"count","","Number of elements this uniform represents.",65,null],[12,"base_type","","Type that this uniform is composed of",65,null],[12,"container","",""Scalarness" of this uniform.",65,null],[3,"BlockVar","","A uniform block.",null,null],[12,"name","","Name of this uniform block.",66,null],[12,"size","","Size (in bytes) of this uniform block's data.",66,null],[12,"usage","","What program stage this uniform block can be used in, as a bitflag.",66,null],[3,"SamplerVar","","Sampler, a type of shader parameter representing a texture that can be sampled.",null,null],[12,"name","","Name of this sampler variable.",67,null],[12,"location","","Location of this sampler in the program.",67,null],[12,"base_type","","Base type for the sampler.",67,null],[12,"sampler_type","","Type of this sampler.",67,null],[3,"ProgramInfo","","Metadata about a program.",null,null],[12,"attributes","","Attributes in the program.",68,null],[12,"uniforms","","Uniforms in the program",68,null],[12,"blocks","","Uniform blocks in the program",68,null],[12,"textures","","Samplers in the program",68,null],[4,"IsArray","","Whether the sampler samples an array texture.",null,null],[13,"Array","","",69,null],[13,"NoArray","","",69,null],[4,"IsShadow","","Whether the sampler samples a shadow texture (texture with a depth comparison)",null,null],[13,"Shadow","","",70,null],[13,"NoShadow","","",70,null],[4,"IsMultiSample","","Whether the sampler samples a multisample texture.",null,null],[13,"MultiSample","","",71,null],[13,"NoMultiSample","","",71,null],[4,"IsRect","","Whether the sampler samples a rectangle texture.",null,null],[13,"Rect","","",72,null],[13,"NoRect","","",72,null],[4,"MatrixFormat","","Whether the matrix is column or row major.",null,null],[13,"ColumnMajor","","",73,null],[13,"RowMajor","","",73,null],[4,"SamplerType","","What texture type this sampler samples from.",null,null],[13,"SamplerBuffer","","Sample from a buffer.",74,null],[13,"Sampler1D","","Sample from a 1D texture",74,null],[13,"Sampler2D","","Sample from a 2D texture",74,null],[13,"Sampler3D","","Sample from a 3D texture",74,null],[13,"SamplerCube","","Sample from a cubemap.",74,null],[4,"BaseType","","Base type of this shader parameter.",null,null],[13,"F32","","",75,null],[13,"F64","","",75,null],[13,"I32","","",75,null],[13,"U32","","",75,null],[13,"Bool","","",75,null],[4,"ContainerType","","Number of components this parameter represents.",null,null],[13,"Single","","Scalar value",76,null],[13,"Vector","","A vector with `Dimension` components.",76,null],[13,"Matrix","","A matrix.",76,null],[4,"Stage","","Which program stage this shader represents.",null,null],[13,"Vertex","","",77,null],[13,"Geometry","","",77,null],[13,"Fragment","","",77,null],[4,"UniformValue","","A value that can be uploaded to the device as a uniform.",null,null],[13,"I32","","",78,null],[13,"F32","","",78,null],[13,"I32Vector2","","",78,null],[13,"I32Vector3","","",78,null],[13,"I32Vector4","","",78,null],[13,"F32Vector2","","",78,null],[13,"F32Vector3","","",78,null],[13,"F32Vector4","","",78,null],[13,"F32Matrix2","","",78,null],[13,"F32Matrix3","","",78,null],[13,"F32Matrix4","","",78,null],[4,"CompatibilityError","","Error type for trying to store a UniformValue in a UniformVar.",null,null],[13,"ErrorArraySize","","Array sizes differ between the value and the var (trying to upload a vec2 as a vec4, etc)",79,null],[13,"ErrorBaseType","","Base types differ between the value and the var (trying to upload a f32 as a u16, etc)",79,null],[13,"ErrorContainer","","Container-ness differs between the value and the var (trying to upload a scalar as a vec4,\netc)",79,null],[4,"CreateShaderError","","An error type for creating shaders.",null,null],[13,"ModelNotSupported","","The device does not support the requested shader model.",80,null],[13,"ShaderCompilationFailed","","The shader failed to compile.",80,null],[4,"CreateProgramError","","An error type for creating programs.",null,null],[13,"LinkFail","","",81,null],[13,"TargetMismatch","","",81,null],[4,"ShaderModel","","Shader model supported by the device, corresponds to the HLSL shader models.",null,null],[13,"Unsupported","","",82,null],[13,"Version30","","",82,null],[13,"Version40","","",82,null],[13,"Version41","","",82,null],[13,"Version50","","",82,null],[6,"Dimension","","Number of components in a container type (vectors/matrices)",null,null],[6,"Location","","Location of a parameter in the program.",null,null],[11,"fmt","","",69,null],[11,"eq","","",69,null],[11,"clone","","",69,null],[11,"fmt","","",70,null],[11,"eq","","",70,null],[11,"clone","","",70,null],[11,"fmt","","",71,null],[11,"eq","","",71,null],[11,"clone","","",71,null],[11,"fmt","","",72,null],[11,"eq","","",72,null],[11,"clone","","",72,null],[11,"fmt","","",73,null],[11,"eq","","",73,null],[11,"clone","","",73,null],[11,"fmt","","",74,null],[11,"eq","","",74,null],[11,"ne","","",74,null],[11,"clone","","",74,null],[11,"fmt","","",75,null],[11,"eq","","",75,null],[11,"clone","","",75,null],[11,"fmt","","",76,null],[11,"eq","","",76,null],[11,"ne","","",76,null],[11,"clone","","",76,null],[11,"eq","","",77,null],[11,"hash","","",77,null],[11,"fmt","","",77,null],[11,"clone","","",77,null],[11,"is_same_type","","Whether two `UniformValue`s have the same type.",78,null],[11,"clone","","",78,null],[11,"fmt","","",78,null],[11,"fmt","","",64,null],[11,"eq","","",64,null],[11,"ne","","",64,null],[11,"clone","","",64,null],[11,"fmt","","",65,null],[11,"eq","","",65,null],[11,"ne","","",65,null],[11,"clone","","",65,null],[11,"fmt","","",66,null],[11,"eq","","",66,null],[11,"ne","","",66,null],[11,"clone","","",66,null],[11,"fmt","","",67,null],[11,"eq","","",67,null],[11,"ne","","",67,null],[11,"clone","","",67,null],[11,"fmt","","",68,null],[11,"eq","","",68,null],[11,"ne","","",68,null],[11,"clone","","",68,null],[11,"fmt","","",79,null],[11,"clone","","",79,null],[11,"is_compatible","","Whether a value is compatible with this variable. That is, whether the value can be stored\nin this variable.",65,null],[11,"fmt","","",80,null],[11,"eq","","",80,null],[11,"ne","","",80,null],[11,"clone","","",80,null],[11,"fmt","","",81,null],[11,"eq","","",81,null],[11,"ne","","",81,null],[11,"clone","","",81,null],[11,"fmt","","",82,null],[11,"partial_cmp","","",82,null],[11,"eq","","",82,null],[11,"clone","","",82,null],[11,"to_number","","Return the shader model as a numeric value.",82,null],[0,"tex","gfx::device","Texture creation and modification.",null,null],[3,"SurfaceInfo","gfx::device::tex","Describes the storage of a surface.",null,null],[12,"width","","",83,null],[12,"height","","",83,null],[12,"format","","",83,null],[12,"aa_mode","","",83,null],[3,"TextureInfo","","Describes the storage of a texture.",null,null],[12,"width","","",84,null],[12,"height","","",84,null],[12,"depth","","",84,null],[12,"levels","","Number of mipmap levels. Defaults to -1, which stands for unlimited.\nMipmap levels at equal or above `levels` can not be loaded or sampled\nby the shader. width and height of each consecutive mipmap level is\nhalved, starting from level 0.",84,null],[12,"kind","","",84,null],[12,"format","","",84,null],[3,"ImageInfo","","Describes a subvolume of a texture, which image data can be uploaded into.",null,null],[12,"xoffset","","",85,null],[12,"yoffset","","",85,null],[12,"zoffset","","",85,null],[12,"width","","",85,null],[12,"height","","",85,null],[12,"depth","","",85,null],[12,"format","","Format of each texel.",85,null],[12,"mipmap","","Which mipmap to select.",85,null],[3,"SamplerInfo","","Specifies how to sample from a texture.",null,null],[12,"filtering","","Filter method to use.",86,null],[12,"wrap_mode","","Wrapping mode for each of the U, V, and W axis (S, T, and R in OpenGL\nspeak)",86,null],[12,"lod_bias","","This bias is added to every computed mipmap level (N + lod_bias). For\nexample, if it would select mipmap level 2 and lod_bias is 1, it will\nuse mipmap level 3.",86,null],[12,"lod_range","","This range is used to clamp LOD level used for sampling",86,null],[12,"comparison","","comparison mode, used primary for a shadow map",86,null],[4,"SurfaceError","","Surface creation/update error.",null,null],[13,"UnsupportedFormat","","Failed to map a given format to the device.",87,null],[13,"UnsupportedGamma","","Failed to provide sRGB formats.",87,null],[4,"TextureError","","Texture creation/update error.",null,null],[13,"UnsupportedFormat","","Failed to map a given format to the device.",88,null],[13,"UnsupportedGamma","","Failed to provide sRGB formats.",88,null],[13,"UnsupportedSampling","","Failed to map a given multisampled kind to the device.",88,null],[13,"InvalidInfo","","The given TextureInfo contains invalid values.",88,null],[13,"IncorrectSize","","The given data has a different size than the target texture slice.",88,null],[4,"AaMode","","Describes the configuration of samples inside each texel.",null,null],[13,"Msaa","","MultiSampled Anti-Aliasing",89,null],[13,"Eqaa","","Enhanced Quality Anti-Aliasing",89,null],[4,"Components","","Describes the color components of each texel.",null,null],[13,"R","","Red only",90,null],[13,"RG","","Red and green",90,null],[13,"RGB","","Red, green, blue",90,null],[13,"RGBA","","Red, green, blue, alpha",90,null],[4,"Compression","","Codec used to compress image data.",null,null],[13,"ETC2_RGB","","Use the EXT2 algorithm on 3 components.",91,null],[13,"ETC2_SRGB","","Use the EXT2 algorithm on 4 components (RGBA) in the sRGB color space.",91,null],[13,"ETC2_EAC_RGBA8","","Use the EXT2 EAC algorithm on 4 components.",91,null],[4,"Format","","Describes the layout of each texel within a surface/texture.",null,null],[13,"Float","","Floating point.",92,null],[13,"Integer","","Signed integer.",92,null],[13,"Unsigned","","Unsigned integer.",92,null],[13,"Compressed","","Compressed data.",92,null],[13,"R3_G3_B2","","3 bits for RG, 2 for B.",92,null],[13,"R5_G6_B5","","5 bits for RB, 6 for G",92,null],[13,"RGB5_A1","","5 bits each for RGB, 1 for Alpha.",92,null],[13,"RGB10_A2","","10 bits each for RGB, 2 for Alpha.",92,null],[13,"RGB10_A2UI","","10 bits each for RGB, 2 for Alpha, as unsigned integers.",92,null],[13,"R11F_G11F_B10F","","This uses special 11 and 10-bit floating-point values without sign bits.",92,null],[13,"RGB9_E5","","This s an RGB format of type floating-point. The 3 color values have\n9 bits of precision, and they share a single exponent.",92,null],[13,"BGRA8","","Swizzled RGBA color format, used for interaction with Windows DIBs",92,null],[13,"SRGB8","","Gamma-encoded RGB8",92,null],[13,"SRGB8_A8","","Gamma-encoded RGB8, unchanged alpha",92,null],[13,"DEPTH16","","16-bit bits depth",92,null],[13,"DEPTH24","","24 bits depth",92,null],[13,"DEPTH32F","","32 floating-point bits depth",92,null],[13,"DEPTH24_STENCIL8","","24 bits for depth, 8 for stencil",92,null],[13,"DEPTH32F_STENCIL8","","32 floating point bits for depth, 8 for stencil",92,null],[4,"FilterMethod","","How to [filter](https://en.wikipedia.org/wiki/Texture_filtering) the\ntexture when sampling. They correspond to increasing levels of quality,\nbut also cost. They "layer" on top of each other: it is not possible to\nhave bilinear filtering without mipmapping, for example.",null,null],[13,"Scale","","The dumbest filtering possible, nearest-neighbor interpolation.",93,null],[13,"Mipmap","","Add simple mipmapping.",93,null],[13,"Bilinear","","Sample multiple texels within a single mipmap level to increase\nquality.",93,null],[13,"Trilinear","","Sample multiple texels across two mipmap levels to increase quality.",93,null],[13,"Anisotropic","","Anisotropic filtering with a given "max", must be between 1 and 16,\ninclusive.",93,null],[4,"CubeFace","","The face of a cube texture to do an operation on.",null,null],[13,"PosZ","","",94,null],[13,"NegZ","","",94,null],[13,"PosX","","",94,null],[13,"NegX","","",94,null],[13,"PosY","","",94,null],[13,"NegY","","",94,null],[4,"Kind","","Specifies how a given texture may be used. The available texture types are\nrestricted by what Metal exposes, though this could conceivably be\nextended in the future. Note that a single texture can *only* ever be of\none kind. A texture created as `Texture2D` will forever be `Texture2D`.",null,null],[13,"D1","","A single row of texels.",95,null],[13,"D1Array","","An array of rows of texels. Equivalent to Texture2D except that texels\nin a different row are not sampled.",95,null],[13,"D2","","A traditional 2D texture, with rows arranged contiguously.",95,null],[13,"D2Array","","An array of 2D textures. Equivalent to Texture3D except that texels in\na different depth level are not sampled.",95,null],[13,"D2MultiSample","","A multi-sampled 2D texture. Each pixel may have more than one data value\n(sample) associated with it.",95,null],[13,"D2MultiSampleArray","","A array of multi-sampled 2D textures.",95,null],[13,"Cube","","A set of 6 2D textures, one for each face of a cube.",95,null],[13,"D3","","A volume texture, with each 2D layer arranged contiguously.",95,null],[4,"WrapMode","","Specifies how texture coordinates outside the range `[0, 1]` are handled.",null,null],[13,"Tile","","Tile the texture. That is, sample the coordinate modulo `1.0`. This is\nthe default.",96,null],[13,"Mirror","","Mirror the texture. Like tile, but uses abs(coord) before the modulo.",96,null],[13,"Clamp","","Clamp the texture to the value at `0.0` or `1.0` respectively.",96,null],[6,"Size","","Dimension size",null,null],[6,"Bits","","Number of bits per component",null,null],[6,"NumSamples","","Number of MSAA samples",null,null],[6,"NumFragments","","Number of EQAA fragments",null,null],[7,"R8","","A single R-component 8-bit normalized format.",null,null],[7,"RGBA8","","A standard RGBA 8-bit normalized format.",null,null],[7,"RGBA16F","","A standard RGBA 16-bit floating-point format.",null,null],[7,"RGBA32F","","A standard RGBA 32-bit floating-point format.",null,null],[11,"fmt","","",87,null],[11,"eq","","",87,null],[11,"clone","","",87,null],[11,"eq","","",88,null],[11,"ne","","",88,null],[11,"clone","","",88,null],[11,"fmt","","",88,null],[11,"fmt","","",89,null],[11,"clone","","",89,null],[11,"hash","","",89,null],[11,"partial_cmp","","",89,null],[11,"lt","","",89,null],[11,"le","","",89,null],[11,"gt","","",89,null],[11,"ge","","",89,null],[11,"eq","","",89,null],[11,"ne","","",89,null],[11,"cmp","","",89,null],[11,"fmt","","",90,null],[11,"clone","","",90,null],[11,"hash","","",90,null],[11,"partial_cmp","","",90,null],[11,"eq","","",90,null],[11,"cmp","","",90,null],[11,"get_count","","Get the number of components.",90,null],[11,"fmt","","",91,null],[11,"clone","","",91,null],[11,"hash","","",91,null],[11,"partial_cmp","","",91,null],[11,"eq","","",91,null],[11,"cmp","","",91,null],[11,"fmt","","",92,null],[11,"clone","","",92,null],[11,"hash","","",92,null],[11,"partial_cmp","","",92,null],[11,"lt","","",92,null],[11,"le","","",92,null],[11,"gt","","",92,null],[11,"ge","","",92,null],[11,"eq","","",92,null],[11,"ne","","",92,null],[11,"cmp","","",92,null],[11,"get_components","","Extract the components format",92,null],[11,"is_color","","Check if it's a color format.",92,null],[11,"has_depth","","Check if it has a depth component.",92,null],[11,"has_stencil","","Check if it has a stencil component.",92,null],[11,"is_compressed","","Check if it's a compressed format.",92,null],[11,"does_convert_gamma","","Check if it's a sRGB color space.",92,null],[11,"get_size","","Get size of the texel in bytes.",92,null],[11,"fmt","","",83,null],[11,"clone","","",83,null],[11,"hash","","",83,null],[11,"partial_cmp","","",83,null],[11,"lt","","",83,null],[11,"le","","",83,null],[11,"gt","","",83,null],[11,"ge","","",83,null],[11,"eq","","",83,null],[11,"ne","","",83,null],[11,"cmp","","",83,null],[11,"fmt","","",93,null],[11,"clone","","",93,null],[11,"hash","","",93,null],[11,"partial_cmp","","",93,null],[11,"lt","","",93,null],[11,"le","","",93,null],[11,"gt","","",93,null],[11,"ge","","",93,null],[11,"eq","","",93,null],[11,"ne","","",93,null],[11,"cmp","","",93,null],[11,"fmt","","",94,null],[11,"clone","","",94,null],[11,"hash","","",94,null],[11,"partial_cmp","","",94,null],[11,"eq","","",94,null],[11,"cmp","","",94,null],[11,"fmt","","",95,null],[11,"clone","","",95,null],[11,"hash","","",95,null],[11,"partial_cmp","","",95,null],[11,"lt","","",95,null],[11,"le","","",95,null],[11,"gt","","",95,null],[11,"ge","","",95,null],[11,"eq","","",95,null],[11,"ne","","",95,null],[11,"cmp","","",95,null],[11,"get_aa_mode","","Return the anti-aliasing mode of the texture",95,null],[11,"fmt","","",84,null],[11,"clone","","",84,null],[11,"hash","","",84,null],[11,"partial_cmp","","",84,null],[11,"lt","","",84,null],[11,"le","","",84,null],[11,"gt","","",84,null],[11,"ge","","",84,null],[11,"eq","","",84,null],[11,"ne","","",84,null],[11,"cmp","","",84,null],[11,"fmt","","",85,null],[11,"clone","","",85,null],[11,"hash","","",85,null],[11,"partial_cmp","","",85,null],[11,"lt","","",85,null],[11,"le","","",85,null],[11,"gt","","",85,null],[11,"ge","","",85,null],[11,"eq","","",85,null],[11,"ne","","",85,null],[11,"cmp","","",85,null],[11,"default","","",85,{"inputs":[],"output":{"name":"imageinfo"}}],[11,"default","","",84,{"inputs":[],"output":{"name":"textureinfo"}}],[11,"new","","Create a new empty texture info.",84,{"inputs":[],"output":{"name":"textureinfo"}}],[11,"contains","","Check if given ImageInfo is a part of the texture.",84,null],[11,"from","","",85,{"inputs":[{"name":"textureinfo"}],"output":{"name":"imageinfo"}}],[11,"from","","",83,{"inputs":[{"name":"textureinfo"}],"output":{"name":"surfaceinfo"}}],[11,"new","","Create a new `ImageInfo`, using default values.",85,{"inputs":[],"output":{"name":"imageinfo"}}],[11,"get_texel_count","","Get the total number of texels.",85,null],[11,"fmt","","",96,null],[11,"clone","","",96,null],[11,"hash","","",96,null],[11,"partial_cmp","","",96,null],[11,"eq","","",96,null],[11,"cmp","","",96,null],[11,"fmt","","",86,null],[11,"clone","","",86,null],[11,"partial_cmp","","",86,null],[11,"lt","","",86,null],[11,"le","","",86,null],[11,"gt","","",86,null],[11,"ge","","",86,null],[11,"eq","","",86,null],[11,"ne","","",86,null],[11,"new","","Create a new sampler description with a given filter method and wrapping mode, using no LOD\nmodifications.",86,{"inputs":[{"name":"filtermethod"},{"name":"wrapmode"}],"output":{"name":"samplerinfo"}}],[0,"program","gfx::device","Program creating and modification",null,null],[3,"Builder","gfx::device::program","A program builder is used to `bind` shader/target/transform_vearyings\ntogether",null,null],[12,"shaders","","The shaders bound to the program",97,null],[12,"targets","","the targets for the output",97,null],[11,"new","","Create's a new program builder",97,{"inputs":[],"output":{"name":"builder"}}],[11,"add_shader","","add a shader into to the program",97,null],[11,"add_shaders","","add multiple shaders",97,null],[11,"add_target","","add a target to the shader",97,null],[11,"add_targets","","add multiple targets",97,null],[6,"VertexCount","gfx::device","Draw vertex count.",null,null],[6,"InstanceCount","","Draw number of instances",null,null],[6,"UniformBlockIndex","","Index of a uniform block.",null,null],[6,"AttributeSlot","","Slot for an attribute.",null,null],[6,"UniformBufferSlot","","Slot for a uniform buffer object.",null,null],[6,"TextureSlot","","Slot a texture can be bound to.",null,null],[6,"IndexType","","A type of each index value in the mesh's index buffer",null,null],[6,"SubmitInfo","","All the data needed simultaneously for submitting a command buffer for\nexecution on a device.",null,null],[8,"Resources","","Resources pertaining to a specific API.",null,null],[16,"Buffer","","",98,null],[16,"ArrayBuffer","","",98,null],[16,"Shader","","",98,null],[16,"Program","","",98,null],[16,"FrameBuffer","","",98,null],[16,"Surface","","",98,null],[16,"Texture","","",98,null],[16,"Sampler","","",98,null],[16,"Fence","","",98,null],[8,"Factory","","",null,null],[16,"Mapper","","Associated mapper type",99,null],[10,"get_capabilities","","Returns the capabilities available to the specific API implementation",99,null],[10,"create_buffer_raw","","",99,null],[10,"create_buffer_static_raw","","",99,null],[11,"create_buffer_static","","",99,null],[11,"create_buffer_dynamic","","",99,null],[10,"create_array_buffer","","",99,null],[10,"create_shader","","",99,null],[10,"create_program","","",99,null],[10,"create_frame_buffer","","",99,null],[10,"create_surface","","",99,null],[10,"create_texture","","",99,null],[10,"create_sampler","","",99,null],[10,"update_buffer_raw","","Update the information stored in a specific buffer",99,null],[11,"update_buffer","","",99,null],[10,"map_buffer_raw","","",99,null],[10,"unmap_buffer_raw","","",99,null],[10,"map_buffer_readable","","",99,null],[10,"map_buffer_writable","","",99,null],[10,"map_buffer_rw","","",99,null],[10,"update_texture_raw","","Update the information stored in a texture",99,null],[11,"update_texture","","",99,null],[10,"generate_mipmap","","",99,null],[11,"create_texture_static","","Create a new texture with given data",99,null],[8,"Device","","An interface for performing draw calls using a specific graphics API",null,null],[16,"Resources","","Associated resources type.",100,null],[16,"CommandBuffer","","Associated command buffer type.",100,null],[10,"get_capabilities","","Returns the capabilities available to the specific API implementation.",100,null],[10,"reset_state","","Reset all the states to disabled/default.",100,null],[10,"submit","","Submit a command buffer for execution.",100,null],[10,"cleanup","","Cleanup unused resources, to be called between frames.",100,null],[8,"DeviceFence","","Extension to the Device that allows for submitting of commands\naround a fence",null,null],[10,"fenced_submit","","Submit a command buffer to the stream creating a fence\nthe fence is signaled after the GPU has executed all commands\nin the buffer",101,null],[10,"fence_wait","","Wait on the supplied fence stalling the current thread until\nthe fence is satisfied",101,null],[11,"fmt","","",102,null],[11,"eq","","",102,null],[11,"clone","","",102,null],[11,"fmt","","",19,null],[11,"clone","","",19,null],[11,"clone","","",21,null],[11,"fmt","","",22,null],[11,"eq","","",22,null],[11,"clone","","",22,null],[11,"eq","","",23,null],[11,"hash","","",23,null],[11,"fmt","","",23,null],[11,"clone","","",23,null],[11,"eq","","",24,null],[11,"hash","","",24,null],[11,"fmt","","",24,null],[11,"clone","","",24,null],[11,"eq","","",20,null],[11,"ne","","",20,null],[11,"hash","","",20,null],[11,"fmt","","",20,null],[11,"clone","","",20,null],[11,"fmt","","",25,null],[11,"eq","","",25,null],[11,"clone","","",25,null],[0,"extra","gfx","Renderer extensions.",null,null],[0,"factory","gfx::extra","Factory extensions\nFactory extension. Provides resource construction shortcuts.",null,null],[8,"FactoryExt","gfx::extra::factory","Factory extension trait",null,null],[11,"create_mesh","","Create a new mesh from the given vertex data.",103,null],[11,"link_program","","Create a simple program given a vertex shader with a fragment one.",103,null],[11,"compile_shader_source","","Compile a single shader of a given stage, automatically picking the right\nshader variant.",103,null],[11,"link_program_source","","Create a simple program given `ShaderSource` versions of vertex and\nfragment shaders, automatically picking available shader variant.",103,null],[11,"create_texture_rgba8","","Create a simple RGBA8 2D texture.",103,null],[11,"create_texture_rgba8_static","","Create RGBA8 2D texture with given contents and mipmap chain.",103,null],[11,"create_texture_depth_stencil","","Create a simple depth+stencil 2D texture.",103,null],[11,"create_sampler_linear","","Create a linear sampler with clamping to border.",103,null],[0,"shade","gfx::extra","Shader extensions\nShader source extension",null,null],[3,"ShaderSource","gfx::extra::shade","A type storing shader source for different graphics APIs and versions.",null,null],[12,"glsl_120","","",104,null],[12,"glsl_130","","",104,null],[12,"glsl_140","","",104,null],[12,"glsl_150","","",104,null],[12,"glsl_430","","",104,null],[12,"targets","","",104,null],[4,"ProgramError","","Program linking error",null,null],[13,"Vertex","","Unable to compile the vertex shader",105,null],[13,"Fragment","","Unable to compile the fragment shader",105,null],[13,"Link","","Unable to link",105,null],[11,"fmt","","",105,null],[11,"eq","","",105,null],[11,"ne","","",105,null],[11,"clone","","",105,null],[11,"fmt","","",104,null],[11,"eq","","",104,null],[11,"ne","","",104,null],[11,"clone","","",104,null],[11,"empty","","Create an empty shader source. Useful for specifying the remaining\nstructure members upon construction.",104,{"inputs":[],"output":{"name":"shadersource"}}],[11,"choose","","Pick one of the stored versions that is the highest supported by the device.",104,null],[0,"stream","gfx::extra","Render stream\nRender stream extension. Stream is something you can send batches to.\nIt includes a renderer and an output, stored by constrained types.",null,null],[3,"OwnedStream","gfx::extra::stream","A stream that owns its components.",null,null],[12,"ren","","Renderer",106,null],[12,"out","","Output",106,null],[8,"Window","","Generic output window.",null,null],[10,"swap_buffers","","Swap front and back buffers.",107,null],[8,"Stream","","Render stream abstraction.",null,null],[16,"CommandBuffer","","Command buffer type to constraint the `Renderer`.",108,null],[16,"Output","","Constrained `Output` type.",108,null],[10,"get_output","","Get the output only.",108,null],[10,"access","","Access both of the stream components.",108,null],[11,"get_aspect_ratio","","Get width/height aspect, needed for projections.",108,null],[11,"clear","","Clear the canvas.",108,null],[11,"blit_on","","Blit on this stream from another `Output`.",108,null],[11,"blit_to","","Blit this stream to another `Output`.",108,null],[11,"draw","","Draw a simple `Batch`.",108,null],[11,"draw_instanced","","Draw an instanced `Batch`.",108,null],[11,"flush","","Execute everything and clear the command buffer.",108,null],[8,"StreamFactory","","A render factory extension that allows creating streams with new renderers.",null,null],[11,"create_stream","","Create a new stream from a given output.",109,null],[11,"get_output","","",106,null],[11,"access","","",106,null],[11,"present","","Show what we've been drawing all this time.",106,null],[0,"macros","gfx","Macros for deriving `VertexFormat` and `ShaderParam`.",null,null],[0,"render","","High-level, platform independent, bindless rendering API.",null,null],[3,"ParamStorage","gfx::render","Temporary parameter storage, used for shader activation.",null,null],[12,"uniforms","","uniform values to be provided",110,null],[12,"blocks","","uniform buffers to be provided",110,null],[12,"textures","","textures to be provided",110,null],[3,"Renderer","","Renderer front-end",null,null],[4,"BlitError","","An error occuring in surface blits.",null,null],[13,"SourcePlanesMissing","","The source doesn't have some of the requested planes.",111,null],[13,"DestinationPlanesMissing","","The destination doesn't have some of the requested planes.",111,null],[4,"UpdateError","","An error occuring in buffer/texture updates.",null,null],[13,"OutOfBounds","","",112,null],[12,"target","gfx::render::UpdateError","",112,null],[12,"source","","",112,null],[13,"UnitSizeMismatch","gfx::render","",112,null],[12,"target","gfx::render::UpdateError","",112,null],[12,"source","","",112,null],[13,"UnitCountMismatch","gfx::render","",112,null],[12,"target","gfx::render::UpdateError","",112,null],[12,"slice","","",112,null],[4,"DrawError","gfx::render","Draw-time error, showing inconsistencies in draw parameters and data",null,null],[13,"InvalidBatch","","Tha batch is not valid",113,null],[13,"MissingTarget","","The `DrawState` interacts with a target that does not present in the\nframe. For example, the depth test is enabled while there is no depth.",113,null],[13,"BadViewport","","The viewport either covers zero space or exceeds HW limitations.",113,null],[13,"BadVertexCount","","Vertex count exceeds HW limitations.",113,null],[13,"BadIndexCount","","Index count exceeds HW limitations.",113,null],[0,"batch","","Batches\nBatches are structures containing all the data required for the draw call,\nexcept for the target frame. Here we define the `Batch` trait as well as\n`RefBatch` and `OwnedBatch` implementations.",null,null],[3,"Full","gfx::render::batch","Full batch - contains everything needed for rendering.",null,null],[12,"slice","","Mesh slice",114,null],[12,"params","","Parameter data.",114,null],[12,"state","","Draw state",114,null],[3,"Core","","Core batch - a minimal sealed batch.",null,null],[4,"Error","","An error occurring at batch creation",null,null],[13,"Mesh","","Error connecting mesh attributes",115,null],[13,"Parameters","","Error connecting shader parameters",115,null],[13,"Other","","Another kind of error",115,null],[5,"bind","","Create an implicit batch",null,{"inputs":[{"name":"drawstate"},{"name":"mesh"},{"name":"slice"},{"name":"programhandle"},{"name":"t"}],"output":{"name":"implicit"}}],[6,"BatchData","","Return type for `Batch::get_data()``",null,null],[6,"Implicit","","A batch that is constructed on the fly when rendering.\nMeant to be a struct, blocked by #614",null,null],[6,"Complete","","A `Core` completed by a mesh slice, shader parameters, and a state.\nImplements `Batch` thus can be drawn.\nIt is meant to be a struct, but we have lots of lifetime issues\nwith associated resources, binding which looks nasty (#614)",null,null],[8,"Batch","","Abstract batch trait",null,null],[10,"get_data","","Obtain information about the mesh, program, and state",116,null],[10,"fill_params","","Fill shader parameter values",116,null],[11,"eq","","",115,null],[11,"ne","","",115,null],[11,"fmt","","",115,null],[11,"clone","","",115,null],[11,"get_data","","",117,null],[11,"fill_params","","",117,null],[11,"clone","","",114,null],[11,"new","","Create a new full batch",114,{"inputs":[{"name":"mesh"},{"name":"programhandle"},{"name":"t"}],"output":{"name":"result"}}],[11,"get_data","","",114,null],[11,"fill_params","","",114,null],[11,"clone","","",118,null],[11,"new","","Create a new core batch.",118,{"inputs":[{"name":"mesh"},{"name":"programhandle"}],"output":{"name":"result"}}],[11,"with","","Add missing components to complete the batch for rendering.",118,null],[11,"program","","Read the ProgramHandle",118,null],[11,"mesh","","Read the Mesh",118,null],[11,"get_data","","",119,null],[11,"fill_params","","",119,null],[0,"mesh","gfx::render","Meshes\nMesh loading.",null,null],[3,"Attribute","gfx::render::mesh","Describes a single attribute of a vertex buffer, including its type, name, etc.",null,null],[12,"name","","A name to match the shader input",120,null],[12,"buffer","","Vertex buffer to contain the data",120,null],[12,"format","","Format of the attribute",120,null],[3,"Mesh","","Describes geometry to render.",null,null],[12,"num_vertices","","Number of vertices in the mesh.",121,null],[12,"attributes","","Vertex attributes to use.",121,null],[3,"Slice","","Description of a subset of `Mesh` data to render.",null,null],[12,"start","","Start index of vertices to draw.",122,null],[12,"end","","End index of vertices to draw.",122,null],[12,"prim_type","","Primitive type to render collections of vertices as.",122,null],[12,"kind","","Source of the vertex ordering when drawing.",122,null],[3,"AttributeIter","","An iterator over mesh attributes.",null,null],[3,"Link","","Holds a remapping table from shader inputs to mesh attributes.",null,null],[4,"SliceKind","","Source of vertex ordering for a slice",null,null],[13,"Vertex","","Render vertex data directly from the `Mesh`'s buffer.",123,null],[13,"Index8","","The `Index*` buffer contains a list of indices into the `Mesh`\ndata, so every vertex attribute does not need to be duplicated, only\nits position in the `Mesh`. The base index is added to this index\nbefore fetching the vertex from the buffer. For example, when drawing\na square, two triangles are needed. Using only `Vertex`, one\nwould need 6 separate vertices, 3 for each triangle. However, two of\nthe vertices will be identical, wasting space for the duplicated\nattributes. Instead, the `Mesh` can store 4 vertices and an\n`Index8` can be used instead.",123,null],[13,"Index16","","As `Index8` but with `u16` indices",123,null],[13,"Index32","","As `Index8` but with `u32` indices",123,null],[4,"Error","","Describes kinds of errors that may occur in the mesh linking",null,null],[13,"AttributeMissing","","A required attribute was missing.",124,null],[13,"AttributeType","","An attribute's type from the vertex format differed from the type used in the shader.",124,null],[13,"AttributeIndex","","An attribute index is out of supported bounds",124,null],[13,"ShaderInputIndex","","An input index is out of supported bounds",124,null],[6,"AttributeIndex","","Index of a vertex attribute inside the mesh",null,null],[8,"VertexFormat","","A trait implemented automatically for user vertex structure by\n`#[vertex_format] attribute",null,null],[10,"generate","","Create the attributes for this type, using the given buffer.",125,{"inputs":[{"name":"buffer"}],"output":{"name":"vec"}}],[8,"ToSlice","","A helper trait for cleanly getting the slice of a type.",null,null],[10,"to_slice","","Get the slice of a type.",126,null],[8,"ToIndexSlice","","A helper trait to build index slices from data.",null,null],[10,"to_slice","","Make an index slice.",127,null],[11,"eq","","",120,null],[11,"ne","","",120,null],[11,"hash","","",120,null],[11,"fmt","","",120,null],[11,"clone","","",120,null],[11,"eq","","",121,null],[11,"ne","","",121,null],[11,"hash","","",121,null],[11,"fmt","","",121,null],[11,"clone","","",121,null],[11,"new","","Create a new mesh, which is a `TriangleList` with no attributes and `nv` vertices.",121,{"inputs":[{"name":"vertexcount"}],"output":{"name":"mesh"}}],[11,"from_format","","Create a new `Mesh` from a struct that implements `VertexFormat` and a buffer.",121,{"inputs":[{"name":"buffer"},{"name":"vertexcount"}],"output":{"name":"mesh"}}],[11,"from_format_instanced","","Create a new intanced `Mesh` given a vertex buffer and an instance buffer.",121,{"inputs":[{"name":"buffer"},{"name":"vertexcount"},{"name":"buffer"}],"output":{"name":"mesh"}}],[11,"eq","","",122,null],[11,"ne","","",122,null],[11,"fmt","","",122,null],[11,"clone","","",122,null],[11,"get_prim_count","","Get the number of primitives in this slice.",122,null],[11,"eq","","",123,null],[11,"ne","","",123,null],[11,"fmt","","",123,null],[11,"clone","","",123,null],[11,"to_slice","","Return a vertex slice of the whole mesh.",121,null],[11,"to_slice","gfx::device::handle","",49,null],[11,"to_slice","","",49,null],[11,"to_slice","","",49,null],[11,"eq","gfx::render::mesh","",124,null],[11,"ne","","",124,null],[11,"fmt","","",124,null],[11,"clone","","",124,null],[11,"clone","","",128,null],[11,"next","","",128,null],[11,"clone","","",129,null],[11,"new","","Match mesh attributes against shader inputs, produce a mesh link.\nExposed to public to allow external `Batch` implementations to use it.",129,{"inputs":[{"name":"mesh"},{"name":"programinfo"}],"output":{"name":"result"}}],[11,"from_iter","","Construct a new link from an iterator over attribute indices.",129,{"inputs":[{"name":"i"}],"output":{"name":"result"}}],[11,"to_iter","","Convert to an iterator returning attribute indices",129,null],[0,"shade","gfx::render","Shaders\nShader parameter handling.",null,null],[3,"NamedCell","gfx::render::shade","A named cell containing arbitrary value",null,null],[12,"name","","Name",130,null],[12,"value","","Value",130,null],[3,"ParamDictionary","","A dictionary of parameters, meant to be shared between different programs",null,null],[12,"uniforms","","Uniform dictionary",131,null],[12,"blocks","","Block dictionary",131,null],[12,"textures","","Texture dictionary",131,null],[3,"ParamDictionaryLink","","Redirects program input to the relevant ParamDictionary cell",null,null],[4,"ParameterError","","An error type on either the parameter storage or the program side",null,null],[13,"MissingSelf","","The parameter requires 'self' to be assigned, but none was provided.",132,null],[13,"MissingUniform","","Shader requested a uniform that the parameters do not have.",132,null],[13,"BadUniform","","Shader requested a uniform that the parameters do not match.",132,null],[13,"MissingBlock","","Shader requested a block that the parameters do not have.",132,null],[13,"BadBlock","","Shader requested a block that the parameters do not match.",132,null],[13,"MissingTexture","","Shader requested a texture that the parameters do not have.",132,null],[13,"BadTexture","","Shader requested a texture that the parameters do not match.",132,null],[6,"TextureParam","","A texture parameter: consists of a texture handle with an optional sampler.\nNot all textures need a sampler (i.e. MSAA ones do not). Optimally, we'd want to\nencode this logic into the type system (TODO).",null,null],[6,"ParameterId","","Parameter index.",null,null],[8,"Parameter","","General shader parameter.",null,null],[11,"check_uniform","","Check if this parameter is good for a given uniform.",133,{"inputs":[{"name":"uniformvar"}],"output":{"name":"bool"}}],[11,"check_block","","Check if this parameter is good for a given block.",133,{"inputs":[{"name":"blockvar"}],"output":{"name":"bool"}}],[11,"check_texture","","Check if this parameter is good for a given texture.",133,{"inputs":[{"name":"samplervar"}],"output":{"name":"bool"}}],[10,"put","","Write into the parameter storage for rendering.",133,null],[8,"ShaderParam","","Abstracts the shader parameter structure, generated by the `shader_param` attribute",null,null],[16,"Resources","","",134,null],[16,"Link","","A helper structure to contain variable indices inside the shader",134,null],[10,"create_link","","Create a new link to be used with a given program",134,{"inputs":[{"name":"option"},{"name":"programinfo"}],"output":{"name":"result"}}],[10,"fill_params","","Get all the contained parameter values, using a given link",134,null],[11,"fmt","","",132,null],[11,"eq","","",132,null],[11,"ne","","",132,null],[11,"clone","","",132,null],[11,"check_block","gfx::device::handle","",48,{"inputs":[{"name":"blockvar"}],"output":{"name":"bool"}}],[11,"put","","",48,null],[11,"check_block","","",49,{"inputs":[{"name":"blockvar"}],"output":{"name":"bool"}}],[11,"put","","",49,null],[11,"check_texture","gfx::render::shade","",135,{"inputs":[{"name":"samplervar"}],"output":{"name":"bool"}}],[11,"put","","",135,null],[11,"clone","","",136,null],[11,"create_link","","",131,{"inputs":[{"name":"option"},{"name":"programinfo"}],"output":{"name":"result"}}],[11,"fill_params","","",131,null],[0,"target","gfx::render","Render targets\nRender target specification.",null,null],[3,"Frame","gfx::render::target","A complete `Frame`, which is the result of rendering.",null,null],[12,"width","","The width of the viewport.",137,null],[12,"height","","The height of the viewport.",137,null],[12,"colors","","Each color component has its own buffer.",137,null],[12,"depth","","The depth buffer for this frame.",137,null],[12,"stencil","","The stencil buffer for this frame.",137,null],[12,"gamma","","Color space.",137,null],[4,"Plane","","A single buffer that can be bound to a render target.",null,null],[13,"Surface","","Render to a `Surface` (corresponds to a renderbuffer in GL).",138,null],[13,"Texture","","Render to a texture at a specific mipmap level\nIf `Layer` is set, it is selecting a single 2D slice of a given 3D texture",138,null],[8,"Output","","A generic rendering output, consisting of multiple planes.",null,null],[11,"get_handle","","Get an associated device handle, if any.",139,null],[10,"get_size","","Get canvas dimensions.",139,null],[11,"get_colors","","Get array of color planes.",139,null],[11,"get_depth","","Get depth plane, if any.",139,null],[11,"get_stencil","","Get stencil plane, if any.",139,null],[11,"get_gamma","","Check if it converts gamma of the output colors.",139,null],[11,"get_mask","","Get the output surface mask.",139,null],[11,"fmt","","",138,null],[11,"eq","","",138,null],[11,"ne","","",138,null],[11,"clone","","",138,null],[11,"get_surface_info","","Get the surface info.",138,null],[11,"get_format","","Get surface/texture format.",138,null],[11,"get_size","","",138,null],[11,"get_colors","","",138,null],[11,"get_depth","","",138,null],[11,"get_stencil","","",138,null],[11,"fmt","","",137,null],[11,"eq","","",137,null],[11,"ne","","",137,null],[11,"clone","","",137,null],[11,"empty","","Create an empty `Frame`.",137,{"inputs":[{"name":"size"},{"name":"size"}],"output":{"name":"frame"}}],[11,"get_size","","",137,null],[11,"get_colors","","",137,null],[11,"get_depth","","",137,null],[11,"get_stencil","","",137,null],[11,"get_gamma","","",137,null],[8,"RenderFactory","gfx::render","Factory extension that allows creating new renderers.",null,null],[10,"create_renderer","","Create a new renderer",140,null],[11,"eq","","",111,null],[11,"ne","","",111,null],[11,"fmt","","",111,null],[11,"clone","","",111,null],[11,"eq","","",112,null],[11,"ne","","",112,null],[11,"fmt","","",112,null],[11,"clone","","",112,null],[11,"eq","","",113,null],[11,"ne","","",113,null],[11,"fmt","","",113,null],[11,"clone","","",113,null],[11,"reset","","Reset all commands for the command buffer re-usal.",141,null],[11,"as_buffer","","Get command and data buffers to be submitted to the device.",141,null],[11,"clone_empty","","Clone the renderer shared data but ignore the commands.",141,null],[11,"clear","","Clear the output with given `ClearData`.",141,null],[11,"draw","","Draw a 'batch' with all known parameters specified, internal use only.",141,null],[11,"blit","","Blit one frame onto another.",141,null],[11,"update_buffer","","Update a buffer with a slice of data.",141,null],[11,"update_block","","Update a buffer with a data struct.",141,null],[11,"update_texture","","Update the contents of a texture.",141,null],[14,"gfx_vertex!","gfx","",null,null],[14,"gfx_parameters!","","",null,null],[11,"new","","Create a default `DrawState`. Uses counter-clockwise winding, culls the backface of each\nprimitive, and does no scissor/stencil/depth/blend/color masking.",0,{"inputs":[],"output":{"name":"drawstate"}}],[11,"get_target_mask","","Return a target mask that contains all the planes required by this state.",0,null],[11,"multi_sample","","Enable multi-sampled rasterization",0,null],[11,"stencil","","Set the stencil test to a simple expression",0,null],[11,"depth","","Set the depth test with the mask",0,null],[11,"scissor","","Set the scissor",0,null],[11,"blend","","Set the blend mode to one of the presets",0,null],[11,"fmt","gfx::device::state","",2,null],[11,"clone","","",2,null],[11,"hash","","",2,null],[11,"partial_cmp","","",2,null],[11,"eq","","",2,null],[11,"cmp","","",2,null],[11,"partial_cmp","","",3,null],[11,"lt","","",3,null],[11,"le","","",3,null],[11,"gt","","",3,null],[11,"ge","","",3,null],[11,"fmt","","",3,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"clone","","",3,null],[11,"cmp","","",4,null],[11,"partial_cmp","","",4,null],[11,"hash","","",4,null],[11,"fmt","","",4,null],[11,"eq","","",4,null],[11,"clone","","",4,null],[11,"partial_cmp","","",5,null],[11,"lt","","",5,null],[11,"le","","",5,null],[11,"gt","","",5,null],[11,"ge","","",5,null],[11,"fmt","","",5,null],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"clone","","",5,null],[11,"partial_cmp","","",6,null],[11,"lt","","",6,null],[11,"le","","",6,null],[11,"gt","","",6,null],[11,"ge","","",6,null],[11,"fmt","","",6,null],[11,"eq","","",6,null],[11,"ne","","",6,null],[11,"clone","","",6,null],[11,"get_cull_face","","Get the cull face, if any, for this primitive state.",6,null],[11,"default","","",6,{"inputs":[],"output":{"name":"primitive"}}],[11,"cmp","","",142,null],[11,"partial_cmp","","",142,null],[11,"hash","","",142,null],[11,"fmt","","",142,null],[11,"eq","","",142,null],[11,"clone","","",142,null],[11,"cmp","","",7,null],[11,"partial_cmp","","",7,null],[11,"hash","","",7,null],[11,"fmt","","",7,null],[11,"eq","","",7,null],[11,"clone","","",7,null],[11,"cmp","","",8,null],[11,"partial_cmp","","",8,null],[11,"hash","","",8,null],[11,"fmt","","",8,null],[11,"eq","","",8,null],[11,"clone","","",8,null],[11,"cmp","","",9,null],[11,"partial_cmp","","",9,null],[11,"lt","","",9,null],[11,"le","","",9,null],[11,"gt","","",9,null],[11,"ge","","",9,null],[11,"hash","","",9,null],[11,"fmt","","",9,null],[11,"eq","","",9,null],[11,"ne","","",9,null],[11,"clone","","",9,null],[11,"default","","",9,{"inputs":[],"output":{"name":"stencilside"}}],[11,"cmp","","",10,null],[11,"partial_cmp","","",10,null],[11,"lt","","",10,null],[11,"le","","",10,null],[11,"gt","","",10,null],[11,"ge","","",10,null],[11,"hash","","",10,null],[11,"fmt","","",10,null],[11,"eq","","",10,null],[11,"ne","","",10,null],[11,"clone","","",10,null],[11,"cmp","","",11,null],[11,"partial_cmp","","",11,null],[11,"lt","","",11,null],[11,"le","","",11,null],[11,"gt","","",11,null],[11,"ge","","",11,null],[11,"hash","","",11,null],[11,"fmt","","",11,null],[11,"eq","","",11,null],[11,"ne","","",11,null],[11,"clone","","",11,null],[11,"default","","",11,{"inputs":[],"output":{"name":"depth"}}],[11,"cmp","","",12,null],[11,"partial_cmp","","",12,null],[11,"hash","","",12,null],[11,"fmt","","",12,null],[11,"eq","","",12,null],[11,"clone","","",12,null],[11,"cmp","","",13,null],[11,"partial_cmp","","",13,null],[11,"hash","","",13,null],[11,"fmt","","",13,null],[11,"eq","","",13,null],[11,"clone","","",13,null],[11,"cmp","","",14,null],[11,"partial_cmp","","",14,null],[11,"lt","","",14,null],[11,"le","","",14,null],[11,"gt","","",14,null],[11,"ge","","",14,null],[11,"hash","","",14,null],[11,"fmt","","",14,null],[11,"eq","","",14,null],[11,"ne","","",14,null],[11,"clone","","",14,null],[11,"fmt","","",15,null],[11,"clone","","",15,null],[11,"hash","","",15,null],[11,"partial_cmp","","",15,null],[11,"lt","","",15,null],[11,"le","","",15,null],[11,"gt","","",15,null],[11,"ge","","",15,null],[11,"eq","","",15,null],[11,"ne","","",15,null],[11,"cmp","","",15,null],[11,"default","","",15,{"inputs":[],"output":{"name":"blendchannel"}}],[11,"eq","","",16,null],[11,"ne","","",16,null],[11,"partial_cmp","","",16,null],[11,"lt","","",16,null],[11,"le","","",16,null],[11,"gt","","",16,null],[11,"ge","","",16,null],[11,"clone","","",16,null],[11,"default","","",16,{"inputs":[],"output":{"name":"blend"}}],[11,"fmt","","",16,null],[11,"hash","","",143,null],[11,"cmp","","",143,null],[11,"partial_cmp","","",143,null],[11,"lt","","",143,null],[11,"le","","",143,null],[11,"gt","","",143,null],[11,"ge","","",143,null],[11,"clone","","",143,null],[11,"eq","","",143,null],[11,"ne","","",143,null],[11,"fmt","","",143,null],[11,"empty","","Returns an empty set of flags.",143,{"inputs":[],"output":{"name":"colormask"}}],[11,"all","","Returns the set containing all flags.",143,{"inputs":[],"output":{"name":"colormask"}}],[11,"bits","","Returns the raw value of the flags currently stored.",143,null],[11,"from_bits","","Convert from underlying bit representation, unless that\nrepresentation contains bits that do not correspond to a flag.",143,{"inputs":[{"name":"u32"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits\nthat do not correspond to flags.",143,{"inputs":[{"name":"u32"}],"output":{"name":"colormask"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",143,null],[11,"is_all","","Returns `true` if all flags are currently set.",143,null],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",143,null],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",143,null],[11,"insert","","Inserts the specified flags in-place.",143,null],[11,"remove","","Removes the specified flags in-place.",143,null],[11,"toggle","","Toggles the specified flags in-place.",143,null],[11,"bitor","","Returns the union of the two sets of flags.",143,null],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",143,null],[11,"bitand","","Returns the intersection between the two sets of flags.",143,null],[11,"sub","","Returns the set difference of the two sets of flags.",143,null],[11,"not","","Returns the complement of this set of flags.",143,null],[11,"from_iter","","",143,{"inputs":[{"name":"t"}],"output":{"name":"colormask"}}],[11,"partial_cmp","gfx::device::target","",17,null],[11,"lt","","",17,null],[11,"le","","",17,null],[11,"gt","","",17,null],[11,"ge","","",17,null],[11,"fmt","","",17,null],[11,"eq","","",17,null],[11,"ne","","",17,null],[11,"clone","","",17,null],[11,"hash","","",144,null],[11,"cmp","","",144,null],[11,"partial_cmp","","",144,null],[11,"lt","","",144,null],[11,"le","","",144,null],[11,"gt","","",144,null],[11,"ge","","",144,null],[11,"clone","","",144,null],[11,"eq","","",144,null],[11,"ne","","",144,null],[11,"fmt","","",144,null],[11,"empty","","Returns an empty set of flags.",144,{"inputs":[],"output":{"name":"mask"}}],[11,"all","","Returns the set containing all flags.",144,{"inputs":[],"output":{"name":"mask"}}],[11,"bits","","Returns the raw value of the flags currently stored.",144,null],[11,"from_bits","","Convert from underlying bit representation, unless that\nrepresentation contains bits that do not correspond to a flag.",144,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits\nthat do not correspond to flags.",144,{"inputs":[{"name":"u8"}],"output":{"name":"mask"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",144,null],[11,"is_all","","Returns `true` if all flags are currently set.",144,null],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",144,null],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",144,null],[11,"insert","","Inserts the specified flags in-place.",144,null],[11,"remove","","Removes the specified flags in-place.",144,null],[11,"toggle","","Toggles the specified flags in-place.",144,null],[11,"bitor","","Returns the union of the two sets of flags.",144,null],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",144,null],[11,"bitand","","Returns the intersection between the two sets of flags.",144,null],[11,"sub","","Returns the set difference of the two sets of flags.",144,null],[11,"not","","Returns the complement of this set of flags.",144,null],[11,"from_iter","","",144,{"inputs":[{"name":"t"}],"output":{"name":"mask"}}],[11,"hash","","",145,null],[11,"cmp","","",145,null],[11,"partial_cmp","","",145,null],[11,"lt","","",145,null],[11,"le","","",145,null],[11,"gt","","",145,null],[11,"ge","","",145,null],[11,"clone","","",145,null],[11,"eq","","",145,null],[11,"ne","","",145,null],[11,"fmt","","",145,null],[11,"empty","","Returns an empty set of flags.",145,{"inputs":[],"output":{"name":"mirror"}}],[11,"all","","Returns the set containing all flags.",145,{"inputs":[],"output":{"name":"mirror"}}],[11,"bits","","Returns the raw value of the flags currently stored.",145,null],[11,"from_bits","","Convert from underlying bit representation, unless that\nrepresentation contains bits that do not correspond to a flag.",145,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits\nthat do not correspond to flags.",145,{"inputs":[{"name":"u8"}],"output":{"name":"mirror"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",145,null],[11,"is_all","","Returns `true` if all flags are currently set.",145,null],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",145,null],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",145,null],[11,"insert","","Inserts the specified flags in-place.",145,null],[11,"remove","","Removes the specified flags in-place.",145,null],[11,"toggle","","Toggles the specified flags in-place.",145,null],[11,"bitor","","Returns the union of the two sets of flags.",145,null],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",145,null],[11,"bitand","","Returns the intersection between the two sets of flags.",145,null],[11,"sub","","Returns the set difference of the two sets of flags.",145,null],[11,"not","","Returns the complement of this set of flags.",145,null],[11,"from_iter","","",145,{"inputs":[{"name":"t"}],"output":{"name":"mirror"}}],[11,"partial_cmp","","",18,null],[11,"lt","","",18,null],[11,"le","","",18,null],[11,"gt","","",18,null],[11,"ge","","",18,null],[11,"eq","","",18,null],[11,"ne","","",18,null],[11,"clone","","",18,null],[11,"fmt","","",18,null],[11,"partial_cmp","gfx","",0,null],[11,"lt","","",0,null],[11,"le","","",0,null],[11,"gt","","",0,null],[11,"ge","","",0,null],[11,"fmt","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"clone","","",0,null],[11,"cmp","","",1,null],[11,"partial_cmp","","",1,null],[11,"hash","","",1,null],[11,"fmt","","",1,null],[11,"eq","","",1,null],[11,"clone","","",1,null]],"paths":[[3,"DrawState"],[4,"BlendPreset"],[4,"FrontFace"],[3,"Offset"],[4,"CullFace"],[4,"RasterMethod"],[3,"Primitive"],[4,"Comparison"],[4,"StencilOp"],[3,"StencilSide"],[3,"Stencil"],[3,"Depth"],[4,"Equation"],[4,"BlendValue"],[4,"Factor"],[3,"BlendChannel"],[3,"Blend"],[3,"Rect"],[3,"ClearData"],[3,"Capabilities"],[3,"BufferInfo"],[4,"MapAccess"],[4,"PrimitiveType"],[4,"BufferRole"],[4,"BufferUsage"],[4,"BufferUpdateError"],[3,"Format"],[3,"FixedPoint"],[3,"Floater"],[4,"SignFlag"],[4,"IntSubType"],[4,"IntSize"],[4,"FloatSubType"],[4,"FloatSize"],[4,"Type"],[8,"ToFormat"],[8,"ToType"],[4,"Command"],[3,"CommandBuffer"],[4,"Access"],[4,"Gamma"],[4,"Target"],[8,"CommandBuffer"],[3,"DataPointer"],[3,"DataBuffer"],[4,"DummyResources"],[3,"DummyDevice"],[8,"Producer"],[3,"RawBuffer"],[3,"Buffer"],[3,"ArrayBuffer"],[3,"Shader"],[3,"Program"],[3,"FrameBuffer"],[3,"Surface"],[3,"Texture"],[3,"Sampler"],[3,"Fence"],[3,"Manager"],[8,"Raw"],[8,"Builder"],[3,"Readable"],[3,"Writable"],[3,"RW"],[3,"Attribute"],[3,"UniformVar"],[3,"BlockVar"],[3,"SamplerVar"],[3,"ProgramInfo"],[4,"IsArray"],[4,"IsShadow"],[4,"IsMultiSample"],[4,"IsRect"],[4,"MatrixFormat"],[4,"SamplerType"],[4,"BaseType"],[4,"ContainerType"],[4,"Stage"],[4,"UniformValue"],[4,"CompatibilityError"],[4,"CreateShaderError"],[4,"CreateProgramError"],[4,"ShaderModel"],[3,"SurfaceInfo"],[3,"TextureInfo"],[3,"ImageInfo"],[3,"SamplerInfo"],[4,"SurfaceError"],[4,"TextureError"],[4,"AaMode"],[4,"Components"],[4,"Compression"],[4,"Format"],[4,"FilterMethod"],[4,"CubeFace"],[4,"Kind"],[4,"WrapMode"],[3,"Builder"],[8,"Resources"],[8,"Factory"],[8,"Device"],[8,"DeviceFence"],[3,"NotSupported"],[8,"FactoryExt"],[3,"ShaderSource"],[4,"ProgramError"],[3,"OwnedStream"],[8,"Window"],[8,"Stream"],[8,"StreamFactory"],[3,"ParamStorage"],[4,"BlitError"],[4,"UpdateError"],[4,"DrawError"],[3,"Full"],[4,"Error"],[8,"Batch"],[6,"Implicit"],[3,"Core"],[6,"Complete"],[3,"Attribute"],[3,"Mesh"],[3,"Slice"],[4,"SliceKind"],[4,"Error"],[8,"VertexFormat"],[8,"ToSlice"],[8,"ToIndexSlice"],[3,"AttributeIter"],[3,"Link"],[3,"NamedCell"],[3,"ParamDictionary"],[4,"ParameterError"],[8,"Parameter"],[8,"ShaderParam"],[6,"TextureParam"],[3,"ParamDictionaryLink"],[3,"Frame"],[4,"Plane"],[8,"Output"],[8,"RenderFactory"],[3,"Renderer"],[3,"MultiSample"],[3,"ColorMask"],[3,"Mask"],[3,"Mirror"]]}; initSearch(searchIndex);