parin.engine

The engine module functions as a lightweight 2D game engine.

fn _parinSortLayered _parinSortTopDown _parinSortTopDownFast _parinSortTopDownFastest _TEMP_REPLACE_ME_GetCodepointNext _TEMP_REPLACE_ME_GetCodepointPrevious _updateEngineMouseBuffer _updateEngineWasdBuffer _updateViewportInfoBuffer assetsPath attach Attached beginClip beginDepthSort cancelTask clearAllEngineTasks clearDprintBuffer closeWindow defaultFilter defaultFont defaultTexture defaultTextureAreaSize defaultWrap deltaMouse deltaTime deltaWheel DepthSort dequeuePressedKey dequeuePressedRune detach didLoadOrSaveSucceed dprintBuffer dprintfln dprintln drawCirc drawDebugBoxWorld drawDebugEngineInfo drawDebugTileInfo drawDprintBuffer drawLine drawRect drawRune drawSprite drawSurface drawSurfaceArea drawText drawTexture drawTextureArea drawTextureSlice drawTile drawTileMap drawVec2 drawViewport drawViewportArea droppedPaths elapsedTicks elapsedTime endClip endDepthSort engineViewportInfo envArgs fontIdCount fps fpsMax frameMake frameMakeBlank frameMakeSlice frameMakeSliceBlank frameMalloc frameMemoryContext frameRealloc frameResizeSlice freeAllFontIds freeAllResourceIds freeAllSoundIds freeAllTextureIds freeAllViewportIds getRequestedScreenshot isCursorVisible isDebugMode isDown isEnteringDebugMode isExitingDebugMode isFullscreen isLoggingLoadOrSaveFaults isLoggingMemoryTrackingInfo isLoggingWithDprint isNullFontVisible isNullTextureVisible isPixelPerfect isPixelSnapped isPressed isReleased isResolutionLocked isUsingAssetsPath isWindowResized lastLoadOrSaveFault loadBytes loadBytesIntoBuffer loadFont loadSound loadSurface loadTempBytes loadTempText loadText loadTextIntoBuffer loadTexture loadViewport lockResolution masterVolume measureTextSize mouse openUrl openWindow openWindowC pauseSound playSound prepareTempText randf randi randomize repeatTask requestScreenshot resolution resolutionHeight resolutionWidth resumeSound saveBytes saveScreenshot saveText screenHeight screenSize screenWidth setAssetsPath setDebugModeKey setDefaultFilter setDefaultFont setDefaultTexture setDefaultTextureAreaSize setDefaultWrap setDprintFont setDprintLineCountLimit setDprintOptions setDprintPosition setDprintVisibility setFpsMax setIsCursorVisible setIsDebugMode setIsFullscreen setIsLoggingLoadOrSaveFaults setIsLoggingMemoryTrackingInfo setIsLoggingWithDprint setIsNullFontVisible setIsNullTextureVisible setIsPixelPerfect setIsPixelSnapped setIsUsingAssetsPath setMasterVolume setRandomSeed setVsync setWindowBackgroundColor setWindowBorderColor setWindowIconFromFiles setWindowMaxSize setWindowMinSize setWindowTitle soundIdCount startSound stopSound takeScreenshot textureIdCount tickTime toAssetsPath toCanvasPoint toggleDprintVisibility toggleIsCursorVisible toggleIsDebugMode toggleIsFullscreen toggleResolution toggleSoundIsActive toggleSoundIsPaused toScenePoint unlockResolution updateWindow viewportIdCount vsync wasd wasdPressed wasdReleased windowBackgroundColor windowBorderColor windowHeight windowSize windowWidth

Types 21

aliasTimer = GTimer!tickTime

A timer with pause/resume and repeat support.

aliasEngineTasks = GenList!( Task, SparseList!(Task, FixedList!(SparseListItem!Task, defaultEngineEngineTasksCapacity)), FixedList!(Gen, defaultEngineEngineTasksCapacity) )

A container type holding scheduled engine tasks.

An identifier for a scheduled engine task.

aliasEngineFlags = uint

Type representing the internal engine flags.

The internal engine flags.

none = 0x000000
isUpdating = 0x000001
isUsingAssetsPath = 0x000002
isPixelSnapped = 0x000004
isPixelPerfect = 0x000008
isNullTextureVisible = 0x000010
isNullFontVisible = 0x000020
isLoggingLoadOrSaveFaults = 0x000040
isLoggingMemoryTrackingInfo = 0x000080
isLoggingWithDprint = 0x000100
isDebugMode = 0x000200

Information about the engine viewport, including its drawing region and size constraints.

Fields
Rect area
Vec2 minSize
Vec2 maxSize
float minRatio

Internal representation of a viewport within the engine.

Fields
int lockWidth
int lockHeight
bool isChanging
bool isLocking

Internal state of the engine.

