Simple Axis-aligned minimum bounding box collision detection
2D Camera for rendering
RGBA color represented by 4 floats between 0 and 1.
Color write mask. Disabled color channels will not be written to.
The configuration of a component type. This configuration is used to statically define
behaviour of a component type for perfomance and utility reason.
Access to the component system
Set of components from the same type only from the specified (groups)
crate::GroupSet of mutable components from the same type only from the specified (groups)
crate::GroupTypeId of a struct that derives from the
component macro. The diffrence to the
std::any::TypeId is, that
this TypeId is const and is the same on every system.
Context to communicate with the game engine to access components, scenes, camera, physics and much more.
A Duration
type to represent a span of time, typically used for system
timeouts.
Dummy component that should not be rendered to the screen
Acces to various frame information.
Holds the connection to the GPU using wgpu. Also has some default buffers, layouts etc.
Configuration of the
wgpu limits, features and backend graphics api
Holds default buffers, shaders, sprites and layouts needed by shura.
Groups can be used like a chunk system to make huge 2D worlds possible or to just order your components.
The Engine has a default
Group with the
default handle.
After every update and before rendering, the set of active groups gets
computed.
Unique identifier of a group
Represents the order in which
Vertices are drawn in a triangle.
Manage input from touch devices, keyboards, mice and gamepads.
Event of a
InputTrigger that holds the trigger and the time of the event.
Single vertex of a model. Which hold the coordniate of the vertex and the texture coordinates.
Builder to easily create a
Model.
Represents the current state of the keyboard modifiers
Create a new
Scene from scratch
Component that is rendered to the screen by its given position and scale.
Add a
Scene that previously has been removed.
Render grpahics to the screen or a sprite. The renderer can be extended with custom graphcis throught
the
RenderPass or the provided methods for shura’s shader system.
Access to the scenes.
Configurations of handling the Screen. This can be configured per
SceneIndicates if the screen is touched anywhere.
Reload a
Scene from its serialized state
Shader following the shura shader system. The vertex shader is the same along every shader and is provided
by shura.
Core of the game engine.
Configuration for the base of the game engine
2D Sprite used for rendering
Collection of
Sprites that will be loaded from the same image where all sprites have the same size.
TypeId of a struct that derives from the
state macro. The diffrence to the
std::any::TypeId is, that
this TypeId is const and is the same on every system.
Uniform abstraction used to send data to the GPU. You can use the uniform in the
shader by binding it via the Renderer
. You should look that every Uniform
is 16 byte aligned since not all gpu.devices / browser support other aligned values.
Single vertex of a model. Which hold the coordniate of the vertex and the texture coordinates.
Base Wgpu objects needed to create any further graphics object.
Limits a
Camera to always maintain the aspect ratio of the window. This behaviour can be controlled
through the
WorldCameraScale. This camera is also in charge of deciding which
Groups
is active based on if the
Groups intersects with the camera.
Boxed component, that can be downcasted to any
Component
using downcast_ref or downcast_mut.
Type alias for a hashmap using the fx
hash algorithm.
Type alias for a hashmap using the fx
hash algorithm.
A 2-dimensional direct isometry using a unit complex number for its rotational part.
A stack-allocated, column-major, 2x2 square matrix.
A statically sized 2-dimensional column point.
A 2D rotation represented as a complex number with magnitude 1.
A 2-dimensional translation.
A stack-allocated, 2-dimensional unit vector.
A stack-allocated, 2-dimensional column vector.
A stack-allocated, 3-dimensional column vector.
A stack-allocated, 4-dimensional column vector.