1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
use super::identities::*; use super::render_target_type::*; use super::color::*; use super::blend_mode::*; use super::shader_type::*; use crate::buffer::*; use std::ops::{Range}; /// /// Represents an action for a render target /// #[derive(Clone, PartialEq, Debug)] pub enum RenderAction { /// /// Sets the transformation matrix to use for future renderings /// SetTransform(Matrix), /// /// Creates a vertex buffer with the specified 2D vertices in it (replacing any existing buffer) /// CreateVertex2DBuffer(VertexBufferId, Vec<Vertex2D>), /// /// Creates an index buffer with the specified 2D vertices in it (replacing any existing buffer) /// CreateIndexBuffer(IndexBufferId, Vec<u16>), /// /// Frees an existing vertex buffer /// FreeVertexBuffer(VertexBufferId), /// /// Frees an existing index buffer /// FreeIndexBuffer(IndexBufferId), /// /// Sets the blend mode for future drawing operations (SourceOver is the default) /// BlendMode(BlendMode), /// /// Creates a new render target of the specified size, as the specified texture /// CreateRenderTarget(RenderTargetId, TextureId, usize, usize, RenderTargetType), /// /// Frees up an existing render target /// FreeRenderTarget(RenderTargetId), /// /// Send future rendering instructions to the specified render target /// SelectRenderTarget(RenderTargetId), /// /// Send future rendering instructions to the main frame buffer /// RenderToFrameBuffer, /// /// Display the current frame buffer on-screen /// ShowFrameBuffer, /// /// Renders the specified framebuffer to the current framebuffer /// DrawFrameBuffer(RenderTargetId, i32, i32), /// /// Creates an 8-bit BGRA texture of the specified size /// CreateTextureBgra(TextureId, usize, usize), /// /// Frees up an existing texture /// FreeTexture(TextureId), /// /// Clears the current render target to the specified colour /// Clear(Rgba8), /// /// Uses the specified shader /// UseShader(ShaderType), /// /// Renders triangles from a vertex buffer (with no texture) /// /// Parameters are the range of vertices to use /// DrawTriangles(VertexBufferId, Range<usize>), /// /// Renders triangles using an index buffer /// DrawIndexedTriangles(VertexBufferId, IndexBufferId, usize) }