var searchIndex = {}; searchIndex["amethyst"] = {"doc":"Amethyst is a free and open source SDK (software development kit) written in\nidiomatic [Rust](https://www.rust-lang.org/) for building video games and\ninteractive multimedia applications.","items":[[0,"engine","amethyst","Game engine sitting atop the core libraries.",null,null],[3,"Duration","amethyst::engine","ISO 8601 time duration with nanosecond precision.\nThis also allows for the negative duration; see individual methods for details.",null,null],[3,"SteadyTime","","A structure representing a moment in time.",null,null],[0,"app","","",null,null],[3,"Application","amethyst::engine::app","User-friendly facade for building games. Manages main loop.",null,null],[11,"new","","",0,{"inputs":[{"name":"t"}],"output":{"name":"application"}}],[11,"run","","Starts the application and manages the game loop.",0,null],[0,"state","amethyst::engine","",null,null],[3,"StateMachine","amethyst::engine::state","A simple stack-based state machine.",null,null],[8,"State","","A trait which defines game states that can be used by the state machine.",null,null],[10,"new","","",1,{"inputs":[],"output":{"name":"self"}}],[11,"on_start","","Executed the first time when the game state is reached.",1,null],[11,"on_stop","","Executed when the application finally exits.",1,null],[11,"on_pause","","Executed when the application switches away to a different game state.",1,null],[11,"on_resume","","Executed when the application returns to this game state once again.",1,null],[11,"handle_events","","Executed on every frame before updating, for use in reacting to events.\nTODO: Replace i32 with an actual Event type of some kind.",1,null],[11,"fixed_update","","Executed repeatedly at stable, predictable intervals (1/60th of a second\nby default).",1,null],[11,"update","","Executed on every frame immediately, as fast as the engine will allow.",1,null],[11,"new","","",2,{"inputs":[{"name":"t"}],"output":{"name":"statemachine"}}],[11,"current","","Retrieves the currently active state.",2,null],[11,"start","","Initializes the state machine.",2,null],[11,"handle_events","","Passes a vector of events to the active state to handle.",2,null],[11,"fixed_update","","Updates the currently active state at a steady, fixed interval.",2,null],[11,"update","","Updates the currently active state immediately.",2,null],[11,"switch","","Sets the currently active state.",2,null],[11,"push","","Pauses the active state (if any) and pushes a new state onto the state\nstack.",2,null],[11,"pop","","Stops and removes the active state and un-pauses the next state on the\nstack (if any).",2,null],[11,"stop","","Shuts the state machine down.",2,null],[0,"timing","amethyst::engine","",null,null],[3,"Duration","amethyst::engine::timing","ISO 8601 time duration with nanosecond precision.\nThis also allows for the negative duration; see individual methods for details.",null,null],[3,"SteadyTime","","A structure representing a moment in time.",null,null],[3,"Stopwatch","","Useful utility for accurately measuring elapsed time.",null,null],[11,"new","","",3,{"inputs":[],"output":{"name":"stopwatch"}}],[11,"elapsed","","Retrieves the elapsed time.",3,null],[11,"restart","","Stops, resets, and starts the stopwatch again.",3,null],[11,"start","","Starts, or resumes, measuring elapsed time. If the stopwatch has been\nstarted and stopped before, the new results are compounded onto the\nexisting elapsed time value.",3,null],[11,"stop","","Stops measuring elapsed time.",3,null],[11,"reset","","Clears the current elapsed time value.",3,null],[0,"renderer","amethyst","High level rendering engine with multiple backends.",null,null],[3,"Frame","amethyst::renderer","A collection of lights and objects to be rendered by the frontend.",null,null],[12,"lights","","",4,null],[12,"objects","","",4,null],[3,"Frontend","","Simple renderer frontend.",null,null],[4,"Light","","A light source.",null,null],[13,"Area","","",5,null],[13,"Directional","","",5,null],[12,"color","amethyst::renderer::Light","",5,null],[12,"direction","","",5,null],[12,"intensity","","",5,null],[13,"Point","amethyst::renderer","",5,null],[12,"color","amethyst::renderer::Light","",5,null],[12,"intensity","","",5,null],[12,"location","","",5,null],[13,"Spot","amethyst::renderer","",5,null],[12,"angle","amethyst::renderer::Light","",5,null],[12,"color","","",5,null],[12,"direction","","",5,null],[12,"intensity","","",5,null],[12,"location","","",5,null],[4,"Object","amethyst::renderer","A physical renderable object.",null,null],[13,"Emitter","","",6,null],[13,"IndexedMesh","","",6,null],[12,"indices","amethyst::renderer::Object","",6,null],[12,"vertices","","",6,null],[13,"Mesh","amethyst::renderer","",6,null],[12,"vertices","amethyst::renderer::Object","",6,null],[13,"Sprite","amethyst::renderer","",6,null],[0,"backend","","Makes low-level graphics API calls and manages memory.",null,null],[0,"state_dynamic","amethyst::renderer::backend","Structures representing dynamic GPU pipeline state.",null,null],[3,"BlendInfo","amethyst::renderer::backend::state_dynamic","",null,null],[12,"blend_constants","","",7,null],[12,"targets","","",7,null],[3,"DepthStencilInfo","","",null,null],[12,"depth_func","","",8,null],[12,"depth_enabled","","",8,null],[12,"depth_write_enabled","","",8,null],[12,"depth_bounds_enabled","","",8,null],[12,"max_depth","","",8,null],[12,"min_depth","","",8,null],[12,"stencil_enabled","","",8,null],[12,"stencil_read_mask","","",8,null],[12,"stencil_write_mask","","",8,null],[12,"back","","",8,null],[12,"front","","",8,null],[3,"RasterizerInfo","","",null,null],[12,"cull_mode","","",9,null],[12,"depth_bias","","",9,null],[12,"depth_bias_slope_scaled","","",9,null],[12,"depth_bias_clamp","","",9,null],[12,"fill_mode","","",9,null],[12,"winding_order","","",9,null],[3,"TargetBlendInfo","","",null,null],[12,"blending_enabled","","",10,null],[12,"alpha_func","","",10,null],[12,"color_func","","",10,null],[12,"dest_alpha","","",10,null],[12,"dest_color","","",10,null],[12,"source_alpha","","",10,null],[12,"source_color","","",10,null],[3,"ViewportInfo","","",null,null],[12,"scissor_test_enabled","","",11,null],[12,"scissors","","",11,null],[12,"viewports","","",11,null],[4,"DynamicState","","Handle to a dynamic state object.",null,null],[13,"Blend","","Color blend state.",12,null],[13,"DepthStencil","","Depth stencil state.",12,null],[13,"Rasterizer","","Rasterizer state.",12,null],[13,"Viewport","","Viewport state.",12,null],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"clone","","",12,null],[0,"state_static","amethyst::renderer::backend","Structures representing static GPU pipeline state.",null,null],[3,"BlenderInfo","amethyst::renderer::backend::state_static","",null,null],[12,"alpha_to_coverage_enabled","","",13,null],[12,"dual_source_enabled","","",13,null],[12,"blend_operation","","",13,null],[12,"targets","","",13,null],[3,"DepthStencilTesterInfo","","",null,null],[12,"format_channel","","",14,null],[12,"format_numeric","","",14,null],[3,"InputAssemblerInfo","","",null,null],[12,"vertex_reuse_enabled","","",15,null],[12,"primitive_used","","",15,null],[3,"RasterizerInfo","","",null,null],[12,"depth_clip_enabled","","",16,null],[3,"TargetInfo","","",null,null],[12,"blending_enabled","","",17,null],[12,"channel_write_mask","","",17,null],[12,"format_channel","","",17,null],[12,"format_numeric","","",17,null],[3,"PipelineInfo","","",null,null],[12,"color_blender","","",18,null],[12,"depth_stencil","","",18,null],[12,"input_assembler","","",18,null],[12,"rasterizer","","",18,null],[12,"shaders","","",18,null],[3,"Pipeline","","Handle to a pipeline state object.",null,null],[11,"partial_cmp","","",19,null],[11,"lt","","",19,null],[11,"le","","",19,null],[11,"gt","","",19,null],[11,"ge","","",19,null],[11,"eq","","",19,null],[11,"ne","","",19,null],[11,"cmp","","",19,null],[11,"clone","","",19,null],[0,"traits","amethyst::renderer::backend","Traits used by all renderer backends.",null,null],[8,"Backend","amethyst::renderer::backend::traits","Trait implemented by renderer backends.",null,null],[10,"process","","",20,null],[8,"Resources","","Trait for managing handles to GPU resources.",null,null],[10,"create_buffer","","",21,null],[10,"create_shader","","",21,null],[8,"States","","Trait for managing handles to GPU state objects.",null,null],[10,"create_blend","","",22,null],[10,"create_depth_stencil","","",22,null],[10,"create_pipeline","","",22,null],[10,"create_raster","","",22,null],[10,"create_viewport","","",22,null],[11,"clone","amethyst::renderer","",5,null],[11,"clone","","",6,null],[11,"new","","",4,{"inputs":[],"output":{"name":"frame"}}],[11,"new","","",23,{"inputs":[{"name":"t"}],"output":{"name":"frontend"}}],[11,"load_render_path","","",23,null],[11,"draw","","Draws a frame with the currently set render path. TODO: Build actual\nmodular, parallelized Object translators.",23,null],[0,"ir","","Platform-agnostic intermediate representation used by the frontend and\nbackend to communicate.",null,null],[3,"CommandEncoder","amethyst::renderer::ir","Builds a CommandBuffer and generates an associated SortKey.",null,null],[12,"key","","",24,null],[3,"CommandQueue","","Queues and sorts CommandBuffers to minimize redundant state changes.",null,null],[4,"Command","","Serialized graphics command.",null,null],[13,"Clear","","",25,null],[13,"Draw","","",25,null],[13,"DrawIndexed","","",25,null],[13,"SetBuffer","","",25,null],[13,"SetDynamicState","","",25,null],[13,"SetPipeline","","",25,null],[6,"CommandBuffer","","A collection of Commands.",null,null],[6,"SortKey","","64-bit key used for sorting CommandBuffers. TODO: Need design for fields.",null,null],[8,"AddCommands","","A trait which adds methods to more easily populate a CommandBuffer.",null,null],[10,"clear","","Clears the specified buffer to a value.",26,null],[10,"draw","","Draws non-indexed, non-instanced primitives.",26,null],[10,"draw_indexed","","Draws indexed, non-instanced primitives.",26,null],[10,"set_buffer","","Binds a vertex/index/constant buffer to pull data from.",26,null],[10,"set_dynamic_state","","Binds dynamic state (blend, depth-stencil, rasterizer, or viewport).",26,null],[10,"set_pipeline","","Binds a static pipeline state object to use when drawing.",26,null],[11,"clone","","",25,null],[11,"clone","","",24,null],[11,"new","","",24,{"inputs":[],"output":{"name":"commandencoder"}}],[11,"finish","","Signals that the encoder has finished recording.",24,null],[11,"clear","","",24,null],[11,"draw","","",24,null],[11,"draw_indexed","","",24,null],[11,"set_buffer","","",24,null],[11,"set_dynamic_state","","",24,null],[11,"set_pipeline","","",24,null],[11,"new","","",27,{"inputs":[],"output":{"name":"commandqueue"}}],[11,"submit","","Enqueues a finished CommandEncoder.",27,null],[11,"sort_and_flush","","Sorts the queue and returns the result, ready for processing by the\nbackend.",27,null],[0,"types","amethyst::renderer","Special types for representing cross-API GPU data.",null,null],[3,"BufferInfo","amethyst::renderer::types","",null,null],[12,"size","","Size in bytes.",28,null],[3,"DepthStencilOp","","",null,null],[12,"depth_fail","","",29,null],[12,"fail","","",29,null],[12,"pass","","",29,null],[12,"stencil_func","","",29,null],[12,"reference_value","","",29,null],[3,"ScissorBox","","",null,null],[12,"origin","","",30,null],[12,"size","","",30,null],[3,"ShaderSet","","",null,null],[12,"fragment","","",31,null],[12,"geometry","","",31,null],[12,"vertex","","",31,null],[3,"Viewport","","",null,null],[12,"origin","","",32,null],[12,"size","","",32,null],[12,"min_depth","","",32,null],[12,"max_depth","","",32,null],[4,"Buffer","","",null,null],[13,"Index","","",33,null],[13,"Uniform","","",33,null],[13,"Vertex","","",33,null],[4,"Shader","","",null,null],[13,"Compute","","",34,null],[13,"Fragment","","",34,null],[13,"Geometry","","",34,null],[13,"Vertex","","",34,null],[4,"Blend","","",null,null],[13,"One","","",35,null],[13,"OneMinusConstAlpha","","",35,null],[13,"OneMinusConstColor","","",35,null],[13,"OneMinusDestAlpha","","",35,null],[13,"OneMinusDestColor","","",35,null],[13,"OneMinusSourceAlpha","","",35,null],[13,"OneMinusSourceColor","","",35,null],[13,"ConstantAlpha","","",35,null],[13,"ConstantColor","","",35,null],[13,"DestAlpha","","",35,null],[13,"DestColor","","",35,null],[13,"SourceAlpha","","",35,null],[13,"SourceAlphaSaturate","","",35,null],[13,"SourceColor","","",35,null],[13,"Zero","","",35,null],[4,"BlendFunc","","",null,null],[13,"Add","","",36,null],[13,"Max","","",36,null],[13,"Min","","",36,null],[13,"ReverseSub","","",36,null],[13,"Sub","","",36,null],[4,"ClearMask","","",null,null],[13,"Color","","",37,null],[13,"Depth","","",37,null],[13,"Stencil","","",37,null],[4,"CompareFunc","","",null,null],[13,"Always","","",38,null],[13,"Equal","","",38,null],[13,"Greater","","",38,null],[13,"GreaterEqual","","",38,null],[13,"Less","","",38,null],[13,"LessEqual","","",38,null],[13,"Never","","",38,null],[13,"NotEqual","","",38,null],[4,"CullMode","","",null,null],[13,"None","","",39,null],[13,"Back","","",39,null],[13,"Front","","",39,null],[4,"FillMode","","",null,null],[13,"Solid","","",40,null],[13,"Wireframe","","",40,null],[4,"LogicOp","","",null,null],[13,"And","","",41,null],[13,"AndReverse","","",41,null],[13,"AndInverted","","",41,null],[13,"Copy","","",41,null],[13,"CopyInverted","","",41,null],[13,"Clear","","",41,null],[13,"Equiv","","",41,null],[13,"Invert","","",41,null],[13,"Nand","","",41,null],[13,"NoOp","","",41,null],[13,"Nor","","",41,null],[13,"Or","","",41,null],[13,"OrInverted","","",41,null],[13,"OrReverse","","",41,null],[13,"Set","","",41,null],[13,"Xor","","",41,null],[4,"Primitive","","",null,null],[13,"Points","","",42,null],[13,"Lines","","",42,null],[13,"LineStrip","","",42,null],[13,"Triangles","","",42,null],[13,"TriangleStrip","","",42,null],[13,"TriangleFan","","",42,null],[13,"Quads","","",42,null],[4,"StencilOp","","",null,null],[13,"DecrementClamp","","",43,null],[13,"DecrementWrap","","",43,null],[13,"IncrementClamp","","",43,null],[13,"IncrementWrap","","",43,null],[13,"Invert","","",43,null],[13,"Keep","","",43,null],[13,"Replace","","",43,null],[13,"Zero","","",43,null],[4,"Target","","",null,null],[13,"DepthStencil","","",44,null],[13,"Render","","",44,null],[4,"Winding","","",null,null],[13,"CW","","",45,null],[13,"CCW","","",45,null],[11,"clone","","",33,null],[11,"clone","","",34,null],[11,"clone","","",37,null],[11,"weeks","amethyst::engine::timing","Makes a new `Duration` with given number of weeks.\nEquivalent to `Duration::seconds(weeks * 7 * 24 * 60 * 60)` with overflow checks.\nPanics when the duration is out of bounds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"days","","Makes a new `Duration` with given number of days.\nEquivalent to `Duration::seconds(days * 24 * 60 * 60)` with overflow checks.\nPanics when the duration is out of bounds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"hours","","Makes a new `Duration` with given number of hours.\nEquivalent to `Duration::seconds(hours * 60 * 60)` with overflow checks.\nPanics when the duration is out of bounds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"minutes","","Makes a new `Duration` with given number of minutes.\nEquivalent to `Duration::seconds(minutes * 60)` with overflow checks.\nPanics when the duration is out of bounds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"seconds","","Makes a new `Duration` with given number of seconds.\nPanics when the duration is more than `i64::MAX` milliseconds\nor less than `i64::MIN` milliseconds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"milliseconds","","Makes a new `Duration` with given number of milliseconds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"microseconds","","Makes a new `Duration` with given number of microseconds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"nanoseconds","","Makes a new `Duration` with given number of nanoseconds.",46,{"inputs":[{"name":"i64"}],"output":{"name":"duration"}}],[11,"span","","Runs a closure, returning the duration of time it took to run the\nclosure.",46,{"inputs":[{"name":"f"}],"output":{"name":"duration"}}],[11,"num_weeks","","Returns the total number of whole weeks in the duration.",46,null],[11,"num_days","","Returns the total number of whole days in the duration.",46,null],[11,"num_hours","","Returns the total number of whole hours in the duration.",46,null],[11,"num_minutes","","Returns the total number of whole minutes in the duration.",46,null],[11,"num_seconds","","Returns the total number of whole seconds in the duration.",46,null],[11,"num_milliseconds","","Returns the total number of whole milliseconds in the duration,",46,null],[11,"num_microseconds","","Returns the total number of whole microseconds in the duration,\nor `None` on overflow (exceeding 2^63 microseconds in either direction).",46,null],[11,"num_nanoseconds","","Returns the total number of whole nanoseconds in the duration,\nor `None` on overflow (exceeding 2^63 nanoseconds in either direction).",46,null],[11,"checked_add","","Add two durations, returning `None` if overflow occurred.",46,null],[11,"checked_sub","","Subtract two durations, returning `None` if overflow occurred.",46,null],[11,"min_value","","The minimum possible `Duration`: `i64::MIN` milliseconds.",46,{"inputs":[],"output":{"name":"duration"}}],[11,"max_value","","The maximum possible `Duration`: `i64::MAX` milliseconds.",46,{"inputs":[],"output":{"name":"duration"}}],[11,"zero","","A duration where the stored seconds and nanoseconds are equal to zero.",46,{"inputs":[],"output":{"name":"duration"}}],[11,"is_zero","","Returns `true` if the duration equals `Duration::zero()`.",46,null],[11,"from_std","","Creates a `time::Duration` object from `std::time::Duration`",46,{"inputs":[{"name":"duration"}],"output":{"name":"result"}}],[11,"to_std","","Creates a `std::time::Duration` object from `time::Duration`",46,null],[11,"fmt","","",46,null],[11,"cmp","","",46,null],[11,"partial_cmp","","",46,null],[11,"lt","","",46,null],[11,"le","","",46,null],[11,"gt","","",46,null],[11,"ge","","",46,null],[11,"eq","","",46,null],[11,"ne","","",46,null],[11,"clone","","",46,null],[11,"neg","","",46,null],[11,"add","","",46,null],[11,"sub","","",46,null],[11,"mul","","",46,null],[11,"div","","",46,null],[11,"fmt","","",46,null],[11,"fmt","","",47,null],[11,"eq","","",47,null],[11,"ne","","",47,null],[11,"cmp","","",47,null],[11,"partial_cmp","","",47,null],[11,"lt","","",47,null],[11,"le","","",47,null],[11,"gt","","",47,null],[11,"ge","","",47,null],[11,"clone","","",47,null],[11,"now","","Returns a `SteadyTime` representing the current moment in time.",47,{"inputs":[],"output":{"name":"steadytime"}}],[11,"fmt","","",47,null],[11,"sub","","",47,null],[11,"sub","","",47,null],[11,"add","","",47,null]],"paths":[[3,"Application"],[8,"State"],[3,"StateMachine"],[3,"Stopwatch"],[3,"Frame"],[4,"Light"],[4,"Object"],[3,"BlendInfo"],[3,"DepthStencilInfo"],[3,"RasterizerInfo"],[3,"TargetBlendInfo"],[3,"ViewportInfo"],[4,"DynamicState"],[3,"BlenderInfo"],[3,"DepthStencilTesterInfo"],[3,"InputAssemblerInfo"],[3,"RasterizerInfo"],[3,"TargetInfo"],[3,"PipelineInfo"],[3,"Pipeline"],[8,"Backend"],[8,"Resources"],[8,"States"],[3,"Frontend"],[3,"CommandEncoder"],[4,"Command"],[8,"AddCommands"],[3,"CommandQueue"],[3,"BufferInfo"],[3,"DepthStencilOp"],[3,"ScissorBox"],[3,"ShaderSet"],[3,"Viewport"],[4,"Buffer"],[4,"Shader"],[4,"Blend"],[4,"BlendFunc"],[4,"ClearMask"],[4,"CompareFunc"],[4,"CullMode"],[4,"FillMode"],[4,"LogicOp"],[4,"Primitive"],[4,"StencilOp"],[4,"Target"],[4,"Winding"],[3,"Duration"],[3,"SteadyTime"]]}; initSearch(searchIndex);