Fields
UpdateFunc updateFunc
CallFunc debugModeFunc
CallFunc debugModeBeginFunc
CallFunc debugModeEndFunc
Keyboard debugModeKey
bool debugModePreviousState
bool debugModeEnteringFrameState
bool debugModeExitingFrameState
EngineViewportInfo viewportInfoBuffer
Vec2 mouseBuffer
Vec2 wasdBuffer
Vec2 wasdPressedBuffer
Vec2 wasdReleasedBuffer
double tickTimeBuffer
bool clipIsActive
Rgba windowBorderColor
Filter defaultFilter
Wrap defaultWrap
FontId defaultFont
TextureId defaultTexture
Vec2 defaultTextureAreaSize
int defaultTextureAreaColCount
TextureId currentScreenshotTexture
Camera userCamera
ViewportId userViewport
Fault lastLoadOrSaveFault
IStr memoryTrackingInfoFilter
FStr!defaultEngineAssetsPathCapacity assetsPath
FStr!defaultEngineScreenshotTargetPathCapacity screenshotTargetPath
FStr!defaultEngineScreenshotTargetPathCapacity screenshotLastFaultPath
IStr screenshotLastFaultFile
Sz screenshotLastFaultLine
FixedList!(IStr, defaultEngineEnvArgsCapacity) envArgsBuffer
FStr!defaultEngineDprintCapacity dprintBuffer
FontId dprintFont
Vec2 dprintPosition
DrawOptions dprintOptions
Sz dprintLineCount
Sz dprintLineCountLimit
bool dprintIsVisible
DepthSortData depthSortData
DepthSortMode depthSortMode
bool depthSortActive
structTextureId

A texture identifier.

Fields
Methods
bool isNull()Checks whether the resource is null (default value).
bool isValid()Checks whether the resource is valid (loaded). Null is invalid.
TextureId validate(IStr message = defaultEngineValidateErrorMessage)Returns this resource if valid, or asserts with the given message if not.
Filter filter()Returns the filter mode.
void setFilter(Filter value)Sets the filter mode.
Wrap wrap()Returns the wrap mode.
void setWrap(Wrap value)Sets the wrap mode.
int width()Returns the width in pixels.
int height()Returns the height in pixels.
Vec2 size()Returns the size in pixels.
void free()Frees the resource and resets the identifier to null.
structFontId

A font identifier.

Fields
Methods
bool isNull()Checks whether the resource is null (default value).
bool isValid()Checks whether the resource is valid (loaded). Null is invalid.
FontId validate(IStr message = defaultEngineValidateErrorMessage)Returns this resource if valid, or asserts with the given message if not.
Filter filter()Returns the filter mode.
void setFilter(Filter value)Sets the filter mode.
Wrap wrap()Returns the wrap mode.
void setWrap(Wrap value)Sets the wrap mode.
int size()Returns the font size in pixels.
int runeSpacing()Returns the spacing between characters in pixels.
void setRuneSpacing(int value)Sets the spacing between characters in pixels.
int lineSpacing()Returns the spacing between lines in pixels.
void setLineSpacing(int value)Sets the spacing between lines in pixels.
GlyphInfo glyphInfo(int rune)Returns the glyph information for the given rune.
void free()Frees the resource and resets the identifier to null.
structSoundId

A sound identifier.

Fields
Methods
bool isNull()Checks whether the resource is null (default value).
bool isValid()Checks whether the resource is valid (loaded). Null is invalid.
SoundId validate(IStr message = defaultEngineValidateErrorMessage)Returns this resource if valid, or asserts with the given message if not.
float volume()Returns the volume. The default value is 1.0 (normal level).
void setVolume(float value)Sets the volume. The default value is 1.0 (normal level).
float pan()Returns the pan. The default value is 0.5 (center).
void setPan(float value)Sets the pan. The default value is 0.5 (center).
float pitch()Returns the pitch. The default value is 1.0 (base level).
void setPitch(float value, bool canUpdatePitchVarianceBase = false)Sets the pitch. The default value is 1.0 (base level).
float pitchVariance()Returns the pitch variance. The default value is 1.0 (no variation).
void setPitchVariance(float value)Sets the pitch variance. The default value is 1.0 (no variation).
float pitchVarianceBase()Returns the pitch variance base. The default value is 1.0 (base level).
void setPitchVarianceBase(float value)Sets the pitch variance base. The default value is 1.0 (base level).
bool canRepeat()Returns true if the sound is set to repeat.
void setCanRepeat(bool value)Sets whether the sound should repeat.
bool isActive()Returns true if the sound is currently active (playing).
bool isPaused()Returns true if the sound is currently paused.
float time()Returns the current playback time in seconds.
float duration()Returns the total duration in seconds.
float progress()Returns the progress. The value is between 0.0 and 1.0 (inclusive).
void free()Frees the resource and resets the identifier to null.

A viewport identifier.

Fields
Methods
bool isNull()Checks whether the resource is null (default value).
bool isValid()Checks whether the resource is valid (loaded). Null is invalid.
ViewportId validate(IStr message = defaultEngineValidateErrorMessage)Returns this resource if valid, or asserts with the given message if not.
Filter filter()Returns the filter mode.
void setFilter(Filter value)Sets the filter mode.
Wrap wrap()Returns the wrap mode.
void setWrap(Wrap value)Sets the wrap mode.
Blend blend()Returns the blend mode.
void setBlend(Blend value)Sets the blend mode.
Rgba color()Returns the color in RGBA.
void setColor(Rgba value)Sets the color in RGBA.
int width()Returns the width in pixels.
int height()Returns the height in pixels.
Vec2 size()Returns the size in pixels.
bool isFirstUse()Returns true if the viewport has never been used (attached).
bool isAttached()Returns true if the viewport is attached.
void resize(int newWidth, int newHeight)Resizes the viewport. Internally, this creates a new texture, so avoid calling it while the viewport is in use.
void free()Frees the resource and resets the identifier to null.
structClip

