gameforge - v0.1.12
    Preparing search index...

    Class ProjectionSystem

    System plugin to the renderer to manage the projection matrix.

    The projectionMatrix is a global uniform provided to all shaders. It is used to transform points in world space to normalized device coordinates.

    PIXI

    Implements

    Index

    Constructors

    Properties

    defaultFrame: Rectangle

    Default destination frame

    This is not used internally. It is not advised to use this feature specifically unless you know what you're doing. The update method will default to this frame if you do not pass the destination frame.

    destinationFrame: Rectangle

    The destination frame used to calculate the current projection matrix.

    The destination frame is the rectangle in the render-target into which contents are rendered. If rendering to the screen, the origin is on the top-left. If rendering to a framebuffer, the origin is on the bottom-left. This "flipping" phenomenon is because of WebGL convention for (shader) texture coordinates, where the bottom-left corner is (0,0). It allows display-objects to map their (0,0) position in local-space (top-left) to (0,0) in texture space (bottom-left). In other words, a sprite's top-left corner actually renders the texture's bottom-left corner. You will also notice this when using a tool like SpectorJS to view your textures at runtime.

    The destination frame's dimensions (width,height) should be equal to the source frame. This is because, otherwise, the contents will be scaled to fill the destination frame. Similarly, the destination frame's (x,y) coordinates are (0,0) unless you know what you're doing.

    projectionMatrix: Matrix

    Projection matrix

    This matrix can be used to transform points from world space to normalized device coordinates, and is calculated from the sourceFrame → destinationFrame mapping provided.

    The renderer's globalUniforms keeps a reference to this, and so it is available for all shaders to use as a uniform.

    sourceFrame: Rectangle

    The source frame used to calculate the current projection matrix.

    The source frame is the rectangle in world space containing the contents to be rendered.

    transform: Matrix

    A transform to be appended to the projection matrix.

    This can be used to transform points in world-space one last time before they are outputted by the shader. You can use to rotate the whole scene, for example. Remember to clear it once you've rendered everything.

    Methods

    • Calculates the projectionMatrix to map points inside sourceFrame to inside destinationFrame.

      Parameters

      • _destinationFrame: Rectangle

        The destination frame in the render-target.

      • sourceFrame: Rectangle

        The source frame in world space.

      • _resolution: number

        The render-target's resolution, i.e. ratio of CSS to physical pixels.

      • root: boolean

        Whether rendering into the screen. Otherwise, if rendering to a framebuffer, the projection is y-flipped.

      Returns void

    • Generic destroy methods to be overridden by the subclass

      Returns void

    • Sets the transform of the active render target to the given matrix.

      Parameters

      • _matrix: Matrix

        The transformation matrix

      Returns void

    • Updates the projection-matrix based on the sourceFrame → destinationFrame mapping provided.

      NOTE: It is expected you call renderer.framebuffer.setViewport(destinationFrame) after this. This is because the framebuffer viewport converts shader vertex output in normalized device coordinates to window coordinates.

      NOTE-2: PIXI.RenderTextureSystem#bind updates the projection-matrix when you bind a render-texture. It is expected that you dirty the current bindings when calling this manually.

      Parameters

      • destinationFrame: Rectangle

        The rectangle in the render-target to render the contents into. If rendering to the canvas, the origin is on the top-left; if rendering to a render-texture, the origin is on the bottom-left.

      • sourceFrame: Rectangle

        The rectangle in world space that contains the contents being rendered.

      • resolution: number

        The resolution of the render-target, which is the ratio of world-space (or CSS) pixels to physical pixels.

      • root: boolean

        Whether the render-target is the screen. This is required because rendering to textures is y-flipped (i.e. upside down relative to the screen).

      Returns void