A clipping region. Designed to be used with the with keyword.

Fields
Rect _clipArea
Constructors
this(Rect area)
this(Vec2 position, Vec2 size)
this(Vec2 size)
this(float x, float y, float w, float h)
this(float w, float h)
this(Vec2 position, float w, float h)
this(float x, float y, Vec2 size)
Destructors
struct_Attached(T)
Fields
T * _attachedObject
Constructors
this(ref T object)
Destructors
Fields
Methods
void free() @trusted
Constructors
this(Sz length)
enumDepthSortMode : ubyte

Depth sorting modes.

topDownSorts with: Layer + Y + Call Order
topDownFastSorts with: Layer + Y
topDownFastestSorts with: Y
layeredSorts with: Layer + Call Order
Fields
TextureId texture
Rect area
Vec2 position
DrawOptions options
Fields
float y
ushort i
ubyte layer
struct_DepthSort
Fields
DepthSortMode _depthSortMode
Constructors
Destructors
aliasevery = repeatTask
deprecated Use `repeatTask`.
aliascancel = cancelTask
deprecated Use `cancelTask`.

Functions 235

fn_Attached!T Attached(T)(ref T object) @trusted nothrow @nogcAttaches the camera for the scope and detaches automatically. Designed to be used with the `with` keyword.
fn_DepthSort DepthSort(DepthSortMode mode = DepthSortMode.topDown) @safe nothrow @nogcA depth sort. Works only with textures. Designed to be used with the `with` keyword.
fnint _parinSortTopDown(const(void) * a, const(void) * b)
fnint _parinSortTopDownFast(const(void) * a, const(void) * b)
fnint _parinSortTopDownFastest(const(void) * a, const(void) * b)
fnint _parinSortLayered(const(void) * a, const(void) * b)
fnvoid openWindow(int width, int height, const(IStr)[] args, IStr title = "Parin", bool vsync = defaultEngineVsync)Opens the window with the given information. Avoid calling this function manually.
fnvoid openWindowC(int width, int height, int argc, IStrz * argv, IStrz title = "Parin", bool vsync = defaultEngineVsync)Opens the window with the given information using C strings. Avoid calling this function manually.
fnvoid updateWindow(UpdateFunc updateFunc, CallFunc debugModeFunc = null, CallFunc debugModeBeginFunc = null, CallFunc debugModeEndFunc = null)Starts the main window loop. Accepts an update function and optional debug callbacks. Returns when the update function returns true. Avoid calling this function manually.
fnvoid closeWindow()Closes the window. Avoid calling this function manually.
fnVec2 drawText(A...)(FontId font, InterpolationHeader header, A args, InterpolationFooter footer, Vec2 position, DrawOptions options = DrawOptions(), TextOptions extra = TextOptions())
fnVec2 drawText(A...)(InterpolationHeader header, A args, InterpolationFooter footer, Vec2 position, DrawOptions options = DrawOptions(), TextOptions extra = TextOptions())
fnvoid dprintfln(A...)(InterpolationHeader header, A args, InterpolationFooter footer)
fnvoid * frameMalloc(Sz alignment, Sz size, IStr file = __FILE__, Sz line = __LINE__)Allocates raw memory from the frame arena.
fnvoid * frameRealloc(Sz alignment, void * oldPtr, Sz oldSize, Sz newSize, IStr file = __FILE__, Sz line = __LINE__)Reallocates memory from the frame arena.
fnT * frameMakeBlank(T)(IStr file = __FILE__, Sz line = __LINE__)Allocates uninitialized memory for a single value of type `T`.
fnT * frameMake(T)(IStr file = __FILE__, Sz line = __LINE__)Allocates and initializes a single value of type `T`.
fnT * frameMake(T)(const(T) value, IStr file = __FILE__, Sz line = __LINE__)Allocates and initializes a single value of type `T`.
fnT[] frameMakeSliceBlank(T)(Sz length, IStr file = __FILE__, Sz line = __LINE__)Allocates uninitialized memory for an array of type `T` with the given length.
fnT[] frameMakeSlice(T)(Sz length, IStr file = __FILE__, Sz line = __LINE__)Allocates and initializes an array of type `T` with the given length.
fnT[] frameMakeSlice(T)(Sz length, const(T) value, IStr file = __FILE__, Sz line = __LINE__)Allocates and initializes an array of type `T` with the given length.
fnT[] frameMakeSlice(T)(const(T)[] values, IStr file = __FILE__, Sz line = __LINE__)Allocates and initializes an array of type `T` with the given slice.
fnT[] frameResizeSlice(T)(T * values, Sz oldLength, Sz newLength, IStr file = __FILE__, Sz line = __LINE__)Resizes an array of type `T` with the given slice pointer and length.
fnMemoryContext frameMemoryContext()Returns a memory context from the frame allocator.
fnBStr prepareTempText(Sz capacity = defaultEngineLoadOrSaveTextCapacity, IStr file = __FILE__, Sz line = __LINE__)Allocates a temporary text buffer for this frame. Each call returns a new buffer.
fnEngineTaskId repeatTask(UpdateFunc func, float interval, int count = - 1, bool canCallNow = false)Schedules a task to run every interval. Set `count` to limit how many times it runs. Use -1 to run indefinitely. If `canCallNow` is true, the task runs immediately.
fnvoid cancelTask(EngineTaskId id)Cancels a scheduled task by its ID.
fnSurface loadSurface(IStr path, IStr file = __FILE__, Sz line = __LINE__)Loads a surface file (PNG) with default filter and wrap modes. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the p...
fnSurface loadSurface(const(ubyte)[] memory, IStr ext = ".png", IStr file = __FILE__, Sz line = __LINE__)Loads a surface file (PNG) from memory with default filter and wrap modes.
fnTextureId loadTexture(IStr path, IStr file = __FILE__, Sz line = __LINE__)Loads a texture file (PNG) with default filter and wrap modes. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the p...
fnTextureId loadTexture(const(ubyte)[] memory, IStr ext = ".png", IStr file = __FILE__, Sz line = __LINE__)Loads a texture file (PNG) from memory with default filter and wrap modes.
fnFontId loadFont(IStr path, int size, int runeSpacing = - 1, int lineSpacing = - 1, IStr32 runes = "", IStr file = __FILE__, Sz line = __LINE__)Loads a font file (TTF) with default filter and wrap modes. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the plat...
fnFontId loadFont(const(ubyte)[] memory, int size, int runeSpacing = - 1, int lineSpacing = - 1, IStr32 runes = "", IStr ext = ".ttf", IStr file = __FILE__, Sz line = __LINE__)Loads a font file (TTF) from memory with default filter and wrap modes.
fnFontId loadFont(TextureId texture, int tileWidth, int tileHeight, IStr file = __FILE__, Sz line = __LINE__)Loads a font file (TTF) from a texture with default filter and wrap modes. The input texture will be invalidated after loading.
fnSoundId loadSound(IStr path, float volume, float pitch, bool canRepeat, float pitchVariance = 1.0f, IStr file = __FILE__, Sz line = __LINE__)Loads a sound file (WAV, OGG, MP3) with default playback settings. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to t...
fnViewportId loadViewport(int width, int height, Rgba color, Blend blend = Blend.alpha, IStr file = __FILE__, Sz line = __LINE__)Loads a viewport with default filter and wrap modes.
fnLStr loadBytes(IStr path, IStr file = __FILE__, Sz line = __LINE__)Loads bytes from a file and returns the contents as a list. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the plat...
fnIStr loadTempBytes(IStr path, Sz capacity = defaultEngineLoadOrSaveTextCapacity, IStr file = __FILE__, Sz line = __LINE__)Loads bytes from a file into a temporary buffer for the current frame. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized ...
fnFault loadBytesIntoBuffer(L = LStr)(IStr path, ref L listBuffer, IStr file = __FILE__, Sz line = __LINE__)Loads bytes from a file into the given buffer. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's native...
fnFault saveBytes(IStr path, IStr bytes, IStr file = __FILE__, Sz line = __LINE__)Saves bytes into a file with the given content. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's nativ...
fnLStr loadText(IStr path, IStr file = __FILE__, Sz line = __LINE__)Loads a text file and returns the contents as a list. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's...
fnIStr loadTempText(IStr path, Sz capacity = defaultEngineLoadOrSaveTextCapacity, IStr file = __FILE__, Sz line = __LINE__)Loads a text file into a temporary buffer for the current frame. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the...
fnFault loadTextIntoBuffer(L = LStr)(IStr path, ref L listBuffer, IStr file = __FILE__, Sz line = __LINE__)Loads a text file into the given buffer. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's native format.
fnFault saveText(IStr path, IStr text, IStr file = __FILE__, Sz line = __LINE__)Saves a text file with the given content. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's native format.
fnFault saveScreenshot(IStr path, ViewportId viewport, bool hasAlpha, IStr file = __FILE__, Sz line = __LINE__)Saves an image taken from the given viewport. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's native ...
fnvoid setAssetsPath(IStr path)Sets the path used as the assets folder.
fnint _TEMP_REPLACE_ME_GetCodepointNext(const(char) * text, int * codepointSize)
fnint _TEMP_REPLACE_ME_GetCodepointPrevious(const(char) * text, int * codepointSize)
fnIStr assetsPath()Returns the current path used as the assets folder.
fnIStr toAssetsPath(IStr path)Converts a path to one within the assets folder. Returns the path unchanged if it is absolute or asset paths are disabled.
fnbool isUsingAssetsPath()Returns true if the assets path is used when loading.
fnvoid setIsUsingAssetsPath(bool value)Sets whether the assets path should be used when loading.
fnbool isLoggingLoadOrSaveFaults()Returns true if load or save faults should be logged.
fnvoid setIsLoggingLoadOrSaveFaults(bool value)Sets whether load or save faults should be logged.
fnbool isLoggingMemoryTrackingInfo()Returns true if memory tracking logs are enabled.
fnvoid setIsLoggingMemoryTrackingInfo(bool value, IStr pathFilter = "")Enables or disables memory tracking logs.
fnbool isLoggingWithDprint()Returns true if load or save faults should be logged with the `dprint` functions.
fnvoid setIsLoggingWithDprint(bool value)Sets whether load or save faults should be logged with the `dprint` functions.
fnbool isDebugMode()Returns true if debug mode is active.
fnbool isEnteringDebugMode()Returns true when entering debug mode this frame.
fnbool isExitingDebugMode()Returns true when exiting debug mode this frame.
fnvoid setIsDebugMode(bool value)Sets whether debug mode should be active.
fnvoid toggleIsDebugMode()Toggles the debug mode on or off.
fnvoid setDebugModeKey(Keyboard value)Sets the key that toggles debug mode.
fnbool isWindowResized()Returns true if the window was resized.
fnvoid setWindowMinSize(int width, int height)Sets the minimum size of the window.
fnvoid setWindowMaxSize(int width, int height)Sets the maximum size of the window.
fnRgba windowBackgroundColor()Returns the current background color (fill color) of the window.
fnvoid setWindowBackgroundColor(Rgba value)Sets the background color (fill color) of the window.
fnRgba windowBorderColor()Returns the current color of the window borders shown when the aspect ratio is fixed.
fnvoid setWindowBorderColor(Rgba value)Sets the color of the window borders shown when the aspect ratio is fixed.
fnvoid setWindowTitle(IStr value)Sets the title of the window.
fnFault setWindowIconFromFiles(IStr path)Sets the window icon using an texture file (PNG). Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's nat...
fnint screenWidth()Returns the current screen width.
fnint screenHeight()Returns the current screen height.
fnVec2 screenSize()Returns the current screen size.
fnint windowWidth()Returns the current window width.
fnint windowHeight()Returns the current window height.
fnVec2 windowSize()Returns the current window size.
fnint resolutionWidth()Returns the current resolution width.
fnint resolutionHeight()Returns the current resolution height.
fnVec2 resolution()Returns the current resolution.
fnbool isResolutionLocked()Returns true if the resolution is locked.
fnvoid lockResolution(int width, int height)Locks the resolution to the given width and height.
fnvoid unlockResolution()Unlocks the resolution.
fnvoid toggleResolution(int width, int height)Toggles resolution lock using the specified width and height.
fnEngineViewportInfo engineViewportInfo()Returns information about the engine viewport, including its size and position.
fnbool isFullscreen()Returns true if the application is in fullscreen mode.
fnvoid setIsFullscreen(bool value)Sets whether the application should be in fullscreen mode.
fnvoid toggleIsFullscreen()Toggles fullscreen mode.
fnbool isCursorVisible()Returns true if the cursor is visible.
fnvoid setIsCursorVisible(bool value)Sets whether the cursor should be visible.
fnvoid toggleIsCursorVisible()Toggles cursor visibility.
fnint fps()Returns the current frames per second (FPS).
fnint fpsMax()Returns the maximum frames per second (FPS).
fnvoid setFpsMax(int value)Sets the maximum frames per second (FPS).
fnbool vsync()Returns the vertical synchronization (VSync) state.
fnvoid setVsync(bool value)Sets the vertical synchronization (VSync) state.
fndouble elapsedTime()Returns the total elapsed time since the application started.
fndouble tickTime()Returns the elapsed time at the start of the current tick.
fnulong elapsedTicks()Returns the total number of ticks since the application started.
fnfloat deltaTime()Returns the time elapsed since the last frame.
fnint randi()Returns a random integer between 0 and int.max (inclusive).
fnfloat randf()Returns a random float between 0.0 and 1.0 (inclusive).
fnvoid randomize()Randomizes the seed of the random number generator.
fnvoid setRandomSeed(int value)Sets the random number generator seed to the given value.
fnFilter defaultFilter()Returns the default filter mode used for textures, fonts and viewports.
fnvoid setDefaultFilter(Filter value)Sets the default filter mode used for textures, fonts and viewports.
fnWrap defaultWrap()Returns the default wrap mode used for textures, fonts and viewports.
fnvoid setDefaultWrap(Wrap value)Sets the default wrap mode used for textures, fonts and viewports.
fnTextureId defaultTexture()Returns the default texture used for null textures.
fnvoid setDefaultTexture(TextureId value)Sets the default texture used for null textures.
fnVec2 defaultTextureAreaSize()Returns the default texture area size used for the ID version of `drawTextureArea`.
fnvoid setDefaultTextureAreaSize(Vec2 size)Sets the default texture area size used for the ID version of `drawTextureArea`.
fnFontId defaultFont()Returns the default font used for null fonts.
fnvoid setDefaultFont(FontId value)Sets the default font used for null fonts.
fnbool isNullTextureVisible()Returns true if drawing is done when using a null texture.
fnvoid setIsNullTextureVisible(bool value)Sets whether drawing should be done when using a null texture.
fnbool isNullFontVisible()Returns true if drawing is done when using a null font.
fnvoid setIsNullFontVisible(bool value)Sets whether drawing should be done when using a null font.
fnbool isPixelSnapped()Returns true if drawing is snapped to pixel coordinates.
fnvoid setIsPixelSnapped(bool value)Sets whether drawing should snap to pixel coordinates.
fnbool isPixelPerfect()Returns true if drawing is pixel-perfect.
fnvoid setIsPixelPerfect(bool value)Sets whether drawing should be pixel-perfect.
fnVec2 measureTextSize(FontId font, IStr text, DrawOptions options = DrawOptions(), TextOptions extra = TextOptions())Returns the size of the text.
fnVec2 toCanvasPoint(Vec2 point, Camera camera)Converts a scene point to a canvas point using the given camera and resolution.
fnVec2 toCanvasPoint(Vec2 point, Camera camera, Vec2 canvasSize)Converts a scene point to a canvas point using the given camera and canvas size.
fnVec2 toScenePoint(Vec2 point, Camera camera)Converts a canvas point to a scene point using the given camera and resolution.
fnVec2 toScenePoint(Vec2 point, Camera camera, Vec2 canvasSize)Converts a canvas point to a scene point using the given camera and canvas size.
fnIStr[] envArgs()Returns the arguments this application was started with.
fnIStr[] droppedPaths()Returns the dropped paths from the current frame.
fnvoid takeScreenshot(IStr path, bool isUsingLockedResolution = false, bool hasAlpha = false, IStr file = __FILE__, Sz line = __LINE__)Takes a screenshot and saves it to the given path. Uses the assets path unless the input starts with `/` or `\`, or `isUsingAssetsPath` is false. Path separators are normalized to the platform's na...
fnvoid requestScreenshot(bool isUsingLockedResolution = false, bool hasAlpha = false, IStr file = __FILE__, Sz line = __LINE__)Takes a screenshot and creates a texture from it that can be used with the `getRequestedScreenshot` function.
fnbool getRequestedScreenshot(ref TextureId result, bool canFreeGivenTexture)Returns the texture created by the last screenshot request, if available (true). When `canFreeGivenTexture` is true, the existing texture in `result` is freed.
fnvoid openUrl(IStr url)Opens a URL in the default web browser.
fnFault lastLoadOrSaveFault()Returns the last fault from a load or save call.
fnbool didLoadOrSaveSucceed(Fault fault, IStr message)Helper for checking the result of a load or save call. Returns true if the fault is none, false otherwise.
fnSz textureIdCount()Returns the number of loaded textures.
fnSz fontIdCount()Returns the number of loaded fonts.
fnSz soundIdCount()Returns the number of loaded sounds.
fnSz viewportIdCount()Returns the number of loaded viewports.
fnvoid freeAllTextureIds()Frees all loaded textures.
fnvoid freeAllFontIds()Frees all loaded fonts.
fnvoid freeAllSoundIds()Frees all loaded sounds.
fnvoid freeAllViewportIds()Frees all loaded viewports.
fnvoid freeAllResourceIds()Frees all loaded textures, fonts, sounds, and viewports.
fnvoid clearAllEngineTasks()Clears all engine tasks.
fnVec2 mouse()Returns the current mouse position on the window.
fnVec2 deltaMouse()Returns the change in mouse position since the last frame.
fnfloat deltaWheel()Returns the change in mouse wheel position since the last frame.
fnbool isDown(char key)Returns true if the specified character is currently pressed.
fnbool isDown(Keyboard key)Returns true if the specified keyboard key is currently pressed.
fnbool isDown(Mouse key)Returns true if the specified mouse button is currently pressed.
fnbool isDown(Gamepad key, int id = 0)Returns true if the specified gamepad button is currently pressed.
fnbool isPressed(char key)Returns true if the specified character was pressed this frame.
fnbool isPressed(Keyboard key)Returns true if the specified keyboard key was pressed this frame.
fnbool isPressed(Mouse key)Returns true if the specified mouse button was pressed this frame.
fnbool isPressed(Gamepad key, int id = 0)Returns true if the specified gamepad button was pressed this frame.
fnbool isReleased(char key)Returns true if the specified character was released this frame.
fnbool isReleased(Keyboard key)Returns true if the specified keyboard key was released this frame.
fnbool isReleased(Mouse key)Returns true if the specified mouse button was released this frame.
fnbool isReleased(Gamepad key, int id = 0)Returns true if the specified gamepad button was released this frame.
fnVec2 wasd()Returns the direction from the WASD and arrow keys that are currently down. The result is not normalized.
fnVec2 wasdPressed()Returns the direction from the WASD and arrow keys that were pressed this frame. The result is not normalized.
fnVec2 wasdReleased()Returns the direction from the WASD and arrow keys that were released this frame. The result is not normalized.
fnKeyboard dequeuePressedKey()Returns the next recently pressed keyboard key. This acts like a queue. Returns `Keyboard.none` if the queue is empty.
fndchar dequeuePressedRune()Returns the next recently pressed character. This acts like a queue. Returns `\0` if the queue is empty.
fnvoid attach(ref Camera camera, Rounding type = Rounding.none)Attaches the given camera and makes it active.
fnvoid attach(ViewportId viewport)Attaches the given viewport and makes it active.
fnvoid detach(ref Camera camera)Detaches the currently active camera.
fnvoid detach(ViewportId viewport)Detaches the currently active viewport.
fnvoid beginClip(Rect area)Begins a clipping region using the given area.
fnvoid beginClip(float x, float y, float w, float h)Begins a clipping region using the given area.
fnvoid endClip()Ends the active clipping region.
fnvoid beginDepthSort(DepthSortMode mode = DepthSortMode.topDown)Begins a depth sort. Works only with textures.
fnvoid endDepthSort()Ends a depth sort. Works only with textures.
fnvoid drawRect(Rect area, Rgba color = white, float thickness = - 1.0f)Draws a rectangle with the specified area and color.
fnvoid drawRect(Vec2 position, Vec2 size, Rgba color = white, float thickness = - 1.0f)Draws a rectangle with the specified area and color.
fnvoid drawRect(float x, float y, float w, float h, Rgba color = white, float thickness = - 1.0f)Draws a rectangle with the specified area and color.
fnvoid drawVec2(Vec2 point, Rgba color = white, float thickness = 9.0f)Draws a point at the specified location with the given size and color.
fnvoid drawVec2(float x, float y, Rgba color = white, float thickness = 9.0f)Draws a point at the specified location with the given size and color.
fnvoid drawCirc(Circ area, Rgba color = white, float thickness = - 1.0f)Draws a circle with the specified area and color.
fnvoid drawCirc(Vec2 position, float radius, Rgba color = white, float thickness = - 1.0f)Draws a circle with the specified area and color.
fnvoid drawCirc(float x, float y, float radius, Rgba color = white, float thickness = - 1.0f)Draws a circle with the specified area and color.
fnvoid drawLine(Line area, Rgba color = white, float thickness = 9.0f)Draws a line with the specified area, thickness, and color.
fnvoid drawLine(Vec2 a, Vec2 b, Rgba color = white, float thickness = 9.0f)Draws a line with the specified area, thickness, and color.
fnvoid drawLine(float x1, float y1, float x2, float y2, Rgba color = white, float thickness = 9.0f)Draws a line with the specified area, thickness, and color.
fnvoid drawSurface(ref Surface surface, Vec2 position, DrawOptions options = DrawOptions())Draws the surface at the given position with the specified draw options. Note: Surfaces are uploaded to a GPU atlas every frame they are drawn.
fnvoid drawSurfaceArea(ref Surface surface, Rect area, Vec2 position, DrawOptions options = DrawOptions())Draws a portion of the specified surface at the given position with the specified draw options. Note: Surfaces are uploaded to a GPU atlas every frame they are drawn.
fnvoid drawTexture(TextureId texture, Vec2 position, DrawOptions options = DrawOptions())Draws the texture at the given position with the specified draw options.
fnvoid drawTextureArea(TextureId texture, Rect area, Vec2 position, DrawOptions options = DrawOptions())Draws a portion of the specified texture at the given position with the specified draw options.
fnvoid drawTextureArea(Rect area, Vec2 position, DrawOptions options = DrawOptions())Draws a portion of the default texture at the given position with the specified draw options. Call `setDefaultTexture` before using this function.
fnvoid drawTextureArea(int id, Vec2 position, DrawOptions options = DrawOptions())Draws a portion of the default texture by ID at the given position with the specified draw options. Call `setDefaultTexture` and `setDefaultTextureAreaSize` before using this function.
fnvoid drawTextureSlice(TextureId texture, Rect area, Rect target, Margin margin, bool canRepeat, DrawOptions options = DrawOptions())Draws a 9-slice from the specified texture area at the given target area.
fnvoid drawTextureSlice(Rect area, Rect target, Margin margin, bool canRepeat, DrawOptions options = DrawOptions())Draws a 9-slice from the default texture area at the given target area. Call `setDefaultTexture` before using this function.
fnvoid drawViewportArea(ViewportId viewport, Rect area, Vec2 position, DrawOptions options = DrawOptions())Draws a portion of the specified viewport at the given position with the specified draw options.
fnvoid drawViewport(ViewportId viewport, Vec2 position, DrawOptions options = DrawOptions())Draws the viewport at the given position with the specified draw options.
fnVec2 drawRune(FontId font, dchar rune, Vec2 position, DrawOptions options = DrawOptions())Draws a single character from the specified font at the given position with the specified draw options.
fnVec2 drawRune(dchar rune, Vec2 position, DrawOptions options = DrawOptions())Draws a single character from the default font at the given position with the specified draw options. Call `setDefaultFont` before using this function.
fnVec2 drawText(FontId font, IStr text, Vec2 position, DrawOptions options = DrawOptions(), TextOptions extra = TextOptions())Draws the specified text with the given font at the given position using the provided draw options.
fnVec2 drawText(IStr text, Vec2 position, DrawOptions options = DrawOptions(), TextOptions extra = TextOptions())Draws text with the default font at the given position with the provided draw options. Call `setDefaultFont` before using this function.
fnvoid dprintfln(A...)(IStr fmtStr, A args)Append a formatted line to the overlay text buffer. Drawn after everything else using the current default font.
fnvoid dprintln(A...)(A args)Append a line to the overlay text buffer. Drawn after everything else using the current default font.
fnIStr dprintBuffer()Returns the contents of the overlay text buffer. The returned string references the internal buffer and may change if more text is printed.
fnvoid setDprintFont(FontId value)Sets the font of the overlay text.
fnvoid setDprintPosition(Vec2 value)Sets the position of the overlay text.
fnvoid setDprintOptions(DrawOptions value)Sets the drawing options for the overlay text.
fnvoid setDprintLineCountLimit(Sz value)Sets the maximum number of overlay text lines. Older lines are removed once this limit is reached. Use 0 for unlimited.
fnvoid setDprintVisibility(bool value)Sets the visibility state of the overlay text. Does not affect manual drawing via `drawDprintBuffer`.
fnvoid toggleDprintVisibility()Toggles the visibility state of the overlay text. Does not affect manual drawing via `drawDprintBuffer`.
fnvoid clearDprintBuffer()Clears the overlay text.
fnvoid drawDprintBuffer()Draws the overlay text now instead of at the end of the frame. The text will still be drawn automatically later unless the buffer is cleared with `clearDprintBuffer`, or visibility is disabled with...
fnvoid drawDebugEngineInfo(Vec2 screenPoint, Camera camera = Camera(), DrawOptions options = DrawOptions(), bool isLogging = false)Draws debug engine information at the given position with the provided draw options. Hold the left mouse button to create and resize a debug area. Hold the right mouse button to move the debug area...
fnvoid drawDebugTileInfo(int tileWidth, int tileHeight, Vec2 screenPoint, Camera camera = Camera(), DrawOptions options = DrawOptions(), bool isLogging = false)Draws debug tile information at the given position with the provided draw options.
fnvoid playSound(SoundId sound)Plays the given sound. If the sound is already playing, this has no effect.
fnvoid stopSound(SoundId sound)Stops playback of the given sound.
fnvoid startSound(SoundId sound)Starts playback of the given sound from the beginning.
fnvoid pauseSound(SoundId sound)Pauses playback of the given sound.
fnvoid resumeSound(SoundId sound)Resumes playback of the given sound if it was paused.
fnvoid toggleSoundIsActive(SoundId sound)Toggles whether the sound is playing or stopped.
fnvoid toggleSoundIsPaused(SoundId sound)Toggles whether the sound is paused or resumed.
fnfloat masterVolume()Returns the current master volume level.
fnvoid setMasterVolume(float value)Sets the master volume level.
fnvoid drawTile(TextureId texture, Tile tile, DrawOptions options = DrawOptions())Draws a tile with a texture.
fnvoid drawTile(Tile tile, DrawOptions options = DrawOptions())Draws a tile with the default texture.
fnvoid drawTileMap(Sz N)(TextureId texture, ref GTileMap!N map, Rect viewArea = Rect(), DrawOptions options = DrawOptions())Draws a tile map with a texture. The view area controls what is visible.
fnvoid drawTileMap(Sz N)(ref GTileMap!N map, Rect viewArea = Rect(), DrawOptions options = DrawOptions())Draws a tile map with the default texture. The view area controls what is visible.
fnvoid drawTileMap(Sz N)(TextureId texture, ref GTileMap!N map, Camera camera, DrawOptions options = DrawOptions())Draws a tile map with a texture. The camera controls what is visible.
fnvoid drawTileMap(Sz N)(ref GTileMap!N map, Camera camera, DrawOptions options = DrawOptions())Draws a tile map with the default texture. The camera controls what is visible.
fnvoid drawSprite(TextureId texture, Sprite sprite, DrawOptions options = DrawOptions())Draws a sprite with a texture. The Hook and Flip of the options is ignored.
fnvoid drawSprite(Sprite sprite, DrawOptions options = DrawOptions())Draws a sprite with the default texture. The Hook and Flip of the options is ignored.
fnvoid drawDebugBoxWorld(ref BoxWorld world, Rgba actorColor = blue, Rgba wallColor = maroon)Draws debug rectangles based on the given box world.

Variables 30

varEngineState * _engineState
enumvardefaultEngineTitle = "Parin"
enumvardefaultEngineWidth = 1280
enumvardefaultEngineHeight = 720
enumvardefaultEngineVsync = true
enumvardefaultEngineFpsMax = 60
enumvardefaultEngineWindowMinWidth = 320
enumvardefaultEngineWindowMinHeight = 180
enumvardefaultEngineWindowMinSize = Vec2(defaultEngineWindowMinWidth, defaultEngineWindowMinHeight)
enumvardefaultEngineDebugModeKey = Keyboard.f3
enumvardefaultEngineFlags = EngineFlag.isUsingAssetsPath | EngineFlag.isNullTextureVisible | EngineFlag.isNullFontVisible | EngineFlag.isLoggingLoadOrSaveFaults | EngineFlag.isLoggingMemoryTrackingInfo
enumvardefaultEngineValidateErrorMessage = "Resource is invalid or was never assigned."
enumvardefaultEngineLoadErrorMessage = "ERROR({}:{}): Can't load {} from \"{}\""
enumvardefaultEngineSaveErrorMessage = "ERROR({}:{}): Can't save {} to \"{}\""
enumvardefaultEngineLoadOrSaveTextCapacity = 16 * kilobyte
enumvardefaultEngineEnvArgsCapacity = (64 / defaultEngineResourceScaleDenominator)
enumvardefaultEngineEngineTasksCapacity = (64 / defaultEngineResourceScaleDenominator)
enumvardefaultEngineAssetsPathCapacity = (8 / defaultEngineResourceScaleDenominator) * kilobyte
enumvardefaultEngineScreenshotTargetPathCapacity = (2 / defaultEngineResourceScaleDenominator) * kilobyte
enumvardefaultEngineArenaCapacity = (4 / defaultEngineResourceScaleDenominator) * megabyte
enumvardefaultEngineDprintCapacity = (4 / defaultEngineResourceScaleDenominator) * kilobyte
enumvardefaultEngineDprintPosition = Vec2(3, 3)
enumvardefaultEngineDprintLineCountLimit = 13
enumvardefaultEngineDprintFont = engineFont
enumvardefaultEngineDebugColor1 = white.alpha(120)
enumvardefaultEngineDebugColor2 = black.alpha(170)
enumvarengineFont = FontId(ResourceId(1))

The engine font identifier.

enumvarengineFontSmall = FontId(ResourceId(2))

The second engine font identifier.

enumvarengineViewport = ViewportId(ResourceId(1))

The engine viewport identifier.

enumvar_screenshotRequestPath = "[SCREENSHOT]"