//go:build !cgo && windows // +build !cgo,windows package rl import ( "fmt" "image" "image/color" "os" "unsafe" "github.com/ebitengine/purego" "golang.org/x/sys/windows" ) var ( // raylibDll is the pointer to the shared library raylibDll uintptr ) var initWindow func(width int32, height int32, title string) var closeWindow func() var windowShouldClose func() bool var isWindowReady func() bool var isWindowFullscreen func() bool var isWindowHidden func() bool var isWindowMinimized func() bool var isWindowMaximized func() bool var isWindowFocused func() bool var isWindowResized func() bool var isWindowState func(flag uint32) bool var setWindowState func(flags uint32) var clearWindowState func(flags uint32) var toggleFullscreen func() var toggleBorderlessWindowed func() var maximizeWindow func() var minimizeWindow func() var restoreWindow func() var setWindowIcon func(image uintptr) var setWindowIcons func(images uintptr, count int32) var setWindowTitle func(title string) var setWindowPosition func(x int32, y int32) var setWindowMonitor func(monitor int32) var setWindowMinSize func(width int32, height int32) var setWindowMaxSize func(width int32, height int32) var setWindowSize func(width int32, height int32) var setWindowOpacity func(opacity float32) var setWindowFocused func() var getWindowHandle func() unsafe.Pointer var getScreenWidth func() int32 var getScreenHeight func() int32 var getRenderWidth func() int32 var getRenderHeight func() int32 var getMonitorCount func() int32 var getCurrentMonitor func() int32 var getMonitorPosition func(monitor int32) uintptr var getMonitorWidth func(monitor int32) int32 var getMonitorHeight func(monitor int32) int32 var getMonitorPhysicalWidth func(monitor int32) int32 var getMonitorPhysicalHeight func(monitor int32) int32 var getMonitorRefreshRate func(monitor int32) int32 var getWindowPosition func() uintptr var getWindowScaleDPI func() uintptr var getMonitorName func(monitor int32) string var setClipboardText func(text string) var getClipboardText func() string var enableEventWaiting func() var disableEventWaiting func() var showCursor func() var hideCursor func() var isCursorHidden func() bool var enableCursor func() var disableCursor func() var isCursorOnScreen func() bool var clearBackground func(col uintptr) var beginDrawing func() var endDrawing func() var beginMode2D func(camera uintptr) var endMode2D func() var beginMode3D func(camera uintptr) var endMode3D func() var beginTextureMode func(target uintptr) var endTextureMode func() var beginShaderMode func(shader uintptr) var endShaderMode func() var beginBlendMode func(mode int32) var endBlendMode func() var beginScissorMode func(x int32, y int32, width int32, height int32) var endScissorMode func() var beginVrStereoMode func(config uintptr) var endVrStereoMode func() var loadVrStereoConfig func(config uintptr, device uintptr) var unloadVrStereoConfig func(config uintptr) var loadShader func(shader uintptr, vsFileName uintptr, fsFileName uintptr) var loadShaderFromMemory func(shader uintptr, vsCode uintptr, fsCode uintptr) var isShaderReady func(shader uintptr) bool var getShaderLocation func(shader uintptr, uniformName string) int32 var getShaderLocationAttrib func(shader uintptr, attribName string) int32 var setShaderValue func(shader uintptr, locIndex int32, value []float32, uniformType int32) var setShaderValueV func(shader uintptr, locIndex int32, value []float32, uniformType int32, count int32) var setShaderValueMatrix func(shader uintptr, locIndex int32, mat uintptr) var setShaderValueTexture func(shader uintptr, locIndex int32, texture uintptr) var unloadShader func(shader uintptr) var getMouseRay func(ray uintptr, mousePosition uintptr, camera uintptr) var getCameraMatrix func(mat uintptr, camera uintptr) var getCameraMatrix2D func(mat uintptr, camera uintptr) var getWorldToScreen func(position uintptr, camera uintptr) uintptr var getScreenToWorld2D func(position uintptr, camera uintptr) uintptr var getWorldToScreenEx func(position uintptr, camera uintptr, width int32, height int32) uintptr var getWorldToScreen2D func(position uintptr, camera uintptr) uintptr var setTargetFPS func(fps int32) var getFrameTime func() float32 var getTime func() float64 var getFPS func() int32 var swapScreenBuffer func() var pollInputEvents func() var waitTime func(seconds float64) var setRandomSeed func(seed uint32) var getRandomValue func(minimum int32, maximum int32) int32 var loadRandomSequence func(count uint32, minimum int32, maximum int32) *int32 var unloadRandomSequence func(sequence *int32) var takeScreenshot func(fileName string) var setConfigFlags func(flags uint32) var openURL func(url string) var traceLog func(logLevel int32, text string) var setTraceLogLevel func(logLevel int32) var memAlloc func(size uint32) unsafe.Pointer var memRealloc func(ptr unsafe.Pointer, size uint32) unsafe.Pointer var memFree func(ptr unsafe.Pointer) var setTraceLogCallback func(callback uintptr) var isFileDropped func() bool var loadDroppedFiles func(files uintptr) var unloadDroppedFiles func(files uintptr) var loadAutomationEventList func(automationEventList uintptr, fileName string) uintptr var unloadAutomationEventList func(list uintptr) var exportAutomationEventList func(list uintptr, fileName string) bool var setAutomationEventList func(list uintptr) var setAutomationEventBaseFrame func(frame int32) var startAutomationEventRecording func() var stopAutomationEventRecording func() var playAutomationEvent func(event uintptr) var isKeyPressed func(key int32) bool var isKeyPressedRepeat func(key int32) bool var isKeyDown func(key int32) bool var isKeyReleased func(key int32) bool var isKeyUp func(key int32) bool var getKeyPressed func() int32 var getCharPressed func() int32 var setExitKey func(key int32) var isGamepadAvailable func(gamepad int32) bool var getGamepadName func(gamepad int32) string var isGamepadButtonPressed func(gamepad int32, button int32) bool var isGamepadButtonDown func(gamepad int32, button int32) bool var isGamepadButtonReleased func(gamepad int32, button int32) bool var isGamepadButtonUp func(gamepad int32, button int32) bool var getGamepadButtonPressed func() int32 var getGamepadAxisCount func(gamepad int32) int32 var getGamepadAxisMovement func(gamepad int32, axis int32) float32 var setGamepadMappings func(mappings string) int32 var isMouseButtonPressed func(button int32) bool var isMouseButtonDown func(button int32) bool var isMouseButtonReleased func(button int32) bool var isMouseButtonUp func(button int32) bool var getMouseX func() int32 var getMouseY func() int32 var getMousePosition func() uintptr var getMouseDelta func() uintptr var setMousePosition func(x int32, y int32) var setMouseOffset func(offsetX int32, offsetY int32) var setMouseScale func(scaleX float32, scaleY float32) var getMouseWheelMove func() float32 var getMouseWheelMoveV func() uintptr var setMouseCursor func(cursor int32) var getTouchX func() int32 var getTouchY func() int32 var getTouchPosition func(index int32) uintptr var getTouchPointId func(index int32) int32 var getTouchPointCount func() int32 var setGesturesEnabled func(flags uint32) var isGestureDetected func(gesture uint32) bool var getGestureDetected func() int32 var getGestureHoldDuration func() float32 var getGestureDragVector func() uintptr var getGestureDragAngle func() float32 var getGesturePinchVector func() uintptr var getGesturePinchAngle func() float32 var setShapesTexture func(texture uintptr, source uintptr) var drawPixel func(posX int32, posY int32, col uintptr) var drawPixelV func(position uintptr, col uintptr) var drawLine func(startPosX int32, startPosY int32, endPosX int32, endPosY int32, col uintptr) var drawLineV func(startPos uintptr, endPos uintptr, col uintptr) var drawLineEx func(startPos uintptr, endPos uintptr, thick float32, col uintptr) var drawLineStrip func(points *Vector2, pointCount int32, col uintptr) var drawLineBezier func(startPos uintptr, endPos uintptr, thick float32, col uintptr) var drawCircle func(centerX int32, centerY int32, radius float32, col uintptr) var drawCircleSector func(center uintptr, radius float32, startAngle float32, endAngle float32, segments int32, col uintptr) var drawCircleSectorLines func(center uintptr, radius float32, startAngle float32, endAngle float32, segments int32, col uintptr) var drawCircleGradient func(centerX int32, centerY int32, radius float32, color1 uintptr, color2 uintptr) var drawCircleV func(center uintptr, radius float32, col uintptr) var drawCircleLines func(centerX int32, centerY int32, radius float32, col uintptr) var drawCircleLinesV func(center uintptr, radius float32, col uintptr) var drawEllipse func(centerX int32, centerY int32, radiusH float32, radiusV float32, col uintptr) var drawEllipseLines func(centerX int32, centerY int32, radiusH float32, radiusV float32, col uintptr) var drawRing func(center uintptr, innerRadius float32, outerRadius float32, startAngle float32, endAngle float32, segments int32, col uintptr) var drawRingLines func(center uintptr, innerRadius float32, outerRadius float32, startAngle float32, endAngle float32, segments int32, col uintptr) var drawRectangle func(posX int32, posY int32, width int32, height int32, col uintptr) var drawRectangleV func(position uintptr, size uintptr, col uintptr) var drawRectangleRec func(rec uintptr, col uintptr) var drawRectanglePro func(rec uintptr, origin uintptr, rotation float32, col uintptr) var drawRectangleGradientV func(posX int32, posY int32, width int32, height int32, color1 uintptr, color2 uintptr) var drawRectangleGradientH func(posX int32, posY int32, width int32, height int32, color1 uintptr, color2 uintptr) var drawRectangleGradientEx func(rec uintptr, col1 uintptr, col2 uintptr, col3 uintptr, col4 uintptr) var drawRectangleLines func(posX int32, posY int32, width int32, height int32, col uintptr) var drawRectangleLinesEx func(rec uintptr, lineThick float32, col uintptr) var drawRectangleRounded func(rec uintptr, roundness float32, segments int32, col uintptr) var drawRectangleRoundedLines func(rec uintptr, roundness float32, segments int32, lineThick float32, col uintptr) var drawTriangle func(v1 uintptr, v2 uintptr, v3 uintptr, col uintptr) var drawTriangleLines func(v1 uintptr, v2 uintptr, v3 uintptr, col uintptr) var drawTriangleFan func(points *Vector2, pointCount int32, col uintptr) var drawTriangleStrip func(points *Vector2, pointCount int32, col uintptr) var drawPoly func(center uintptr, sides int32, radius float32, rotation float32, col uintptr) var drawPolyLines func(center uintptr, sides int32, radius float32, rotation float32, col uintptr) var drawPolyLinesEx func(center uintptr, sides int32, radius float32, rotation float32, lineThick float32, col uintptr) var drawSplineLinear func(points *Vector2, pointCount int32, thick float32, col uintptr) var drawSplineBasis func(points *Vector2, pointCount int32, thick float32, col uintptr) var drawSplineCatmullRom func(points *Vector2, pointCount int32, thick float32, col uintptr) var drawSplineBezierQuadratic func(points *Vector2, pointCount int32, thick float32, col uintptr) var drawSplineBezierCubic func(points *Vector2, pointCount int32, thick float32, col uintptr) var drawSplineSegmentLinear func(p1 uintptr, p2 uintptr, thick float32, col uintptr) var drawSplineSegmentBasis func(p1 uintptr, p2 uintptr, p3 uintptr, p4 uintptr, thick float32, col uintptr) var drawSplineSegmentCatmullRom func(p1 uintptr, p2 uintptr, p3 uintptr, p4 uintptr, thick float32, col uintptr) var drawSplineSegmentBezierQuadratic func(p1 uintptr, c2 uintptr, p3 uintptr, thick float32, col uintptr) var drawSplineSegmentBezierCubic func(p1 uintptr, c2 uintptr, c3 uintptr, p4 uintptr, thick float32, col uintptr) var getSplinePointLinear func(startPos uintptr, endPos uintptr, t float32) uintptr var getSplinePointBasis func(p1 uintptr, p2 uintptr, p3 uintptr, p4 uintptr, t float32) uintptr var getSplinePointCatmullRom func(p1 uintptr, p2 uintptr, p3 uintptr, p4 uintptr, t float32) uintptr var getSplinePointBezierQuad func(p1 uintptr, c2 uintptr, p3 uintptr, t float32) uintptr var getSplinePointBezierCubic func(p1 uintptr, c2 uintptr, c3 uintptr, p4 uintptr, t float32) uintptr var checkCollisionRecs func(rec1 uintptr, rec2 uintptr) bool var checkCollisionCircles func(center1 uintptr, radius1 float32, center2 uintptr, radius2 float32) bool var checkCollisionCircleRec func(center uintptr, radius float32, rec uintptr) bool var checkCollisionPointRec func(point uintptr, rec uintptr) bool var checkCollisionPointCircle func(point uintptr, center uintptr, radius float32) bool var checkCollisionPointTriangle func(point uintptr, p1 uintptr, p2 uintptr, p3 uintptr) bool var checkCollisionPointPoly func(point uintptr, points *Vector2, pointCount int32) bool var checkCollisionLines func(startPos1 uintptr, endPos1 uintptr, startPos2 uintptr, endPos2 uintptr, collisionPoint *Vector2) bool var checkCollisionPointLine func(point uintptr, p1 uintptr, p2 uintptr, threshold int32) bool var getCollisionRec func(rec uintptr, rec1 uintptr, rec2 uintptr) var loadImage func(img uintptr, fileName string) var loadImageRaw func(img uintptr, fileName string, width int32, height int32, format int32, headerSize int32) var loadImageSvg func(img uintptr, fileNameOrString string, width int32, height int32) var loadImageAnim func(img uintptr, fileName string, frames []int32) var loadImageFromMemory func(img uintptr, fileType string, fileData []byte, dataSize int32) var loadImageFromTexture func(img uintptr, texture uintptr) var loadImageFromScreen func(img uintptr) var isImageReady func(image uintptr) bool var unloadImage func(image uintptr) var exportImage func(image uintptr, fileName string) bool var exportImageToMemory func(image uintptr, fileType string, fileSize *int32) *byte var genImageColor func(image uintptr, width int32, height int32, col uintptr) var genImageGradientLinear func(image uintptr, width int32, height int32, direction int32, start uintptr, end uintptr) var genImageGradientRadial func(image uintptr, width int32, height int32, density float32, inner uintptr, outer uintptr) var genImageGradientSquare func(image uintptr, width int32, height int32, density float32, inner uintptr, outer uintptr) var genImageChecked func(image uintptr, width int32, height int32, checksX int32, checksY int32, col1 uintptr, col2 uintptr) var genImageWhiteNoise func(image uintptr, width int32, height int32, factor float32) var genImagePerlinNoise func(image uintptr, width int32, height int32, offsetX int32, offsetY int32, scale float32) var genImageCellular func(image uintptr, width int32, height int32, tileSize int32) var genImageText func(image uintptr, width int32, height int32, text string) var imageCopy func(retImage uintptr, image uintptr) var imageFromImage func(retImage uintptr, image uintptr, rec uintptr) var imageText func(retImage uintptr, text string, fontSize int32, col uintptr) var imageTextEx func(retImage uintptr, font uintptr, text string, fontSize float32, spacing float32, tint uintptr) var imageFormat func(image *Image, newFormat int32) var imageToPOT func(image *Image, fill uintptr) var imageCrop func(image *Image, crop uintptr) var imageAlphaCrop func(image *Image, threshold float32) var imageAlphaClear func(image *Image, col uintptr, threshold float32) var imageAlphaMask func(image *Image, alphaMask uintptr) var imageAlphaPremultiply func(image *Image) var imageBlurGaussian func(image *Image, blurSize int32) var imageResize func(image *Image, newWidth int32, newHeight int32) var imageResizeNN func(image *Image, newWidth int32, newHeight int32) var imageResizeCanvas func(image *Image, newWidth int32, newHeight int32, offsetX int32, offsetY int32, fill uintptr) var imageMipmaps func(image *Image) var imageDither func(image *Image, rBpp int32, gBpp int32, bBpp int32, aBpp int32) var imageFlipVertical func(image *Image) var imageFlipHorizontal func(image *Image) var imageRotate func(image *Image, degrees int32) var imageRotateCW func(image *Image) var imageRotateCCW func(image *Image) var imageColorTint func(image *Image, col uintptr) var imageColorInvert func(image *Image) var imageColorGrayscale func(image *Image) var imageColorContrast func(image *Image, contrast float32) var imageColorBrightness func(image *Image, brightness int32) var imageColorReplace func(image *Image, col uintptr, replace uintptr) var loadImageColors func(image uintptr) *color.RGBA var loadImagePalette func(image uintptr, maxPaletteSize int32, colorCount *int32) *color.RGBA var unloadImageColors func(colors *color.RGBA) var unloadImagePalette func(colors *color.RGBA) var getImageAlphaBorder func(rec uintptr, image uintptr, threshold float32) var getImageColor func(image uintptr, x int32, y int32) uintptr var imageClearBackground func(dst *Image, col uintptr) var imageDrawPixel func(dst *Image, posX int32, posY int32, col uintptr) var imageDrawPixelV func(dst *Image, position uintptr, col uintptr) var imageDrawLine func(dst *Image, startPosX int32, startPosY int32, endPosX int32, endPosY int32, col uintptr) var imageDrawLineV func(dst *Image, start uintptr, end uintptr, col uintptr) var imageDrawCircle func(dst *Image, centerX int32, centerY int32, radius int32, col uintptr) var imageDrawCircleV func(dst *Image, center uintptr, radius int32, col uintptr) var imageDrawCircleLines func(dst *Image, centerX int32, centerY int32, radius int32, col uintptr) var imageDrawCircleLinesV func(dst *Image, center uintptr, radius int32, col uintptr) var imageDrawRectangle func(dst *Image, posX int32, posY int32, width int32, height int32, col uintptr) var imageDrawRectangleV func(dst *Image, position uintptr, size uintptr, col uintptr) var imageDrawRectangleRec func(dst *Image, rec uintptr, col uintptr) var imageDrawRectangleLines func(dst *Image, rec uintptr, thick int32, col uintptr) var imageDraw func(dst *Image, src uintptr, srcRec uintptr, dstRec uintptr, tint uintptr) var imageDrawText func(dst *Image, text string, posX int32, posY int32, fontSize int32, col uintptr) var imageDrawTextEx func(dst *Image, font uintptr, text string, position uintptr, fontSize float32, spacing float32, tint uintptr) var loadTexture func(texture uintptr, fileName string) var loadTextureFromImage func(texture uintptr, image uintptr) var loadTextureCubemap func(texture uintptr, image uintptr, layout int32) var loadRenderTexture func(texture uintptr, width int32, height int32) var isTextureReady func(texture uintptr) bool var unloadTexture func(texture uintptr) var isRenderTextureReady func(target uintptr) bool var unloadRenderTexture func(target uintptr) var updateTexture func(texture uintptr, pixels *color.RGBA) var updateTextureRec func(texture uintptr, rec uintptr, pixels *color.RGBA) var genTextureMipmaps func(texture *Texture2D) var setTextureFilter func(texture uintptr, filter int32) var setTextureWrap func(texture uintptr, wrap int32) var drawTexture func(texture uintptr, posX int32, posY int32, tint uintptr) var drawTextureV func(texture uintptr, position uintptr, tint uintptr) var drawTextureEx func(texture uintptr, position uintptr, rotation float32, scale float32, tint uintptr) var drawTextureRec func(texture uintptr, source uintptr, position uintptr, tint uintptr) var drawTexturePro func(texture uintptr, source uintptr, dest uintptr, origin uintptr, rotation float32, tint uintptr) var drawTextureNPatch func(texture uintptr, nPatchInfo uintptr, dest uintptr, origin uintptr, rotation float32, tint uintptr) var fade func(col uintptr, alpha float32) uintptr var colorToInt func(col uintptr) int32 var colorNormalize func(vector4 uintptr, col uintptr) var colorFromNormalized func(normalized uintptr) uintptr var colorToHSV func(vector3 uintptr, col uintptr) var colorFromHSV func(hue float32, saturation float32, value float32) uintptr var colorTint func(col uintptr, tint uintptr) uintptr var colorBrightness func(col uintptr, factor float32) uintptr var colorContrast func(col uintptr, contrast float32) uintptr var colorAlpha func(col uintptr, alpha float32) uintptr var colorAlphaBlend func(dst uintptr, src uintptr, tint uintptr) uintptr var getColor func(hexValue uint32) uintptr var getPixelColor func(srcPtr unsafe.Pointer, format int32) uintptr var setPixelColor func(dstPtr unsafe.Pointer, col uintptr, format int32) var getPixelDataSize func(width int32, height int32, format int32) int32 var getFontDefault func(font uintptr) var loadFont func(font uintptr, fileName string) var loadFontEx func(font uintptr, fileName string, fontSize int32, codepoints []int32, codepointCount int32) var loadFontFromImage func(font uintptr, image uintptr, key uintptr, firstChar int32) var loadFontFromMemory func(font uintptr, fileType string, fileData []byte, dataSize int32, fontSize int32, codepoints []int32, codepointCount int32) var isFontReady func(font uintptr) bool var loadFontData func(fileData []byte, dataSize int32, fontSize int32, codepoints []int32, codepointCount int32, _type int32) *GlyphInfo var genImageFontAtlas func(image uintptr, glyphs *GlyphInfo, glyphRecs []*Rectangle, glyphCount int32, fontSize int32, padding int32, packMethod int32) var unloadFontData func(glyphs *GlyphInfo, glyphCount int32) var unloadFont func(font uintptr) var drawFPS func(posX int32, posY int32) var drawText func(text string, posX int32, posY int32, fontSize int32, col uintptr) var drawTextEx func(font uintptr, text string, position uintptr, fontSize float32, spacing float32, tint uintptr) var drawTextPro func(font uintptr, text string, position uintptr, origin uintptr, rotation float32, fontSize float32, spacing float32, tint uintptr) var drawTextCodepoint func(font uintptr, codepoint int32, position uintptr, fontSize float32, tint uintptr) var drawTextCodepoints func(font uintptr, codepoints []int32, codepointCount int32, position uintptr, fontSize float32, spacing float32, tint uintptr) var setTextLineSpacing func(spacing int32) var measureText func(text string, fontSize int32) int32 var measureTextEx func(font uintptr, text string, fontSize float32, spacing float32) uintptr var getGlyphIndex func(font uintptr, codepoint int32) int32 var getGlyphInfo func(glyphInfo uintptr, font uintptr, codepoint int32) var getGlyphAtlasRec func(rec uintptr, font uintptr, codepoint int32) var drawLine3D func(startPos uintptr, endPos uintptr, col uintptr) var drawPoint3D func(position uintptr, col uintptr) var drawCircle3D func(center uintptr, radius float32, rotationAxis uintptr, rotationAngle float32, col uintptr) var drawTriangle3D func(v1 uintptr, v2 uintptr, v3 uintptr, col uintptr) var drawTriangleStrip3D func(points *Vector3, pointCount int32, col uintptr) var drawCube func(position uintptr, width float32, height float32, length float32, col uintptr) var drawCubeV func(position uintptr, size uintptr, col uintptr) var drawCubeWires func(position uintptr, width float32, height float32, length float32, col uintptr) var drawCubeWiresV func(position uintptr, size uintptr, col uintptr) var drawSphere func(centerPos uintptr, radius float32, col uintptr) var drawSphereEx func(centerPos uintptr, radius float32, rings int32, slices int32, col uintptr) var drawSphereWires func(centerPos uintptr, radius float32, rings int32, slices int32, col uintptr) var drawCylinder func(position uintptr, radiusTop float32, radiusBottom float32, height float32, slices int32, col uintptr) var drawCylinderEx func(startPos uintptr, endPos uintptr, startRadius float32, endRadius float32, sides int32, col uintptr) var drawCylinderWires func(position uintptr, radiusTop float32, radiusBottom float32, height float32, slices int32, col uintptr) var drawCylinderWiresEx func(startPos uintptr, endPos uintptr, startRadius float32, endRadius float32, sides int32, col uintptr) var drawCapsule func(startPos uintptr, endPos uintptr, radius float32, slices int32, rings int32, col uintptr) var drawCapsuleWires func(startPos uintptr, endPos uintptr, radius float32, slices int32, rings int32, col uintptr) var drawPlane func(centerPos uintptr, size uintptr, col uintptr) var drawRay func(ray uintptr, col uintptr) var drawGrid func(slices int32, spacing float32) var loadModel func(model uintptr, fileName string) var loadModelFromMesh func(model uintptr, mesh uintptr) var isModelReady func(model uintptr) bool var unloadModel func(model uintptr) var getModelBoundingBox func(boundingBox uintptr, model uintptr) var drawModel func(model uintptr, position uintptr, scale float32, tint uintptr) var drawModelEx func(model uintptr, position uintptr, rotationAxis uintptr, rotationAngle float32, scale uintptr, tint uintptr) var drawModelWires func(model uintptr, position uintptr, scale float32, tint uintptr) var drawModelWiresEx func(model uintptr, position uintptr, rotationAxis uintptr, rotationAngle float32, scale uintptr, tint uintptr) var drawBoundingBox func(box uintptr, col uintptr) var drawBillboard func(camera uintptr, texture uintptr, position uintptr, size float32, tint uintptr) var drawBillboardRec func(camera uintptr, texture uintptr, source uintptr, position uintptr, size uintptr, tint uintptr) var drawBillboardPro func(camera uintptr, texture uintptr, source uintptr, position uintptr, up uintptr, size uintptr, origin uintptr, rotation float32, tint uintptr) var uploadMesh func(mesh *Mesh, dynamic bool) var updateMeshBuffer func(mesh uintptr, index int32, data []byte, dataSize int32, offset int32) var unloadMesh func(mesh uintptr) var drawMesh func(mesh uintptr, material uintptr, transform uintptr) var drawMeshInstanced func(mesh uintptr, material uintptr, transforms []Matrix, instances int32) var exportMesh func(mesh uintptr, fileName string) bool var getMeshBoundingBox func(boundingBox uintptr, mesh uintptr) var genMeshTangents func(mesh *Mesh) var genMeshPoly func(mesh uintptr, sides int32, radius float32) var genMeshPlane func(mesh uintptr, width float32, length float32, resX int32, resZ int32) var genMeshCube func(mesh uintptr, width float32, height float32, length float32) var genMeshSphere func(mesh uintptr, radius float32, rings int32, slices int32) var genMeshHemiSphere func(mesh uintptr, radius float32, rings int32, slices int32) var genMeshCylinder func(mesh uintptr, radius float32, height float32, slices int32) var genMeshCone func(mesh uintptr, radius float32, height float32, slices int32) var genMeshTorus func(mesh uintptr, radius float32, size float32, radSeg int32, sides int32) var genMeshKnot func(mesh uintptr, radius float32, size float32, radSeg int32, sides int32) var genMeshHeightmap func(mesh uintptr, heightmap uintptr, size uintptr) var genMeshCubicmap func(mesh uintptr, cubicmap uintptr, cubeSize uintptr) var loadMaterials func(fileName string, materialCount *int32) *Material var loadMaterialDefault func(material uintptr) var isMaterialReady func(material uintptr) bool var unloadMaterial func(material uintptr) var setMaterialTexture func(material *Material, mapType int32, texture uintptr) var setModelMeshMaterial func(model *Model, meshId int32, materialId int32) var loadModelAnimations func(fileName string, animCount *int32) *ModelAnimation var updateModelAnimation func(model uintptr, anim uintptr, frame int32) var unloadModelAnimation func(anim uintptr) var unloadModelAnimations func(animations *ModelAnimation, animCount int32) var isModelAnimationValid func(model uintptr, anim uintptr) bool var checkCollisionSpheres func(center1 uintptr, radius1 float32, center2 uintptr, radius2 float32) bool var checkCollisionBoxes func(box1 uintptr, box2 uintptr) bool var checkCollisionBoxSphere func(box uintptr, center uintptr, radius float32) bool var getRayCollisionSphere func(rayCollision uintptr, ray uintptr, center uintptr, radius float32) var getRayCollisionBox func(rayCollision uintptr, ray uintptr, box uintptr) var getRayCollisionMesh func(rayCollision uintptr, ray uintptr, mesh uintptr, transform uintptr) var getRayCollisionTriangle func(rayCollision uintptr, ray uintptr, p1 uintptr, p2 uintptr, p3 uintptr) var getRayCollisionQuad func(rayCollision uintptr, ray uintptr, p1 uintptr, p2 uintptr, p3 uintptr, p4 uintptr) var initAudioDevice func() var closeAudioDevice func() var isAudioDeviceReady func() bool var setMasterVolume func(volume float32) var getMasterVolume func() float32 var loadWave func(wave uintptr, fileName string) var loadWaveFromMemory func(wave uintptr, fileType string, fileData []byte, dataSize int32) var isWaveReady func(wave uintptr) bool var loadSound func(sound uintptr, fileName string) var loadSoundFromWave func(sound uintptr, wave uintptr) var loadSoundAlias func(sound uintptr, source uintptr) var isSoundReady func(sound uintptr) bool var updateSound func(sound uintptr, data []byte, sampleCount int32) var unloadWave func(wave uintptr) var unloadSound func(sound uintptr) var unloadSoundAlias func(alias uintptr) var exportWave func(wave uintptr, fileName string) bool var playSound func(sound uintptr) var stopSound func(sound uintptr) var pauseSound func(sound uintptr) var resumeSound func(sound uintptr) var isSoundPlaying func(sound uintptr) bool var setSoundVolume func(sound uintptr, volume float32) var setSoundPitch func(sound uintptr, pitch float32) var setSoundPan func(sound uintptr, pan float32) var waveCopy func(copy uintptr, wave uintptr) var waveCrop func(wave *Wave, initSample int32, finalSample int32) var waveFormat func(wave *Wave, sampleRate int32, sampleSize int32, channels int32) var loadWaveSamples func(wave uintptr) *float32 var unloadWaveSamples func(samples []float32) var loadMusicStream func(music uintptr, fileName string) var loadMusicStreamFromMemory func(sound uintptr, fileType string, data []byte, dataSize int32) var isMusicReady func(music uintptr) bool var unloadMusicStream func(music uintptr) var playMusicStream func(music uintptr) var isMusicStreamPlaying func(music uintptr) bool var updateMusicStream func(music uintptr) var stopMusicStream func(music uintptr) var pauseMusicStream func(music uintptr) var resumeMusicStream func(music uintptr) var seekMusicStream func(music uintptr, position float32) var setMusicVolume func(music uintptr, volume float32) var setMusicPitch func(music uintptr, pitch float32) var setMusicPan func(music uintptr, pan float32) var getMusicTimeLength func(music uintptr) float32 var getMusicTimePlayed func(music uintptr) float32 var loadAudioStream func(audioStream uintptr, sampleRate uint32, sampleSize uint32, channels uint32) var isAudioStreamReady func(stream uintptr) bool var unloadAudioStream func(stream uintptr) var updateAudioStream func(stream uintptr, data []float32, frameCount int32) var isAudioStreamProcessed func(stream uintptr) bool var playAudioStream func(stream uintptr) var pauseAudioStream func(stream uintptr) var resumeAudioStream func(stream uintptr) var isAudioStreamPlaying func(stream uintptr) bool var stopAudioStream func(stream uintptr) var setAudioStreamVolume func(stream uintptr, volume float32) var setAudioStreamPitch func(stream uintptr, pitch float32) var setAudioStreamPan func(stream uintptr, pan float32) var setAudioStreamBufferSizeDefault func(size int32) var setAudioStreamCallback func(stream uintptr, callback uintptr) var attachAudioStreamProcessor func(stream uintptr, processor uintptr) var detachAudioStreamProcessor func(stream uintptr, processor uintptr) var attachAudioMixedProcessor func(processor uintptr) var detachAudioMixedProcessor func(processor uintptr) func init() { raylibDll = loadLibrary() initRlglPurego() purego.RegisterLibFunc(&initWindow, raylibDll, "InitWindow") purego.RegisterLibFunc(&closeWindow, raylibDll, "CloseWindow") purego.RegisterLibFunc(&windowShouldClose, raylibDll, "WindowShouldClose") purego.RegisterLibFunc(&isWindowReady, raylibDll, "IsWindowReady") purego.RegisterLibFunc(&isWindowFullscreen, raylibDll, "IsWindowFullscreen") purego.RegisterLibFunc(&isWindowHidden, raylibDll, "IsWindowHidden") purego.RegisterLibFunc(&isWindowMinimized, raylibDll, "IsWindowMinimized") purego.RegisterLibFunc(&isWindowMaximized, raylibDll, "IsWindowMaximized") purego.RegisterLibFunc(&isWindowFocused, raylibDll, "IsWindowFocused") purego.RegisterLibFunc(&isWindowResized, raylibDll, "IsWindowResized") purego.RegisterLibFunc(&isWindowState, raylibDll, "IsWindowState") purego.RegisterLibFunc(&setWindowState, raylibDll, "SetWindowState") purego.RegisterLibFunc(&clearWindowState, raylibDll, "ClearWindowState") purego.RegisterLibFunc(&toggleFullscreen, raylibDll, "ToggleFullscreen") purego.RegisterLibFunc(&toggleBorderlessWindowed, raylibDll, "ToggleBorderlessWindowed") purego.RegisterLibFunc(&maximizeWindow, raylibDll, "MaximizeWindow") purego.RegisterLibFunc(&minimizeWindow, raylibDll, "MinimizeWindow") purego.RegisterLibFunc(&restoreWindow, raylibDll, "RestoreWindow") purego.RegisterLibFunc(&setWindowIcon, raylibDll, "SetWindowIcon") purego.RegisterLibFunc(&setWindowIcons, raylibDll, "SetWindowIcons") purego.RegisterLibFunc(&setWindowTitle, raylibDll, "SetWindowTitle") purego.RegisterLibFunc(&setWindowPosition, raylibDll, "SetWindowPosition") purego.RegisterLibFunc(&setWindowMonitor, raylibDll, "SetWindowMonitor") purego.RegisterLibFunc(&setWindowMinSize, raylibDll, "SetWindowMinSize") purego.RegisterLibFunc(&setWindowMaxSize, raylibDll, "SetWindowMaxSize") purego.RegisterLibFunc(&setWindowSize, raylibDll, "SetWindowSize") purego.RegisterLibFunc(&setWindowOpacity, raylibDll, "SetWindowOpacity") purego.RegisterLibFunc(&setWindowFocused, raylibDll, "SetWindowFocused") purego.RegisterLibFunc(&getWindowHandle, raylibDll, "GetWindowHandle") purego.RegisterLibFunc(&getScreenWidth, raylibDll, "GetScreenWidth") purego.RegisterLibFunc(&getScreenHeight, raylibDll, "GetScreenHeight") purego.RegisterLibFunc(&getRenderWidth, raylibDll, "GetRenderWidth") purego.RegisterLibFunc(&getRenderHeight, raylibDll, "GetRenderHeight") purego.RegisterLibFunc(&getMonitorCount, raylibDll, "GetMonitorCount") purego.RegisterLibFunc(&getCurrentMonitor, raylibDll, "GetCurrentMonitor") purego.RegisterLibFunc(&getMonitorPosition, raylibDll, "GetMonitorPosition") purego.RegisterLibFunc(&getMonitorWidth, raylibDll, "GetMonitorWidth") purego.RegisterLibFunc(&getMonitorHeight, raylibDll, "GetMonitorHeight") purego.RegisterLibFunc(&getMonitorPhysicalWidth, raylibDll, "GetMonitorPhysicalWidth") purego.RegisterLibFunc(&getMonitorPhysicalHeight, raylibDll, "GetMonitorPhysicalHeight") purego.RegisterLibFunc(&getMonitorRefreshRate, raylibDll, "GetMonitorRefreshRate") purego.RegisterLibFunc(&getWindowPosition, raylibDll, "GetWindowPosition") purego.RegisterLibFunc(&getWindowScaleDPI, raylibDll, "GetWindowScaleDPI") purego.RegisterLibFunc(&getMonitorName, raylibDll, "GetMonitorName") purego.RegisterLibFunc(&setClipboardText, raylibDll, "SetClipboardText") purego.RegisterLibFunc(&getClipboardText, raylibDll, "GetClipboardText") purego.RegisterLibFunc(&enableEventWaiting, raylibDll, "EnableEventWaiting") purego.RegisterLibFunc(&disableEventWaiting, raylibDll, "DisableEventWaiting") purego.RegisterLibFunc(&showCursor, raylibDll, "ShowCursor") purego.RegisterLibFunc(&hideCursor, raylibDll, "HideCursor") purego.RegisterLibFunc(&isCursorHidden, raylibDll, "IsCursorHidden") purego.RegisterLibFunc(&enableCursor, raylibDll, "EnableCursor") purego.RegisterLibFunc(&disableCursor, raylibDll, "DisableCursor") purego.RegisterLibFunc(&isCursorOnScreen, raylibDll, "IsCursorOnScreen") purego.RegisterLibFunc(&clearBackground, raylibDll, "ClearBackground") purego.RegisterLibFunc(&beginDrawing, raylibDll, "BeginDrawing") purego.RegisterLibFunc(&endDrawing, raylibDll, "EndDrawing") purego.RegisterLibFunc(&beginMode2D, raylibDll, "BeginMode2D") purego.RegisterLibFunc(&endMode2D, raylibDll, "EndMode2D") purego.RegisterLibFunc(&beginMode3D, raylibDll, "BeginMode3D") purego.RegisterLibFunc(&endMode3D, raylibDll, "EndMode3D") purego.RegisterLibFunc(&beginTextureMode, raylibDll, "BeginTextureMode") purego.RegisterLibFunc(&endTextureMode, raylibDll, "EndTextureMode") purego.RegisterLibFunc(&beginShaderMode, raylibDll, "BeginShaderMode") purego.RegisterLibFunc(&endShaderMode, raylibDll, "EndShaderMode") purego.RegisterLibFunc(&beginBlendMode, raylibDll, "BeginBlendMode") purego.RegisterLibFunc(&endBlendMode, raylibDll, "EndBlendMode") purego.RegisterLibFunc(&beginScissorMode, raylibDll, "BeginScissorMode") purego.RegisterLibFunc(&endScissorMode, raylibDll, "EndScissorMode") purego.RegisterLibFunc(&beginVrStereoMode, raylibDll, "BeginVrStereoMode") purego.RegisterLibFunc(&endVrStereoMode, raylibDll, "EndVrStereoMode") purego.RegisterLibFunc(&loadVrStereoConfig, raylibDll, "LoadVrStereoConfig") purego.RegisterLibFunc(&unloadVrStereoConfig, raylibDll, "UnloadVrStereoConfig") purego.RegisterLibFunc(&loadShader, raylibDll, "LoadShader") purego.RegisterLibFunc(&loadShaderFromMemory, raylibDll, "LoadShaderFromMemory") purego.RegisterLibFunc(&isShaderReady, raylibDll, "IsShaderReady") purego.RegisterLibFunc(&getShaderLocation, raylibDll, "GetShaderLocation") purego.RegisterLibFunc(&getShaderLocationAttrib, raylibDll, "GetShaderLocationAttrib") purego.RegisterLibFunc(&setShaderValue, raylibDll, "SetShaderValue") purego.RegisterLibFunc(&setShaderValueV, raylibDll, "SetShaderValueV") purego.RegisterLibFunc(&setShaderValueMatrix, raylibDll, "SetShaderValueMatrix") purego.RegisterLibFunc(&setShaderValueTexture, raylibDll, "SetShaderValueTexture") purego.RegisterLibFunc(&unloadShader, raylibDll, "UnloadShader") purego.RegisterLibFunc(&getMouseRay, raylibDll, "GetMouseRay") purego.RegisterLibFunc(&getCameraMatrix, raylibDll, "GetCameraMatrix") purego.RegisterLibFunc(&getCameraMatrix2D, raylibDll, "GetCameraMatrix2D") purego.RegisterLibFunc(&getWorldToScreen, raylibDll, "GetWorldToScreen") purego.RegisterLibFunc(&getScreenToWorld2D, raylibDll, "GetScreenToWorld2D") purego.RegisterLibFunc(&getWorldToScreenEx, raylibDll, "GetWorldToScreenEx") purego.RegisterLibFunc(&getWorldToScreen2D, raylibDll, "GetWorldToScreen2D") purego.RegisterLibFunc(&setTargetFPS, raylibDll, "SetTargetFPS") purego.RegisterLibFunc(&getFrameTime, raylibDll, "GetFrameTime") purego.RegisterLibFunc(&getTime, raylibDll, "GetTime") purego.RegisterLibFunc(&getFPS, raylibDll, "GetFPS") purego.RegisterLibFunc(&swapScreenBuffer, raylibDll, "SwapScreenBuffer") purego.RegisterLibFunc(&pollInputEvents, raylibDll, "PollInputEvents") purego.RegisterLibFunc(&waitTime, raylibDll, "WaitTime") purego.RegisterLibFunc(&setRandomSeed, raylibDll, "SetRandomSeed") purego.RegisterLibFunc(&getRandomValue, raylibDll, "GetRandomValue") purego.RegisterLibFunc(&loadRandomSequence, raylibDll, "LoadRandomSequence") purego.RegisterLibFunc(&unloadRandomSequence, raylibDll, "UnloadRandomSequence") purego.RegisterLibFunc(&takeScreenshot, raylibDll, "TakeScreenshot") purego.RegisterLibFunc(&setConfigFlags, raylibDll, "SetConfigFlags") purego.RegisterLibFunc(&openURL, raylibDll, "OpenURL") purego.RegisterLibFunc(&traceLog, raylibDll, "TraceLog") purego.RegisterLibFunc(&setTraceLogLevel, raylibDll, "SetTraceLogLevel") purego.RegisterLibFunc(&memAlloc, raylibDll, "MemAlloc") purego.RegisterLibFunc(&memRealloc, raylibDll, "MemRealloc") purego.RegisterLibFunc(&memFree, raylibDll, "MemFree") purego.RegisterLibFunc(&setTraceLogCallback, raylibDll, "SetTraceLogCallback") purego.RegisterLibFunc(&isFileDropped, raylibDll, "IsFileDropped") purego.RegisterLibFunc(&loadDroppedFiles, raylibDll, "LoadDroppedFiles") purego.RegisterLibFunc(&unloadDroppedFiles, raylibDll, "UnloadDroppedFiles") purego.RegisterLibFunc(&loadAutomationEventList, raylibDll, "LoadAutomationEventList") purego.RegisterLibFunc(&unloadAutomationEventList, raylibDll, "UnloadAutomationEventList") purego.RegisterLibFunc(&exportAutomationEventList, raylibDll, "ExportAutomationEventList") purego.RegisterLibFunc(&setAutomationEventList, raylibDll, "SetAutomationEventList") purego.RegisterLibFunc(&setAutomationEventBaseFrame, raylibDll, "SetAutomationEventBaseFrame") purego.RegisterLibFunc(&startAutomationEventRecording, raylibDll, "StartAutomationEventRecording") purego.RegisterLibFunc(&stopAutomationEventRecording, raylibDll, "StopAutomationEventRecording") purego.RegisterLibFunc(&playAutomationEvent, raylibDll, "PlayAutomationEvent") purego.RegisterLibFunc(&isKeyPressed, raylibDll, "IsKeyPressed") purego.RegisterLibFunc(&isKeyPressedRepeat, raylibDll, "IsKeyPressedRepeat") purego.RegisterLibFunc(&isKeyDown, raylibDll, "IsKeyDown") purego.RegisterLibFunc(&isKeyReleased, raylibDll, "IsKeyReleased") purego.RegisterLibFunc(&isKeyUp, raylibDll, "IsKeyUp") purego.RegisterLibFunc(&getKeyPressed, raylibDll, "GetKeyPressed") purego.RegisterLibFunc(&getCharPressed, raylibDll, "GetCharPressed") purego.RegisterLibFunc(&setExitKey, raylibDll, "SetExitKey") purego.RegisterLibFunc(&isGamepadAvailable, raylibDll, "IsGamepadAvailable") purego.RegisterLibFunc(&getGamepadName, raylibDll, "GetGamepadName") purego.RegisterLibFunc(&isGamepadButtonPressed, raylibDll, "IsGamepadButtonPressed") purego.RegisterLibFunc(&isGamepadButtonDown, raylibDll, "IsGamepadButtonDown") purego.RegisterLibFunc(&isGamepadButtonReleased, raylibDll, "IsGamepadButtonReleased") purego.RegisterLibFunc(&isGamepadButtonUp, raylibDll, "IsGamepadButtonUp") purego.RegisterLibFunc(&getGamepadButtonPressed, raylibDll, "GetGamepadButtonPressed") purego.RegisterLibFunc(&getGamepadAxisCount, raylibDll, "GetGamepadAxisCount") purego.RegisterLibFunc(&getGamepadAxisMovement, raylibDll, "GetGamepadAxisMovement") purego.RegisterLibFunc(&setGamepadMappings, raylibDll, "SetGamepadMappings") purego.RegisterLibFunc(&isMouseButtonPressed, raylibDll, "IsMouseButtonPressed") purego.RegisterLibFunc(&isMouseButtonDown, raylibDll, "IsMouseButtonDown") purego.RegisterLibFunc(&isMouseButtonReleased, raylibDll, "IsMouseButtonReleased") purego.RegisterLibFunc(&isMouseButtonUp, raylibDll, "IsMouseButtonUp") purego.RegisterLibFunc(&getMouseX, raylibDll, "GetMouseX") purego.RegisterLibFunc(&getMouseY, raylibDll, "GetMouseY") purego.RegisterLibFunc(&getMousePosition, raylibDll, "GetMousePosition") purego.RegisterLibFunc(&getMouseDelta, raylibDll, "GetMouseDelta") purego.RegisterLibFunc(&setMousePosition, raylibDll, "SetMousePosition") purego.RegisterLibFunc(&setMouseOffset, raylibDll, "SetMouseOffset") purego.RegisterLibFunc(&setMouseScale, raylibDll, "SetMouseScale") purego.RegisterLibFunc(&getMouseWheelMove, raylibDll, "GetMouseWheelMove") purego.RegisterLibFunc(&getMouseWheelMoveV, raylibDll, "GetMouseWheelMoveV") purego.RegisterLibFunc(&setMouseCursor, raylibDll, "SetMouseCursor") purego.RegisterLibFunc(&getTouchX, raylibDll, "GetTouchX") purego.RegisterLibFunc(&getTouchY, raylibDll, "GetTouchY") purego.RegisterLibFunc(&getTouchPosition, raylibDll, "GetTouchPosition") purego.RegisterLibFunc(&getTouchPointId, raylibDll, "GetTouchPointId") purego.RegisterLibFunc(&getTouchPointCount, raylibDll, "GetTouchPointCount") purego.RegisterLibFunc(&setGesturesEnabled, raylibDll, "SetGesturesEnabled") purego.RegisterLibFunc(&isGestureDetected, raylibDll, "IsGestureDetected") purego.RegisterLibFunc(&getGestureDetected, raylibDll, "GetGestureDetected") purego.RegisterLibFunc(&getGestureHoldDuration, raylibDll, "GetGestureHoldDuration") purego.RegisterLibFunc(&getGestureDragVector, raylibDll, "GetGestureDragVector") purego.RegisterLibFunc(&getGestureDragAngle, raylibDll, "GetGestureDragAngle") purego.RegisterLibFunc(&getGesturePinchVector, raylibDll, "GetGesturePinchVector") purego.RegisterLibFunc(&getGesturePinchAngle, raylibDll, "GetGesturePinchAngle") purego.RegisterLibFunc(&setShapesTexture, raylibDll, "SetShapesTexture") purego.RegisterLibFunc(&drawPixel, raylibDll, "DrawPixel") purego.RegisterLibFunc(&drawPixelV, raylibDll, "DrawPixelV") purego.RegisterLibFunc(&drawLine, raylibDll, "DrawLine") purego.RegisterLibFunc(&drawLineV, raylibDll, "DrawLineV") purego.RegisterLibFunc(&drawLineEx, raylibDll, "DrawLineEx") purego.RegisterLibFunc(&drawLineStrip, raylibDll, "DrawLineStrip") purego.RegisterLibFunc(&drawLineBezier, raylibDll, "DrawLineBezier") purego.RegisterLibFunc(&drawCircle, raylibDll, "DrawCircle") purego.RegisterLibFunc(&drawCircleSector, raylibDll, "DrawCircleSector") purego.RegisterLibFunc(&drawCircleSectorLines, raylibDll, "DrawCircleSectorLines") purego.RegisterLibFunc(&drawCircleGradient, raylibDll, "DrawCircleGradient") purego.RegisterLibFunc(&drawCircleV, raylibDll, "DrawCircleV") purego.RegisterLibFunc(&drawCircleLines, raylibDll, "DrawCircleLines") purego.RegisterLibFunc(&drawCircleLinesV, raylibDll, "DrawCircleLinesV") purego.RegisterLibFunc(&drawEllipse, raylibDll, "DrawEllipse") purego.RegisterLibFunc(&drawEllipseLines, raylibDll, "DrawEllipseLines") purego.RegisterLibFunc(&drawRing, raylibDll, "DrawRing") purego.RegisterLibFunc(&drawRingLines, raylibDll, "DrawRingLines") purego.RegisterLibFunc(&drawRectangle, raylibDll, "DrawRectangle") purego.RegisterLibFunc(&drawRectangleV, raylibDll, "DrawRectangleV") purego.RegisterLibFunc(&drawRectangleRec, raylibDll, "DrawRectangleRec") purego.RegisterLibFunc(&drawRectanglePro, raylibDll, "DrawRectanglePro") purego.RegisterLibFunc(&drawRectangleGradientV, raylibDll, "DrawRectangleGradientV") purego.RegisterLibFunc(&drawRectangleGradientH, raylibDll, "DrawRectangleGradientH") purego.RegisterLibFunc(&drawRectangleGradientEx, raylibDll, "DrawRectangleGradientEx") purego.RegisterLibFunc(&drawRectangleLines, raylibDll, "DrawRectangleLines") purego.RegisterLibFunc(&drawRectangleLinesEx, raylibDll, "DrawRectangleLinesEx") purego.RegisterLibFunc(&drawRectangleRounded, raylibDll, "DrawRectangleRounded") purego.RegisterLibFunc(&drawRectangleRoundedLines, raylibDll, "DrawRectangleRoundedLines") purego.RegisterLibFunc(&drawTriangle, raylibDll, "DrawTriangle") purego.RegisterLibFunc(&drawTriangleLines, raylibDll, "DrawTriangleLines") purego.RegisterLibFunc(&drawTriangleFan, raylibDll, "DrawTriangleFan") purego.RegisterLibFunc(&drawTriangleStrip, raylibDll, "DrawTriangleStrip") purego.RegisterLibFunc(&drawPoly, raylibDll, "DrawPoly") purego.RegisterLibFunc(&drawPolyLines, raylibDll, "DrawPolyLines") purego.RegisterLibFunc(&drawPolyLinesEx, raylibDll, "DrawPolyLinesEx") purego.RegisterLibFunc(&drawSplineLinear, raylibDll, "DrawSplineLinear") purego.RegisterLibFunc(&drawSplineBasis, raylibDll, "DrawSplineBasis") purego.RegisterLibFunc(&drawSplineCatmullRom, raylibDll, "DrawSplineCatmullRom") purego.RegisterLibFunc(&drawSplineBezierQuadratic, raylibDll, "DrawSplineBezierQuadratic") purego.RegisterLibFunc(&drawSplineBezierCubic, raylibDll, "DrawSplineBezierCubic") purego.RegisterLibFunc(&drawSplineSegmentLinear, raylibDll, "DrawSplineSegmentLinear") purego.RegisterLibFunc(&drawSplineSegmentBasis, raylibDll, "DrawSplineSegmentBasis") purego.RegisterLibFunc(&drawSplineSegmentCatmullRom, raylibDll, "DrawSplineSegmentCatmullRom") purego.RegisterLibFunc(&drawSplineSegmentBezierQuadratic, raylibDll, "DrawSplineSegmentBezierQuadratic") purego.RegisterLibFunc(&drawSplineSegmentBezierCubic, raylibDll, "DrawSplineSegmentBezierCubic") purego.RegisterLibFunc(&getSplinePointLinear, raylibDll, "GetSplinePointLinear") purego.RegisterLibFunc(&getSplinePointBasis, raylibDll, "GetSplinePointBasis") purego.RegisterLibFunc(&getSplinePointCatmullRom, raylibDll, "GetSplinePointCatmullRom") purego.RegisterLibFunc(&getSplinePointBezierQuad, raylibDll, "GetSplinePointBezierQuad") purego.RegisterLibFunc(&getSplinePointBezierCubic, raylibDll, "GetSplinePointBezierCubic") purego.RegisterLibFunc(&checkCollisionRecs, raylibDll, "CheckCollisionRecs") purego.RegisterLibFunc(&checkCollisionCircles, raylibDll, "CheckCollisionCircles") purego.RegisterLibFunc(&checkCollisionCircleRec, raylibDll, "CheckCollisionCircleRec") purego.RegisterLibFunc(&checkCollisionPointRec, raylibDll, "CheckCollisionPointRec") purego.RegisterLibFunc(&checkCollisionPointCircle, raylibDll, "CheckCollisionPointCircle") purego.RegisterLibFunc(&checkCollisionPointTriangle, raylibDll, "CheckCollisionPointTriangle") purego.RegisterLibFunc(&checkCollisionPointPoly, raylibDll, "CheckCollisionPointPoly") purego.RegisterLibFunc(&checkCollisionLines, raylibDll, "CheckCollisionLines") purego.RegisterLibFunc(&checkCollisionPointLine, raylibDll, "CheckCollisionPointLine") purego.RegisterLibFunc(&getCollisionRec, raylibDll, "GetCollisionRec") purego.RegisterLibFunc(&loadImage, raylibDll, "LoadImage") purego.RegisterLibFunc(&loadImageRaw, raylibDll, "LoadImageRaw") purego.RegisterLibFunc(&loadImageSvg, raylibDll, "LoadImageSvg") purego.RegisterLibFunc(&loadImageAnim, raylibDll, "LoadImageAnim") purego.RegisterLibFunc(&loadImageFromMemory, raylibDll, "LoadImageFromMemory") purego.RegisterLibFunc(&loadImageFromTexture, raylibDll, "LoadImageFromTexture") purego.RegisterLibFunc(&loadImageFromScreen, raylibDll, "LoadImageFromScreen") purego.RegisterLibFunc(&isImageReady, raylibDll, "IsImageReady") purego.RegisterLibFunc(&unloadImage, raylibDll, "UnloadImage") purego.RegisterLibFunc(&exportImage, raylibDll, "ExportImage") purego.RegisterLibFunc(&exportImageToMemory, raylibDll, "ExportImageToMemory") purego.RegisterLibFunc(&genImageColor, raylibDll, "GenImageColor") purego.RegisterLibFunc(&genImageGradientLinear, raylibDll, "GenImageGradientLinear") purego.RegisterLibFunc(&genImageGradientRadial, raylibDll, "GenImageGradientRadial") purego.RegisterLibFunc(&genImageGradientSquare, raylibDll, "GenImageGradientSquare") purego.RegisterLibFunc(&genImageChecked, raylibDll, "GenImageChecked") purego.RegisterLibFunc(&genImageWhiteNoise, raylibDll, "GenImageWhiteNoise") purego.RegisterLibFunc(&genImagePerlinNoise, raylibDll, "GenImagePerlinNoise") purego.RegisterLibFunc(&genImageCellular, raylibDll, "GenImageCellular") purego.RegisterLibFunc(&genImageText, raylibDll, "GenImageText") purego.RegisterLibFunc(&imageCopy, raylibDll, "ImageCopy") purego.RegisterLibFunc(&imageFromImage, raylibDll, "ImageFromImage") purego.RegisterLibFunc(&imageText, raylibDll, "ImageText") purego.RegisterLibFunc(&imageTextEx, raylibDll, "ImageTextEx") purego.RegisterLibFunc(&imageFormat, raylibDll, "ImageFormat") purego.RegisterLibFunc(&imageToPOT, raylibDll, "ImageToPOT") purego.RegisterLibFunc(&imageCrop, raylibDll, "ImageCrop") purego.RegisterLibFunc(&imageAlphaCrop, raylibDll, "ImageAlphaCrop") purego.RegisterLibFunc(&imageAlphaClear, raylibDll, "ImageAlphaClear") purego.RegisterLibFunc(&imageAlphaMask, raylibDll, "ImageAlphaMask") purego.RegisterLibFunc(&imageAlphaPremultiply, raylibDll, "ImageAlphaPremultiply") purego.RegisterLibFunc(&imageBlurGaussian, raylibDll, "ImageBlurGaussian") purego.RegisterLibFunc(&imageResize, raylibDll, "ImageResize") purego.RegisterLibFunc(&imageResizeNN, raylibDll, "ImageResizeNN") purego.RegisterLibFunc(&imageResizeCanvas, raylibDll, "ImageResizeCanvas") purego.RegisterLibFunc(&imageMipmaps, raylibDll, "ImageMipmaps") purego.RegisterLibFunc(&imageDither, raylibDll, "ImageDither") purego.RegisterLibFunc(&imageFlipVertical, raylibDll, "ImageFlipVertical") purego.RegisterLibFunc(&imageFlipHorizontal, raylibDll, "ImageFlipHorizontal") purego.RegisterLibFunc(&imageRotate, raylibDll, "ImageRotate") purego.RegisterLibFunc(&imageRotateCW, raylibDll, "ImageRotateCW") purego.RegisterLibFunc(&imageRotateCCW, raylibDll, "ImageRotateCCW") purego.RegisterLibFunc(&imageColorTint, raylibDll, "ImageColorTint") purego.RegisterLibFunc(&imageColorInvert, raylibDll, "ImageColorInvert") purego.RegisterLibFunc(&imageColorGrayscale, raylibDll, "ImageColorGrayscale") purego.RegisterLibFunc(&imageColorContrast, raylibDll, "ImageColorContrast") purego.RegisterLibFunc(&imageColorBrightness, raylibDll, "ImageColorBrightness") purego.RegisterLibFunc(&imageColorReplace, raylibDll, "ImageColorReplace") purego.RegisterLibFunc(&loadImageColors, raylibDll, "LoadImageColors") purego.RegisterLibFunc(&loadImagePalette, raylibDll, "LoadImagePalette") purego.RegisterLibFunc(&unloadImageColors, raylibDll, "UnloadImageColors") purego.RegisterLibFunc(&unloadImagePalette, raylibDll, "UnloadImagePalette") purego.RegisterLibFunc(&getImageAlphaBorder, raylibDll, "GetImageAlphaBorder") purego.RegisterLibFunc(&getImageColor, raylibDll, "GetImageColor") purego.RegisterLibFunc(&imageClearBackground, raylibDll, "ImageClearBackground") purego.RegisterLibFunc(&imageDrawPixel, raylibDll, "ImageDrawPixel") purego.RegisterLibFunc(&imageDrawPixelV, raylibDll, "ImageDrawPixelV") purego.RegisterLibFunc(&imageDrawLine, raylibDll, "ImageDrawLine") purego.RegisterLibFunc(&imageDrawLineV, raylibDll, "ImageDrawLineV") purego.RegisterLibFunc(&imageDrawCircle, raylibDll, "ImageDrawCircle") purego.RegisterLibFunc(&imageDrawCircleV, raylibDll, "ImageDrawCircleV") purego.RegisterLibFunc(&imageDrawCircleLines, raylibDll, "ImageDrawCircleLines") purego.RegisterLibFunc(&imageDrawCircleLinesV, raylibDll, "ImageDrawCircleLinesV") purego.RegisterLibFunc(&imageDrawRectangle, raylibDll, "ImageDrawRectangle") purego.RegisterLibFunc(&imageDrawRectangleV, raylibDll, "ImageDrawRectangleV") purego.RegisterLibFunc(&imageDrawRectangleRec, raylibDll, "ImageDrawRectangleRec") purego.RegisterLibFunc(&imageDrawRectangleLines, raylibDll, "ImageDrawRectangleLines") purego.RegisterLibFunc(&imageDraw, raylibDll, "ImageDraw") purego.RegisterLibFunc(&imageDrawText, raylibDll, "ImageDrawText") purego.RegisterLibFunc(&imageDrawTextEx, raylibDll, "ImageDrawTextEx") purego.RegisterLibFunc(&loadTexture, raylibDll, "LoadTexture") purego.RegisterLibFunc(&loadTextureFromImage, raylibDll, "LoadTextureFromImage") purego.RegisterLibFunc(&loadTextureCubemap, raylibDll, "LoadTextureCubemap") purego.RegisterLibFunc(&loadRenderTexture, raylibDll, "LoadRenderTexture") purego.RegisterLibFunc(&isTextureReady, raylibDll, "IsTextureReady") purego.RegisterLibFunc(&unloadTexture, raylibDll, "UnloadTexture") purego.RegisterLibFunc(&isRenderTextureReady, raylibDll, "IsRenderTextureReady") purego.RegisterLibFunc(&unloadRenderTexture, raylibDll, "UnloadRenderTexture") purego.RegisterLibFunc(&updateTexture, raylibDll, "UpdateTexture") purego.RegisterLibFunc(&updateTextureRec, raylibDll, "UpdateTextureRec") purego.RegisterLibFunc(&genTextureMipmaps, raylibDll, "GenTextureMipmaps") purego.RegisterLibFunc(&setTextureFilter, raylibDll, "SetTextureFilter") purego.RegisterLibFunc(&setTextureWrap, raylibDll, "SetTextureWrap") purego.RegisterLibFunc(&drawTexture, raylibDll, "DrawTexture") purego.RegisterLibFunc(&drawTextureV, raylibDll, "DrawTextureV") purego.RegisterLibFunc(&drawTextureEx, raylibDll, "DrawTextureEx") purego.RegisterLibFunc(&drawTextureRec, raylibDll, "DrawTextureRec") purego.RegisterLibFunc(&drawTexturePro, raylibDll, "DrawTexturePro") purego.RegisterLibFunc(&drawTextureNPatch, raylibDll, "DrawTextureNPatch") purego.RegisterLibFunc(&fade, raylibDll, "Fade") purego.RegisterLibFunc(&colorToInt, raylibDll, "ColorToInt") purego.RegisterLibFunc(&colorNormalize, raylibDll, "ColorNormalize") purego.RegisterLibFunc(&colorFromNormalized, raylibDll, "ColorFromNormalized") purego.RegisterLibFunc(&colorToHSV, raylibDll, "ColorToHSV") purego.RegisterLibFunc(&colorFromHSV, raylibDll, "ColorFromHSV") purego.RegisterLibFunc(&colorTint, raylibDll, "ColorTint") purego.RegisterLibFunc(&colorBrightness, raylibDll, "ColorBrightness") purego.RegisterLibFunc(&colorContrast, raylibDll, "ColorContrast") purego.RegisterLibFunc(&colorAlpha, raylibDll, "ColorAlpha") purego.RegisterLibFunc(&colorAlphaBlend, raylibDll, "ColorAlphaBlend") purego.RegisterLibFunc(&getColor, raylibDll, "GetColor") purego.RegisterLibFunc(&getPixelColor, raylibDll, "GetPixelColor") purego.RegisterLibFunc(&setPixelColor, raylibDll, "SetPixelColor") purego.RegisterLibFunc(&getPixelDataSize, raylibDll, "GetPixelDataSize") purego.RegisterLibFunc(&getFontDefault, raylibDll, "GetFontDefault") purego.RegisterLibFunc(&loadFont, raylibDll, "LoadFont") purego.RegisterLibFunc(&loadFontEx, raylibDll, "LoadFontEx") purego.RegisterLibFunc(&loadFontFromImage, raylibDll, "LoadFontFromImage") purego.RegisterLibFunc(&loadFontFromMemory, raylibDll, "LoadFontFromMemory") purego.RegisterLibFunc(&isFontReady, raylibDll, "IsFontReady") purego.RegisterLibFunc(&loadFontData, raylibDll, "LoadFontData") purego.RegisterLibFunc(&genImageFontAtlas, raylibDll, "GenImageFontAtlas") purego.RegisterLibFunc(&unloadFontData, raylibDll, "UnloadFontData") purego.RegisterLibFunc(&unloadFont, raylibDll, "UnloadFont") purego.RegisterLibFunc(&drawFPS, raylibDll, "DrawFPS") purego.RegisterLibFunc(&drawText, raylibDll, "DrawText") purego.RegisterLibFunc(&drawTextEx, raylibDll, "DrawTextEx") purego.RegisterLibFunc(&drawTextPro, raylibDll, "DrawTextPro") purego.RegisterLibFunc(&drawTextCodepoint, raylibDll, "DrawTextCodepoint") purego.RegisterLibFunc(&drawTextCodepoints, raylibDll, "DrawTextCodepoints") purego.RegisterLibFunc(&setTextLineSpacing, raylibDll, "SetTextLineSpacing") purego.RegisterLibFunc(&measureText, raylibDll, "MeasureText") purego.RegisterLibFunc(&measureTextEx, raylibDll, "MeasureTextEx") purego.RegisterLibFunc(&getGlyphIndex, raylibDll, "GetGlyphIndex") purego.RegisterLibFunc(&getGlyphInfo, raylibDll, "GetGlyphInfo") purego.RegisterLibFunc(&getGlyphAtlasRec, raylibDll, "GetGlyphAtlasRec") purego.RegisterLibFunc(&drawLine3D, raylibDll, "DrawLine3D") purego.RegisterLibFunc(&drawPoint3D, raylibDll, "DrawPoint3D") purego.RegisterLibFunc(&drawCircle3D, raylibDll, "DrawCircle3D") purego.RegisterLibFunc(&drawTriangle3D, raylibDll, "DrawTriangle3D") purego.RegisterLibFunc(&drawTriangleStrip3D, raylibDll, "DrawTriangleStrip3D") purego.RegisterLibFunc(&drawCube, raylibDll, "DrawCube") purego.RegisterLibFunc(&drawCubeV, raylibDll, "DrawCubeV") purego.RegisterLibFunc(&drawCubeWires, raylibDll, "DrawCubeWires") purego.RegisterLibFunc(&drawCubeWiresV, raylibDll, "DrawCubeWiresV") purego.RegisterLibFunc(&drawSphere, raylibDll, "DrawSphere") purego.RegisterLibFunc(&drawSphereEx, raylibDll, "DrawSphereEx") purego.RegisterLibFunc(&drawSphereWires, raylibDll, "DrawSphereWires") purego.RegisterLibFunc(&drawCylinder, raylibDll, "DrawCylinder") purego.RegisterLibFunc(&drawCylinderEx, raylibDll, "DrawCylinderEx") purego.RegisterLibFunc(&drawCylinderWires, raylibDll, "DrawCylinderWires") purego.RegisterLibFunc(&drawCylinderWiresEx, raylibDll, "DrawCylinderWiresEx") purego.RegisterLibFunc(&drawCapsule, raylibDll, "DrawCapsule") purego.RegisterLibFunc(&drawCapsuleWires, raylibDll, "DrawCapsuleWires") purego.RegisterLibFunc(&drawPlane, raylibDll, "DrawPlane") purego.RegisterLibFunc(&drawRay, raylibDll, "DrawRay") purego.RegisterLibFunc(&drawGrid, raylibDll, "DrawGrid") purego.RegisterLibFunc(&loadModel, raylibDll, "LoadModel") purego.RegisterLibFunc(&loadModelFromMesh, raylibDll, "LoadModelFromMesh") purego.RegisterLibFunc(&isModelReady, raylibDll, "IsModelReady") purego.RegisterLibFunc(&unloadModel, raylibDll, "UnloadModel") purego.RegisterLibFunc(&getModelBoundingBox, raylibDll, "GetModelBoundingBox") purego.RegisterLibFunc(&drawModel, raylibDll, "DrawModel") purego.RegisterLibFunc(&drawModelEx, raylibDll, "DrawModelEx") purego.RegisterLibFunc(&drawModelWires, raylibDll, "DrawModelWires") purego.RegisterLibFunc(&drawModelWiresEx, raylibDll, "DrawModelWiresEx") purego.RegisterLibFunc(&drawBoundingBox, raylibDll, "DrawBoundingBox") purego.RegisterLibFunc(&drawBillboard, raylibDll, "DrawBillboard") purego.RegisterLibFunc(&drawBillboardRec, raylibDll, "DrawBillboardRec") purego.RegisterLibFunc(&drawBillboardPro, raylibDll, "DrawBillboardPro") purego.RegisterLibFunc(&uploadMesh, raylibDll, "UploadMesh") purego.RegisterLibFunc(&updateMeshBuffer, raylibDll, "UpdateMeshBuffer") purego.RegisterLibFunc(&unloadMesh, raylibDll, "UnloadMesh") purego.RegisterLibFunc(&drawMesh, raylibDll, "DrawMesh") purego.RegisterLibFunc(&drawMeshInstanced, raylibDll, "DrawMeshInstanced") purego.RegisterLibFunc(&exportMesh, raylibDll, "ExportMesh") purego.RegisterLibFunc(&getMeshBoundingBox, raylibDll, "GetMeshBoundingBox") purego.RegisterLibFunc(&genMeshTangents, raylibDll, "GenMeshTangents") purego.RegisterLibFunc(&genMeshPoly, raylibDll, "GenMeshPoly") purego.RegisterLibFunc(&genMeshPlane, raylibDll, "GenMeshPlane") purego.RegisterLibFunc(&genMeshCube, raylibDll, "GenMeshCube") purego.RegisterLibFunc(&genMeshSphere, raylibDll, "GenMeshSphere") purego.RegisterLibFunc(&genMeshHemiSphere, raylibDll, "GenMeshHemiSphere") purego.RegisterLibFunc(&genMeshCylinder, raylibDll, "GenMeshCylinder") purego.RegisterLibFunc(&genMeshCone, raylibDll, "GenMeshCone") purego.RegisterLibFunc(&genMeshTorus, raylibDll, "GenMeshTorus") purego.RegisterLibFunc(&genMeshKnot, raylibDll, "GenMeshKnot") purego.RegisterLibFunc(&genMeshHeightmap, raylibDll, "GenMeshHeightmap") purego.RegisterLibFunc(&genMeshCubicmap, raylibDll, "GenMeshCubicmap") purego.RegisterLibFunc(&loadMaterials, raylibDll, "LoadMaterials") purego.RegisterLibFunc(&loadMaterialDefault, raylibDll, "LoadMaterialDefault") purego.RegisterLibFunc(&isMaterialReady, raylibDll, "IsMaterialReady") purego.RegisterLibFunc(&unloadMaterial, raylibDll, "UnloadMaterial") purego.RegisterLibFunc(&setMaterialTexture, raylibDll, "SetMaterialTexture") purego.RegisterLibFunc(&setModelMeshMaterial, raylibDll, "SetModelMeshMaterial") purego.RegisterLibFunc(&loadModelAnimations, raylibDll, "LoadModelAnimations") purego.RegisterLibFunc(&updateModelAnimation, raylibDll, "UpdateModelAnimation") purego.RegisterLibFunc(&unloadModelAnimation, raylibDll, "UnloadModelAnimation") purego.RegisterLibFunc(&unloadModelAnimations, raylibDll, "UnloadModelAnimations") purego.RegisterLibFunc(&isModelAnimationValid, raylibDll, "IsModelAnimationValid") purego.RegisterLibFunc(&checkCollisionSpheres, raylibDll, "CheckCollisionSpheres") purego.RegisterLibFunc(&checkCollisionBoxes, raylibDll, "CheckCollisionBoxes") purego.RegisterLibFunc(&checkCollisionBoxSphere, raylibDll, "CheckCollisionBoxSphere") purego.RegisterLibFunc(&getRayCollisionSphere, raylibDll, "GetRayCollisionSphere") purego.RegisterLibFunc(&getRayCollisionBox, raylibDll, "GetRayCollisionBox") purego.RegisterLibFunc(&getRayCollisionMesh, raylibDll, "GetRayCollisionMesh") purego.RegisterLibFunc(&getRayCollisionTriangle, raylibDll, "GetRayCollisionTriangle") purego.RegisterLibFunc(&getRayCollisionQuad, raylibDll, "GetRayCollisionQuad") purego.RegisterLibFunc(&initAudioDevice, raylibDll, "InitAudioDevice") purego.RegisterLibFunc(&closeAudioDevice, raylibDll, "CloseAudioDevice") purego.RegisterLibFunc(&isAudioDeviceReady, raylibDll, "IsAudioDeviceReady") purego.RegisterLibFunc(&setMasterVolume, raylibDll, "SetMasterVolume") purego.RegisterLibFunc(&getMasterVolume, raylibDll, "GetMasterVolume") purego.RegisterLibFunc(&loadWave, raylibDll, "LoadWave") purego.RegisterLibFunc(&loadWaveFromMemory, raylibDll, "LoadWaveFromMemory") purego.RegisterLibFunc(&isWaveReady, raylibDll, "IsWaveReady") purego.RegisterLibFunc(&loadSound, raylibDll, "LoadSound") purego.RegisterLibFunc(&loadSoundFromWave, raylibDll, "LoadSoundFromWave") purego.RegisterLibFunc(&loadSoundAlias, raylibDll, "LoadSoundAlias") purego.RegisterLibFunc(&isSoundReady, raylibDll, "IsSoundReady") purego.RegisterLibFunc(&updateSound, raylibDll, "UpdateSound") purego.RegisterLibFunc(&unloadWave, raylibDll, "UnloadWave") purego.RegisterLibFunc(&unloadSound, raylibDll, "UnloadSound") purego.RegisterLibFunc(&unloadSoundAlias, raylibDll, "UnloadSoundAlias") purego.RegisterLibFunc(&exportWave, raylibDll, "ExportWave") purego.RegisterLibFunc(&playSound, raylibDll, "PlaySound") purego.RegisterLibFunc(&stopSound, raylibDll, "StopSound") purego.RegisterLibFunc(&pauseSound, raylibDll, "PauseSound") purego.RegisterLibFunc(&resumeSound, raylibDll, "ResumeSound") purego.RegisterLibFunc(&isSoundPlaying, raylibDll, "IsSoundPlaying") purego.RegisterLibFunc(&setSoundVolume, raylibDll, "SetSoundVolume") purego.RegisterLibFunc(&setSoundPitch, raylibDll, "SetSoundPitch") purego.RegisterLibFunc(&setSoundPan, raylibDll, "SetSoundPan") purego.RegisterLibFunc(&waveCopy, raylibDll, "WaveCopy") purego.RegisterLibFunc(&waveCrop, raylibDll, "WaveCrop") purego.RegisterLibFunc(&waveFormat, raylibDll, "WaveFormat") purego.RegisterLibFunc(&loadWaveSamples, raylibDll, "LoadWaveSamples") purego.RegisterLibFunc(&unloadWaveSamples, raylibDll, "UnloadWaveSamples") purego.RegisterLibFunc(&loadMusicStream, raylibDll, "LoadMusicStream") purego.RegisterLibFunc(&loadMusicStreamFromMemory, raylibDll, "LoadMusicStreamFromMemory") purego.RegisterLibFunc(&isMusicReady, raylibDll, "IsMusicReady") purego.RegisterLibFunc(&unloadMusicStream, raylibDll, "UnloadMusicStream") purego.RegisterLibFunc(&playMusicStream, raylibDll, "PlayMusicStream") purego.RegisterLibFunc(&isMusicStreamPlaying, raylibDll, "IsMusicStreamPlaying") purego.RegisterLibFunc(&updateMusicStream, raylibDll, "UpdateMusicStream") purego.RegisterLibFunc(&stopMusicStream, raylibDll, "StopMusicStream") purego.RegisterLibFunc(&pauseMusicStream, raylibDll, "PauseMusicStream") purego.RegisterLibFunc(&resumeMusicStream, raylibDll, "ResumeMusicStream") purego.RegisterLibFunc(&seekMusicStream, raylibDll, "SeekMusicStream") purego.RegisterLibFunc(&setMusicVolume, raylibDll, "SetMusicVolume") purego.RegisterLibFunc(&setMusicPitch, raylibDll, "SetMusicPitch") purego.RegisterLibFunc(&setMusicPan, raylibDll, "SetMusicPan") purego.RegisterLibFunc(&getMusicTimeLength, raylibDll, "GetMusicTimeLength") purego.RegisterLibFunc(&getMusicTimePlayed, raylibDll, "GetMusicTimePlayed") purego.RegisterLibFunc(&loadAudioStream, raylibDll, "LoadAudioStream") purego.RegisterLibFunc(&isAudioStreamReady, raylibDll, "IsAudioStreamReady") purego.RegisterLibFunc(&unloadAudioStream, raylibDll, "UnloadAudioStream") purego.RegisterLibFunc(&updateAudioStream, raylibDll, "UpdateAudioStream") purego.RegisterLibFunc(&isAudioStreamProcessed, raylibDll, "IsAudioStreamProcessed") purego.RegisterLibFunc(&playAudioStream, raylibDll, "PlayAudioStream") purego.RegisterLibFunc(&pauseAudioStream, raylibDll, "PauseAudioStream") purego.RegisterLibFunc(&resumeAudioStream, raylibDll, "ResumeAudioStream") purego.RegisterLibFunc(&isAudioStreamPlaying, raylibDll, "IsAudioStreamPlaying") purego.RegisterLibFunc(&stopAudioStream, raylibDll, "StopAudioStream") purego.RegisterLibFunc(&setAudioStreamVolume, raylibDll, "SetAudioStreamVolume") purego.RegisterLibFunc(&setAudioStreamPitch, raylibDll, "SetAudioStreamPitch") purego.RegisterLibFunc(&setAudioStreamPan, raylibDll, "SetAudioStreamPan") purego.RegisterLibFunc(&setAudioStreamBufferSizeDefault, raylibDll, "SetAudioStreamBufferSizeDefault") purego.RegisterLibFunc(&setAudioStreamCallback, raylibDll, "SetAudioStreamCallback") purego.RegisterLibFunc(&attachAudioStreamProcessor, raylibDll, "AttachAudioStreamProcessor") purego.RegisterLibFunc(&detachAudioStreamProcessor, raylibDll, "DetachAudioStreamProcessor") purego.RegisterLibFunc(&attachAudioMixedProcessor, raylibDll, "AttachAudioMixedProcessor") purego.RegisterLibFunc(&detachAudioMixedProcessor, raylibDll, "DetachAudioMixedProcessor") } // InitWindow - Initialize window and OpenGL context func InitWindow(width int32, height int32, title string) { initWindow(width, height, title) } // CloseWindow - Close window and unload OpenGL context func CloseWindow() { closeWindow() } // WindowShouldClose - Check if application should close (KEY_ESCAPE pressed or windows close icon clicked) func WindowShouldClose() bool { return windowShouldClose() } // IsWindowReady - Check if window has been initialized successfully func IsWindowReady() bool { return isWindowReady() } // IsWindowFullscreen - Check if window is currently fullscreen func IsWindowFullscreen() bool { return isWindowFullscreen() } // IsWindowHidden - Check if window is currently hidden (only PLATFORM_DESKTOP) func IsWindowHidden() bool { return isWindowHidden() } // IsWindowMinimized - Check if window is currently minimized (only PLATFORM_DESKTOP) func IsWindowMinimized() bool { return isWindowMinimized() } // IsWindowMaximized - Check if window is currently maximized (only PLATFORM_DESKTOP) func IsWindowMaximized() bool { return isWindowMaximized() } // IsWindowFocused - Check if window is currently focused (only PLATFORM_DESKTOP) func IsWindowFocused() bool { return isWindowFocused() } // IsWindowResized - Check if window has been resized last frame func IsWindowResized() bool { return isWindowResized() } // IsWindowState - Check if one specific window flag is enabled func IsWindowState(flag uint32) bool { return isWindowState(flag) } // SetWindowState - Set window configuration state using flags (only PLATFORM_DESKTOP) func SetWindowState(flags uint32) { setWindowState(flags) } // ClearWindowState - Clear window configuration state flags func ClearWindowState(flags uint32) { clearWindowState(flags) } // ToggleFullscreen - Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP) func ToggleFullscreen() { toggleFullscreen() } // ToggleBorderlessWindowed - Toggle window state: borderless windowed (only PLATFORM_DESKTOP) func ToggleBorderlessWindowed() { toggleBorderlessWindowed() } // MaximizeWindow - Set window state: maximized, if resizable (only PLATFORM_DESKTOP) func MaximizeWindow() { maximizeWindow() } // MinimizeWindow - Set window state: minimized, if resizable (only PLATFORM_DESKTOP) func MinimizeWindow() { minimizeWindow() } // RestoreWindow - Set window state: not minimized/maximized (only PLATFORM_DESKTOP) func RestoreWindow() { restoreWindow() } // SetWindowIcon - Set icon for window (single image, RGBA 32bit, only PLATFORM_DESKTOP) func SetWindowIcon(image Image) { setWindowIcon(uintptr(unsafe.Pointer(&image))) } // SetWindowIcons - Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP) func SetWindowIcons(images []Image, count int32) { setWindowIcons(uintptr(unsafe.Pointer(&images[0])), int32(len(images))) } // SetWindowTitle - Set title for window (only PLATFORM_DESKTOP and PLATFORM_WEB) func SetWindowTitle(title string) { setWindowTitle(title) } // SetWindowPosition - Set window position on screen (only PLATFORM_DESKTOP) func SetWindowPosition(x int, y int) { setWindowPosition(int32(x), int32(y)) } // SetWindowMonitor - Set monitor for the current window func SetWindowMonitor(monitor int) { setWindowMonitor(int32(monitor)) } // SetWindowMinSize - Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE) func SetWindowMinSize(width int, height int) { setWindowMinSize(int32(width), int32(height)) } // SetWindowMaxSize - Set window maximum dimensions (for FLAG_WINDOW_RESIZABLE) func SetWindowMaxSize(width int, height int) { setWindowMaxSize(int32(width), int32(height)) } // SetWindowSize - Set window dimensions func SetWindowSize(width int, height int) { setWindowSize(int32(width), int32(height)) } // SetWindowOpacity - Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP) func SetWindowOpacity(opacity float32) { setWindowOpacity(opacity) } // SetWindowFocused - Set window focused (only PLATFORM_DESKTOP) func SetWindowFocused() { setWindowFocused() } // GetWindowHandle - Get native window handle func GetWindowHandle() unsafe.Pointer { return getWindowHandle() } // GetScreenWidth - Get current screen width func GetScreenWidth() int { return int(getScreenWidth()) } // GetScreenHeight - Get current screen height func GetScreenHeight() int { return int(getScreenHeight()) } // GetRenderWidth - Get current render width (it considers HiDPI) func GetRenderWidth() int { return int(getRenderWidth()) } // GetRenderHeight - Get current render height (it considers HiDPI) func GetRenderHeight() int { return int(getRenderHeight()) } // GetMonitorCount - Get number of connected monitors func GetMonitorCount() int { return int(getMonitorCount()) } // GetCurrentMonitor - Get current connected monitor func GetCurrentMonitor() int { return int(getCurrentMonitor()) } // GetMonitorPosition - Get specified monitor position func GetMonitorPosition(monitor int) Vector2 { ret := getMonitorPosition(int32(monitor)) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetMonitorWidth - Get specified monitor width (current video mode used by monitor) func GetMonitorWidth(monitor int) int { return int(getMonitorWidth(int32(monitor))) } // GetMonitorHeight - Get specified monitor height (current video mode used by monitor) func GetMonitorHeight(monitor int) int { return int(getMonitorHeight(int32(monitor))) } // GetMonitorPhysicalWidth - Get specified monitor physical width in millimetres func GetMonitorPhysicalWidth(monitor int) int { return int(getMonitorPhysicalWidth(int32(monitor))) } // GetMonitorPhysicalHeight - Get specified monitor physical height in millimetres func GetMonitorPhysicalHeight(monitor int) int { return int(getMonitorPhysicalHeight(int32(monitor))) } // GetMonitorRefreshRate - Get specified monitor refresh rate func GetMonitorRefreshRate(monitor int) int { return int(getMonitorRefreshRate(int32(monitor))) } // GetWindowPosition - Get window position XY on monitor func GetWindowPosition() Vector2 { ret := getWindowPosition() return *(*Vector2)(unsafe.Pointer(&ret)) } // GetWindowScaleDPI - Get window scale DPI factor func GetWindowScaleDPI() Vector2 { ret := getWindowScaleDPI() return *(*Vector2)(unsafe.Pointer(&ret)) } // GetMonitorName - Get the human-readable, UTF-8 encoded name of the specified monitor func GetMonitorName(monitor int) string { return getMonitorName(int32(monitor)) } // SetClipboardText - Set clipboard text content func SetClipboardText(text string) { setClipboardText(text) } // GetClipboardText - Get clipboard text content func GetClipboardText() string { return getClipboardText() } // EnableEventWaiting - Enable waiting for events on EndDrawing(), no automatic event polling func EnableEventWaiting() { enableEventWaiting() } // DisableEventWaiting - Disable waiting for events on EndDrawing(), automatic events polling func DisableEventWaiting() { disableEventWaiting() } // ShowCursor - Shows cursor func ShowCursor() { showCursor() } // HideCursor - Hides cursor func HideCursor() { hideCursor() } // IsCursorHidden - Check if cursor is not visible func IsCursorHidden() bool { return isCursorHidden() } // EnableCursor - Enables cursor (unlock cursor) func EnableCursor() { enableCursor() } // DisableCursor - Disables cursor (lock cursor) func DisableCursor() { disableCursor() } // IsCursorOnScreen - Check if cursor is on the screen func IsCursorOnScreen() bool { return isCursorOnScreen() } // ClearBackground - Set background color (framebuffer clear color) func ClearBackground(col color.RGBA) { clearBackground(*(*uintptr)(unsafe.Pointer(&col))) } // BeginDrawing - Setup canvas (framebuffer) to start drawing func BeginDrawing() { beginDrawing() } // EndDrawing - End canvas drawing and swap buffers (double buffering) func EndDrawing() { endDrawing() } // BeginMode2D - Begin 2D mode with custom camera (2D) func BeginMode2D(camera Camera2D) { beginMode2D(uintptr(unsafe.Pointer(&camera))) } // EndMode2D - Ends 2D mode with custom camera func EndMode2D() { endMode2D() } // BeginMode3D - Begin 3D mode with custom camera (3D) func BeginMode3D(camera Camera3D) { beginMode3D(uintptr(unsafe.Pointer(&camera))) } // EndMode3D - Ends 3D mode and returns to default 2D orthographic mode func EndMode3D() { endMode3D() } // BeginTextureMode - Begin drawing to render texture func BeginTextureMode(target RenderTexture2D) { beginTextureMode(uintptr(unsafe.Pointer(&target))) } // EndTextureMode - Ends drawing to render texture func EndTextureMode() { endTextureMode() } // BeginShaderMode - Begin custom shader drawing func BeginShaderMode(shader Shader) { beginShaderMode(uintptr(unsafe.Pointer(&shader))) } // EndShaderMode - End custom shader drawing (use default shader) func EndShaderMode() { endShaderMode() } // BeginBlendMode - Begin blending mode (alpha, additive, multiplied, subtract, custom) func BeginBlendMode(mode BlendMode) { beginBlendMode(int32(mode)) } // EndBlendMode - End blending mode (reset to default: alpha blending) func EndBlendMode() { endBlendMode() } // BeginScissorMode - Begin scissor mode (define screen area for following drawing) func BeginScissorMode(x int32, y int32, width int32, height int32) { beginScissorMode(x, y, width, height) } // EndScissorMode - End scissor mode func EndScissorMode() { endScissorMode() } // BeginVrStereoMode - Begin stereo rendering (requires VR simulator) func BeginVrStereoMode(config VrStereoConfig) {} // EndVrStereoMode - End stereo rendering (requires VR simulator) func EndVrStereoMode() {} // LoadVrStereoConfig - Load VR stereo config for VR simulator device parameters func LoadVrStereoConfig(device VrDeviceInfo) VrStereoConfig { var config VrStereoConfig loadVrStereoConfig(uintptr(unsafe.Pointer(&config)), uintptr(unsafe.Pointer(&device))) return config } // UnloadVrStereoConfig - Unload VR stereo config func UnloadVrStereoConfig(config VrStereoConfig) { unloadVrStereoConfig(uintptr(unsafe.Pointer(&config))) } // LoadShader - Load shader from files and bind default locations func LoadShader(vsFileName string, fsFileName string) Shader { var shader Shader var cvsFileName, cfsFileName *byte if vsFileName != "" { var err error cvsFileName, err = windows.BytePtrFromString(vsFileName) if err != nil { panic(err) } } if fsFileName != "" { var err error cfsFileName, err = windows.BytePtrFromString(fsFileName) if err != nil { panic(err) } } loadShader(uintptr(unsafe.Pointer(&shader)), uintptr(unsafe.Pointer(cvsFileName)), uintptr(unsafe.Pointer(cfsFileName))) return shader } // LoadShaderFromMemory - Load shader from code strings and bind default locations func LoadShaderFromMemory(vsCode string, fsCode string) Shader { var shader Shader var cvsCode, cfsCode *byte if vsCode != "" { var err error cvsCode, err = windows.BytePtrFromString(vsCode) if err != nil { panic(err) } } if fsCode != "" { var err error cfsCode, err = windows.BytePtrFromString(fsCode) if err != nil { panic(err) } } loadShaderFromMemory(uintptr(unsafe.Pointer(&shader)), uintptr(unsafe.Pointer(cvsCode)), uintptr(unsafe.Pointer(cfsCode))) return shader } // IsShaderReady - Check if a shader is ready func IsShaderReady(shader Shader) bool { return isShaderReady(uintptr(unsafe.Pointer(&shader))) } // GetShaderLocation - Get shader uniform location func GetShaderLocation(shader Shader, uniformName string) int32 { return getShaderLocation(uintptr(unsafe.Pointer(&shader)), uniformName) } // GetShaderLocationAttrib - Get shader attribute location func GetShaderLocationAttrib(shader Shader, attribName string) int32 { return getShaderLocationAttrib(uintptr(unsafe.Pointer(&shader)), attribName) } // SetShaderValue - Set shader uniform value func SetShaderValue(shader Shader, locIndex int32, value []float32, uniformType ShaderUniformDataType) { setShaderValue(uintptr(unsafe.Pointer(&shader)), locIndex, value, int32(uniformType)) } // SetShaderValueV - Set shader uniform value vector func SetShaderValueV(shader Shader, locIndex int32, value []float32, uniformType ShaderUniformDataType, count int32) { setShaderValueV(uintptr(unsafe.Pointer(&shader)), locIndex, value, int32(uniformType), count) } // SetShaderValueMatrix - Set shader uniform value (matrix 4x4) func SetShaderValueMatrix(shader Shader, locIndex int32, mat Matrix) { setShaderValueMatrix(uintptr(unsafe.Pointer(&shader)), locIndex, uintptr(unsafe.Pointer(&mat))) } // SetShaderValueTexture - Set shader uniform value for texture (sampler2d) func SetShaderValueTexture(shader Shader, locIndex int32, texture Texture2D) { setShaderValueTexture(uintptr(unsafe.Pointer(&shader)), locIndex, uintptr(unsafe.Pointer(&texture))) } // UnloadShader - Unload shader from GPU memory (VRAM) func UnloadShader(shader Shader) { unloadShader(uintptr(unsafe.Pointer(&shader))) } // GetMouseRay - Get a ray trace from mouse position func GetMouseRay(mousePosition Vector2, camera Camera) Ray { var ray Ray getMouseRay(uintptr(unsafe.Pointer(&ray)), *(*uintptr)(unsafe.Pointer(&mousePosition)), uintptr(unsafe.Pointer(&camera))) return ray } // GetCameraMatrix - Get camera transform matrix (view matrix) func GetCameraMatrix(camera Camera) Matrix { var mat Matrix getCameraMatrix(uintptr(unsafe.Pointer(&mat)), uintptr(unsafe.Pointer(&camera))) return mat } // GetCameraMatrix2D - Get camera 2d transform matrix func GetCameraMatrix2D(camera Camera2D) Matrix { var mat Matrix getCameraMatrix2D(uintptr(unsafe.Pointer(&mat)), uintptr(unsafe.Pointer(&camera))) return mat } // GetWorldToScreen - Get the screen space position for a 3d world space position func GetWorldToScreen(position Vector3, camera Camera) Vector2 { ret := getWorldToScreen(uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&camera))) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetScreenToWorld2D - Get the world space position for a 2d camera screen space position func GetScreenToWorld2D(position Vector2, camera Camera2D) Vector2 { ret := getScreenToWorld2D(*(*uintptr)(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&camera))) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetWorldToScreenEx - Get size position for a 3d world space position func GetWorldToScreenEx(position Vector3, camera Camera, width int32, height int32) Vector2 { ret := getWorldToScreenEx(uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&camera)), width, height) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetWorldToScreen2D - Get the screen space position for a 2d camera world space position func GetWorldToScreen2D(position Vector2, camera Camera2D) Vector2 { ret := getWorldToScreen2D(*(*uintptr)(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&camera))) return *(*Vector2)(unsafe.Pointer(&ret)) } // SetTargetFPS - Set target FPS (maximum) func SetTargetFPS(fps int32) { setTargetFPS(fps) } // GetFrameTime - Get time in seconds for last frame drawn (delta time) func GetFrameTime() float32 { return getFrameTime() } // GetTime - Get elapsed time in seconds since InitWindow() func GetTime() float64 { return getTime() } // GetFPS - Get current FPS func GetFPS() int32 { return getFPS() } // Custom frame control functions // NOTE: SwapScreenBuffer and PollInputEvents are intended for advanced users that want full control over the frame processing // By default EndDrawing() does this job: draws everything + SwapScreenBuffer() + manage frame timing + PollInputEvents() // To avoid that behaviour and control frame processes manually you must recompile raylib with SUPPORT_CUSTOM_FRAME_CONTROL enabled in config.h // SwapScreenBuffer - Swap back buffer with front buffer (screen drawing) func SwapScreenBuffer() { swapScreenBuffer() } // PollInputEvents - Register all input events func PollInputEvents() { pollInputEvents() } // WaitTime - Wait for some time (halt program execution) func WaitTime(seconds float64) { waitTime(seconds) } // SetRandomSeed - Set the seed for the random number generator // // Note: You can use go's math/rand package instead func SetRandomSeed(seed uint32) { setRandomSeed(seed) } // GetRandomValue - Get a random value between min and max (both included) // // Note: You can use go's math/rand package instead func GetRandomValue(minimum int32, maximum int32) int32 { return getRandomValue(minimum, maximum) } // LoadRandomSequence - Load random values sequence, no values repeated // // Note: Use UnloadRandomSequence if you don't need the sequence any more. You can use go's math/rand.Perm function instead. func LoadRandomSequence(count uint32, minimum int32, maximum int32) []int32 { ret := loadRandomSequence(count, minimum, maximum) return unsafe.Slice(ret, 10) } // UnloadRandomSequence - Unload random values sequence func UnloadRandomSequence(sequence []int32) { unloadRandomSequence(unsafe.SliceData(sequence)) } // TakeScreenshot - Takes a screenshot of current screen (filename extension defines format) func TakeScreenshot(fileName string) { takeScreenshot(fileName) } // SetConfigFlags - Setup init configuration flags (view FLAGS) func SetConfigFlags(flags uint32) { setConfigFlags(flags) } // OpenURL - Open URL with default system browser (if available) func OpenURL(url string) { openURL(url) } // TraceLog - Show trace log messages (LOG_DEBUG, LOG_INFO, LOG_WARNING, LOG_ERROR...) func TraceLog(logLevel TraceLogLevel, text string, args ...any) { traceLog(int32(logLevel), fmt.Sprintf(text, args...)) } // SetTraceLogLevel - Set the current threshold (minimum) log level func SetTraceLogLevel(logLevel TraceLogLevel) { setTraceLogLevel(int32(logLevel)) } // MemAlloc - Internal memory allocator func MemAlloc(size uint32) unsafe.Pointer { return memAlloc(size) } // MemRealloc - Internal memory reallocator func MemRealloc(ptr unsafe.Pointer, size uint32) unsafe.Pointer { return memRealloc(ptr, size) } // MemFree - Internal memory free func MemFree(ptr unsafe.Pointer) { memFree(ptr) } // SetTraceLogCallback - Set custom trace log func SetTraceLogCallback(fn TraceLogCallbackFun) { setTraceLogCallback(traceLogCallbackWrapper(fn)) } // IsFileDropped - Check if a file has been dropped into window func IsFileDropped() bool { return isFileDropped() } // LoadDroppedFiles - Load dropped filepaths func LoadDroppedFiles() []string { var filePathList = struct { capacity uint32 count uint32 paths **byte }{} loadDroppedFiles(uintptr(unsafe.Pointer(&filePathList))) defer unloadDroppedFiles(uintptr(unsafe.Pointer(&filePathList))) tmpslice := (*[1 << 24]*byte)(unsafe.Pointer(filePathList.paths))[:filePathList.count:filePathList.count] gostrings := make([]string, filePathList.count) for i, s := range tmpslice { gostrings[i] = func(p *byte) string { if p == nil || *p == 0 { return "" } n := 0 for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { ptr = unsafe.Pointer(uintptr(ptr) + 1) } return string(unsafe.Slice(p, n)) }(s) } return gostrings } // UnloadDroppedFiles - Unload dropped filepaths func UnloadDroppedFiles() {} // LoadAutomationEventList - Load automation events list from file, NULL for empty list, capacity = MAX_AUTOMATION_EVENTS func LoadAutomationEventList(fileName string) AutomationEventList { var automationEventList AutomationEventList loadAutomationEventList(uintptr(unsafe.Pointer(&automationEventList)), fileName) return automationEventList } // UnloadAutomationEventList - Unload automation events list from file func UnloadAutomationEventList(list *AutomationEventList) { unloadAutomationEventList(uintptr(unsafe.Pointer(&list))) } // ExportAutomationEventList - Export automation events list as text file func ExportAutomationEventList(list AutomationEventList, fileName string) bool { return exportAutomationEventList(uintptr(unsafe.Pointer(&list)), fileName) } // SetAutomationEventList - Set automation event list to record to func SetAutomationEventList(list *AutomationEventList) { setAutomationEventList(uintptr(unsafe.Pointer(&list))) } // SetAutomationEventBaseFrame - Set automation event internal base frame to start recording func SetAutomationEventBaseFrame(frame int) { setAutomationEventBaseFrame(int32(frame)) } // StartAutomationEventRecording - Start recording automation events (AutomationEventList must be set) func StartAutomationEventRecording() { startAutomationEventRecording() } // StopAutomationEventRecording - Stop recording automation events func StopAutomationEventRecording() { stopAutomationEventRecording() } // PlayAutomationEvent - Play a recorded automation event func PlayAutomationEvent(event AutomationEvent) { playAutomationEvent(uintptr(unsafe.Pointer(&event))) } // IsKeyPressed - Check if a key has been pressed once func IsKeyPressed(key int32) bool { return isKeyPressed(key) } // IsKeyPressedRepeat - Check if a key has been pressed again (Only PLATFORM_DESKTOP) func IsKeyPressedRepeat(key int32) bool { return isKeyPressedRepeat(key) } // IsKeyDown - Check if a key is being pressed func IsKeyDown(key int32) bool { return isKeyDown(key) } // IsKeyReleased - Check if a key has been released once func IsKeyReleased(key int32) bool { return isKeyReleased(key) } // IsKeyUp - Check if a key is NOT being pressed func IsKeyUp(key int32) bool { return isKeyUp(key) } // GetKeyPressed - Get key pressed (keycode), call it multiple times for keys queued, returns 0 when the queue is empty func GetKeyPressed() int32 { return getKeyPressed() } // GetCharPressed - Get char pressed (unicode), call it multiple times for chars queued, returns 0 when the queue is empty func GetCharPressed() int32 { return getCharPressed() } // SetExitKey - Set a custom key to exit program (default is ESC) func SetExitKey(key int32) { setExitKey(key) } // IsGamepadAvailable - Check if a gamepad is available func IsGamepadAvailable(gamepad int32) bool { return isGamepadAvailable(gamepad) } // GetGamepadName - Get gamepad internal name id func GetGamepadName(gamepad int32) string { return getGamepadName(gamepad) } // IsGamepadButtonPressed - Check if a gamepad button has been pressed once func IsGamepadButtonPressed(gamepad int32, button int32) bool { return isGamepadButtonPressed(gamepad, button) } // IsGamepadButtonDown - Check if a gamepad button is being pressed func IsGamepadButtonDown(gamepad int32, button int32) bool { return isGamepadButtonDown(gamepad, button) } // IsGamepadButtonReleased - Check if a gamepad button has been released once func IsGamepadButtonReleased(gamepad int32, button int32) bool { return isGamepadButtonReleased(gamepad, button) } // IsGamepadButtonUp - Check if a gamepad button is NOT being pressed func IsGamepadButtonUp(gamepad int32, button int32) bool { return isGamepadButtonUp(gamepad, button) } // GetGamepadButtonPressed - Get the last gamepad button pressed func GetGamepadButtonPressed() int32 { return getGamepadButtonPressed() } // GetGamepadAxisCount - Get gamepad axis count for a gamepad func GetGamepadAxisCount(gamepad int32) int32 { return getGamepadAxisCount(gamepad) } // GetGamepadAxisMovement - Get axis movement value for a gamepad axis func GetGamepadAxisMovement(gamepad int32, axis int32) float32 { return getGamepadAxisMovement(gamepad, axis) } // SetGamepadMappings - Set internal gamepad mappings (SDL_GameControllerDB) func SetGamepadMappings(mappings string) int32 { return setGamepadMappings(mappings) } // IsMouseButtonPressed - Check if a mouse button has been pressed once func IsMouseButtonPressed(button int32) bool { return isMouseButtonPressed(button) } // IsMouseButtonDown - Check if a mouse button is being pressed func IsMouseButtonDown(button int32) bool { return isMouseButtonDown(button) } // IsMouseButtonReleased - Check if a mouse button has been released once func IsMouseButtonReleased(button int32) bool { return isMouseButtonReleased(button) } // IsMouseButtonUp - Check if a mouse button is NOT being pressed func IsMouseButtonUp(button int32) bool { return isMouseButtonUp(button) } // GetMouseX - Get mouse position X func GetMouseX() int32 { return getMouseX() } // GetMouseY - Get mouse position Y func GetMouseY() int32 { return getMouseY() } // GetMousePosition - Get mouse position XY func GetMousePosition() Vector2 { ret := getMousePosition() return *(*Vector2)(unsafe.Pointer(&ret)) } // GetMouseDelta - Get mouse delta between frames func GetMouseDelta() Vector2 { ret := getMouseDelta() return *(*Vector2)(unsafe.Pointer(&ret)) } // SetMousePosition - Set mouse position XY func SetMousePosition(x int32, y int32) { setMousePosition(x, y) } // SetMouseOffset - Set mouse offset func SetMouseOffset(offsetX int32, offsetY int32) { setMouseOffset(offsetX, offsetY) } // SetMouseScale - Set mouse scaling func SetMouseScale(scaleX float32, scaleY float32) { setMouseScale(scaleX, scaleY) } // GetMouseWheelMove - Get mouse wheel movement for X or Y, whichever is larger func GetMouseWheelMove() float32 { return getMouseWheelMove() } // GetMouseWheelMoveV - Get mouse wheel movement for both X and Y func GetMouseWheelMoveV() Vector2 { ret := getMouseWheelMoveV() return *(*Vector2)(unsafe.Pointer(&ret)) } // SetMouseCursor - Set mouse cursor func SetMouseCursor(cursor int32) { setMouseCursor(cursor) } // GetTouchX - Get touch position X for touch point 0 (relative to screen size) func GetTouchX() int32 { return getTouchX() } // GetTouchY - Get touch position Y for touch point 0 (relative to screen size) func GetTouchY() int32 { return getTouchY() } // GetTouchPosition - Get touch position XY for a touch point index (relative to screen size) func GetTouchPosition(index int32) Vector2 { ret := getTouchPosition(index) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetTouchPointId - Get touch point identifier for given index func GetTouchPointId(index int32) int32 { return getTouchPointId(index) } // GetTouchPointCount - Get number of touch points func GetTouchPointCount() int32 { return getTouchPointCount() } // SetGesturesEnabled - Enable a set of gestures using flags func SetGesturesEnabled(flags uint32) { setGesturesEnabled(flags) } // IsGestureDetected - Check if a gesture have been detected func IsGestureDetected(gesture Gestures) bool { return isGestureDetected(uint32(gesture)) } // GetGestureDetected - Get latest detected gesture func GetGestureDetected() Gestures { return Gestures(getGestureDetected()) } // GetGestureHoldDuration - Get gesture hold time in milliseconds func GetGestureHoldDuration() float32 { return getGestureHoldDuration() } // GetGestureDragVector - Get gesture drag vector func GetGestureDragVector() Vector2 { ret := getGestureDragVector() return *(*Vector2)(unsafe.Pointer(&ret)) } // GetGestureDragAngle - Get gesture drag angle func GetGestureDragAngle() float32 { return getGestureDragAngle() } // GetGesturePinchVector - Get gesture pinch delta func GetGesturePinchVector() Vector2 { ret := getGesturePinchVector() return *(*Vector2)(unsafe.Pointer(&ret)) } // GetGesturePinchAngle - Get gesture pinch angle func GetGesturePinchAngle() float32 { return getGesturePinchAngle() } // SetShapesTexture - Set texture and rectangle to be used on shapes drawing func SetShapesTexture(texture Texture2D, source Rectangle) { setShapesTexture(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&source))) } // DrawPixel - Draw a pixel func DrawPixel(posX int32, posY int32, col color.RGBA) { drawPixel(posX, posY, *(*uintptr)(unsafe.Pointer(&col))) } // DrawPixelV - Draw a pixel (Vector version) func DrawPixelV(position Vector2, col color.RGBA) { drawPixelV(*(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawLine - Draw a line func DrawLine(startPosX int32, startPosY int32, endPosX int32, endPosY int32, col color.RGBA) { drawLine(startPosX, startPosY, endPosX, endPosY, *(*uintptr)(unsafe.Pointer(&col))) } // DrawLineV - Draw a line (using gl lines) func DrawLineV(startPos Vector2, endPos Vector2, col color.RGBA) { drawLineV(*(*uintptr)(unsafe.Pointer(&startPos)), *(*uintptr)(unsafe.Pointer(&endPos)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawLineEx - Draw a line (using triangles/quads) func DrawLineEx(startPos Vector2, endPos Vector2, thick float32, col color.RGBA) { drawLineEx(*(*uintptr)(unsafe.Pointer(&startPos)), *(*uintptr)(unsafe.Pointer(&endPos)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawLineStrip - Draw lines sequence (using gl lines) func DrawLineStrip(points []Vector2, col color.RGBA) { pointCount := int32(len(points)) drawLineStrip((unsafe.SliceData(points)), pointCount, *(*uintptr)(unsafe.Pointer(&col))) } // DrawLineBezier - Draw line segment cubic-bezier in-out interpolation func DrawLineBezier(startPos Vector2, endPos Vector2, thick float32, col color.RGBA) { drawLineBezier(*(*uintptr)(unsafe.Pointer(&startPos)), *(*uintptr)(unsafe.Pointer(&endPos)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircle - Draw a color-filled circle func DrawCircle(centerX int32, centerY int32, radius float32, col color.RGBA) { drawCircle(centerX, centerY, radius, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircleSector - Draw a piece of a circle func DrawCircleSector(center Vector2, radius float32, startAngle float32, endAngle float32, segments int32, col color.RGBA) { drawCircleSector(*(*uintptr)(unsafe.Pointer(¢er)), radius, startAngle, endAngle, segments, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircleSectorLines - Draw circle sector outline func DrawCircleSectorLines(center Vector2, radius float32, startAngle float32, endAngle float32, segments int32, col color.RGBA) { drawCircleSectorLines(*(*uintptr)(unsafe.Pointer(¢er)), radius, startAngle, endAngle, segments, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircleGradient - Draw a gradient-filled circle func DrawCircleGradient(centerX int32, centerY int32, radius float32, color1 color.RGBA, color2 color.RGBA) { drawCircleGradient(centerX, centerY, radius, *(*uintptr)(unsafe.Pointer(&color1)), *(*uintptr)(unsafe.Pointer(&color2))) } // DrawCircleV - Draw a color-filled circle (Vector version) func DrawCircleV(center Vector2, radius float32, col color.RGBA) { drawCircleV(*(*uintptr)(unsafe.Pointer(¢er)), radius, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircleLines - Draw circle outline func DrawCircleLines(centerX int32, centerY int32, radius float32, col color.RGBA) { drawCircleLines(centerX, centerY, radius, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircleLinesV - Draw circle outline (Vector version) func DrawCircleLinesV(center Vector2, radius float32, col color.RGBA) { drawCircleLinesV(*(*uintptr)(unsafe.Pointer(¢er)), radius, *(*uintptr)(unsafe.Pointer(&col))) } // DrawEllipse - Draw ellipse func DrawEllipse(centerX int32, centerY int32, radiusH float32, radiusV float32, col color.RGBA) { drawEllipse(centerX, centerY, radiusH, radiusV, *(*uintptr)(unsafe.Pointer(&col))) } // DrawEllipseLines - Draw ellipse outline func DrawEllipseLines(centerX int32, centerY int32, radiusH float32, radiusV float32, col color.RGBA) { drawEllipseLines(centerX, centerY, radiusH, radiusV, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRing - Draw ring func DrawRing(center Vector2, innerRadius float32, outerRadius float32, startAngle float32, endAngle float32, segments int32, col color.RGBA) { drawRing(*(*uintptr)(unsafe.Pointer(¢er)), innerRadius, outerRadius, startAngle, endAngle, segments, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRingLines - Draw ring outline func DrawRingLines(center Vector2, innerRadius float32, outerRadius float32, startAngle float32, endAngle float32, segments int32, col color.RGBA) { drawRingLines(*(*uintptr)(unsafe.Pointer(¢er)), innerRadius, outerRadius, startAngle, endAngle, segments, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangle - Draw a color-filled rectangle func DrawRectangle(posX int32, posY int32, width int32, height int32, col color.RGBA) { drawRectangle(posX, posY, width, height, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleV - Draw a color-filled rectangle (Vector version) func DrawRectangleV(position Vector2, size Vector2, col color.RGBA) { drawRectangleV(*(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleRec - Draw a color-filled rectangle func DrawRectangleRec(rec Rectangle, col color.RGBA) { drawRectangleRec(uintptr(unsafe.Pointer(&rec)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectanglePro - Draw a color-filled rectangle with pro parameters func DrawRectanglePro(rec Rectangle, origin Vector2, rotation float32, col color.RGBA) { drawRectanglePro(uintptr(unsafe.Pointer(&rec)), *(*uintptr)(unsafe.Pointer(&origin)), rotation, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleGradientV - Draw a vertical-gradient-filled rectangle func DrawRectangleGradientV(posX int32, posY int32, width int32, height int32, color1 color.RGBA, color2 color.RGBA) { drawRectangleGradientV(posX, posY, width, height, *(*uintptr)(unsafe.Pointer(&color1)), *(*uintptr)(unsafe.Pointer(&color2))) } // DrawRectangleGradientH - Draw a horizontal-gradient-filled rectangle func DrawRectangleGradientH(posX int32, posY int32, width int32, height int32, color1 color.RGBA, color2 color.RGBA) { drawRectangleGradientH(posX, posY, width, height, *(*uintptr)(unsafe.Pointer(&color1)), *(*uintptr)(unsafe.Pointer(&color2))) } // DrawRectangleGradientEx - Draw a gradient-filled rectangle with custom vertex colors func DrawRectangleGradientEx(rec Rectangle, col1 color.RGBA, col2 color.RGBA, col3 color.RGBA, col4 color.RGBA) { drawRectangleGradientEx(uintptr(unsafe.Pointer(&rec)), *(*uintptr)(unsafe.Pointer(&col1)), *(*uintptr)(unsafe.Pointer(&col2)), *(*uintptr)(unsafe.Pointer(&col3)), *(*uintptr)(unsafe.Pointer(&col4))) } // DrawRectangleLines - Draw rectangle outline func DrawRectangleLines(posX int32, posY int32, width int32, height int32, col color.RGBA) { drawRectangleLines(posX, posY, width, height, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleLinesEx - Draw rectangle outline with extended parameters func DrawRectangleLinesEx(rec Rectangle, lineThick float32, col color.RGBA) { drawRectangleLinesEx(uintptr(unsafe.Pointer(&rec)), lineThick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleRounded - Draw rectangle with rounded edges func DrawRectangleRounded(rec Rectangle, roundness float32, segments int32, col color.RGBA) { drawRectangleRounded(uintptr(unsafe.Pointer(&rec)), roundness, segments, *(*uintptr)(unsafe.Pointer(&col))) } // DrawRectangleRoundedLines - Draw rectangle with rounded edges outline func DrawRectangleRoundedLines(rec Rectangle, roundness float32, segments float32, lineThick float32, col color.RGBA) { drawRectangleRoundedLines(uintptr(unsafe.Pointer(&rec)), roundness, int32(segments), lineThick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangle - Draw a color-filled triangle (vertex in counter-clockwise order!) func DrawTriangle(v1 Vector2, v2 Vector2, v3 Vector2, col color.RGBA) { drawTriangle(*(*uintptr)(unsafe.Pointer(&v1)), *(*uintptr)(unsafe.Pointer(&v2)), *(*uintptr)(unsafe.Pointer(&v3)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangleLines - Draw triangle outline (vertex in counter-clockwise order!) func DrawTriangleLines(v1 Vector2, v2 Vector2, v3 Vector2, col color.RGBA) { drawTriangleLines(*(*uintptr)(unsafe.Pointer(&v1)), *(*uintptr)(unsafe.Pointer(&v2)), *(*uintptr)(unsafe.Pointer(&v3)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangleFan - Draw a triangle fan defined by points (first vertex is the center) func DrawTriangleFan(points []Vector2, col color.RGBA) { pointCount := int32(len(points)) drawTriangleFan(unsafe.SliceData(points), pointCount, *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangleStrip - Draw a triangle strip defined by points func DrawTriangleStrip(points []Vector2, col color.RGBA) { pointCount := int32(len(points)) drawTriangleStrip(unsafe.SliceData(points), pointCount, *(*uintptr)(unsafe.Pointer(&col))) } // DrawPoly - Draw a regular polygon (Vector version) func DrawPoly(center Vector2, sides int32, radius float32, rotation float32, col color.RGBA) { drawPoly(*(*uintptr)(unsafe.Pointer(¢er)), sides, radius, rotation, *(*uintptr)(unsafe.Pointer(&col))) } // DrawPolyLines - Draw a polygon outline of n sides func DrawPolyLines(center Vector2, sides int32, radius float32, rotation float32, col color.RGBA) { drawPolyLines(*(*uintptr)(unsafe.Pointer(¢er)), sides, radius, rotation, *(*uintptr)(unsafe.Pointer(&col))) } // DrawPolyLinesEx - Draw a polygon outline of n sides with extended parameters func DrawPolyLinesEx(center Vector2, sides int32, radius float32, rotation float32, lineThick float32, col color.RGBA) { drawPolyLinesEx(*(*uintptr)(unsafe.Pointer(¢er)), sides, radius, rotation, lineThick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineLinear - Draw spline: Linear, minimum 2 points func DrawSplineLinear(points []Vector2, thick float32, col color.RGBA) { pointCount := int32(len(points)) drawSplineLinear(unsafe.SliceData(points), pointCount, thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineBasis - Draw spline: B-Spline, minimum 4 points func DrawSplineBasis(points []Vector2, thick float32, col color.RGBA) { pointCount := int32(len(points)) drawSplineBasis(unsafe.SliceData(points), pointCount, thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineCatmullRom - Draw spline: Catmull-Rom, minimum 4 points func DrawSplineCatmullRom(points []Vector2, thick float32, col color.RGBA) { pointCount := int32(len(points)) drawSplineCatmullRom(unsafe.SliceData(points), pointCount, thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineBezierQuadratic - Draw spline: Quadratic Bezier, minimum 3 points (1 control point): [p1, c2, p3, c4...] func DrawSplineBezierQuadratic(points []Vector2, thick float32, col color.RGBA) { pointCount := int32(len(points)) drawSplineBezierQuadratic(unsafe.SliceData(points), pointCount, thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineBezierCubic - Draw spline: Cubic Bezier, minimum 4 points (2 control points): [p1, c2, c3, p4, c5, c6...] func DrawSplineBezierCubic(points []Vector2, thick float32, col color.RGBA) { pointCount := int32(len(points)) drawSplineBezierCubic(unsafe.SliceData(points), pointCount, thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineSegmentLinear - Draw spline segment: Linear, 2 points func DrawSplineSegmentLinear(p1 Vector2, p2 Vector2, thick float32, col color.RGBA) { drawSplineSegmentLinear(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineSegmentBasis - Draw spline segment: B-Spline, 4 points func DrawSplineSegmentBasis(p1 Vector2, p2 Vector2, p3 Vector2, p4 Vector2, thick float32, col color.RGBA) { drawSplineSegmentBasis(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), *(*uintptr)(unsafe.Pointer(&p3)), *(*uintptr)(unsafe.Pointer(&p4)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineSegmentCatmullRom - Draw spline segment: Catmull-Rom, 4 points func DrawSplineSegmentCatmullRom(p1 Vector2, p2 Vector2, p3 Vector2, p4 Vector2, thick float32, col color.RGBA) { drawSplineSegmentCatmullRom(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), *(*uintptr)(unsafe.Pointer(&p3)), *(*uintptr)(unsafe.Pointer(&p4)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineSegmentBezierQuadratic - Draw spline segment: Quadratic Bezier, 2 points, 1 control point func DrawSplineSegmentBezierQuadratic(p1 Vector2, c2 Vector2, p3 Vector2, thick float32, col color.RGBA) { drawSplineSegmentBezierQuadratic(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&c2)), *(*uintptr)(unsafe.Pointer(&p3)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSplineSegmentBezierCubic - Draw spline segment: Cubic Bezier, 2 points, 2 control points func DrawSplineSegmentBezierCubic(p1 Vector2, c2 Vector2, c3 Vector2, p4 Vector2, thick float32, col color.RGBA) { drawSplineSegmentBezierCubic(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&c2)), *(*uintptr)(unsafe.Pointer(&c3)), *(*uintptr)(unsafe.Pointer(&p4)), thick, *(*uintptr)(unsafe.Pointer(&col))) } // GetSplinePointLinear - Get (evaluate) spline point: Linear func GetSplinePointLinear(startPos Vector2, endPos Vector2, t float32) Vector2 { ret := getSplinePointLinear(*(*uintptr)(unsafe.Pointer(&startPos)), *(*uintptr)(unsafe.Pointer(&endPos)), t) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetSplinePointBasis - Get (evaluate) spline point: B-Spline func GetSplinePointBasis(p1 Vector2, p2 Vector2, p3 Vector2, p4 Vector2, t float32) Vector2 { ret := getSplinePointBasis(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), *(*uintptr)(unsafe.Pointer(&p3)), *(*uintptr)(unsafe.Pointer(&p4)), t) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetSplinePointCatmullRom - Get (evaluate) spline point: Catmull-Rom func GetSplinePointCatmullRom(p1 Vector2, p2 Vector2, p3 Vector2, p4 Vector2, t float32) Vector2 { ret := getSplinePointCatmullRom(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), *(*uintptr)(unsafe.Pointer(&p3)), *(*uintptr)(unsafe.Pointer(&p4)), t) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetSplinePointBezierQuad - Get (evaluate) spline point: Quadratic Bezier func GetSplinePointBezierQuad(p1 Vector2, c2 Vector2, p3 Vector2, t float32) Vector2 { ret := getSplinePointBezierQuad(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&c2)), *(*uintptr)(unsafe.Pointer(&p3)), t) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetSplinePointBezierCubic - Get (evaluate) spline point: Cubic Bezier func GetSplinePointBezierCubic(p1 Vector2, c2 Vector2, c3 Vector2, p4 Vector2, t float32) Vector2 { ret := getSplinePointBezierCubic(*(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&c2)), *(*uintptr)(unsafe.Pointer(&c3)), *(*uintptr)(unsafe.Pointer(&p4)), t) return *(*Vector2)(unsafe.Pointer(&ret)) } // CheckCollisionRecs - Check collision between two rectangles func CheckCollisionRecs(rec1 Rectangle, rec2 Rectangle) bool { return checkCollisionRecs(uintptr(unsafe.Pointer(&rec1)), uintptr(unsafe.Pointer(&rec2))) } // CheckCollisionCircles - Check collision between two circles func CheckCollisionCircles(center1 Vector2, radius1 float32, center2 Vector2, radius2 float32) bool { return checkCollisionCircles(*(*uintptr)(unsafe.Pointer(¢er1)), radius1, *(*uintptr)(unsafe.Pointer(¢er2)), radius2) } // CheckCollisionCircleRec - Check collision between circle and rectangle func CheckCollisionCircleRec(center Vector2, radius float32, rec Rectangle) bool { return checkCollisionCircleRec(*(*uintptr)(unsafe.Pointer(¢er)), radius, uintptr(unsafe.Pointer(&rec))) } // CheckCollisionPointRec - Check if point is inside rectangle func CheckCollisionPointRec(point Vector2, rec Rectangle) bool { return checkCollisionPointRec(*(*uintptr)(unsafe.Pointer(&point)), uintptr(unsafe.Pointer(&rec))) } // CheckCollisionPointCircle - Check if point is inside circle func CheckCollisionPointCircle(point Vector2, center Vector2, radius float32) bool { return checkCollisionPointCircle(*(*uintptr)(unsafe.Pointer(&point)), *(*uintptr)(unsafe.Pointer(¢er)), radius) } // CheckCollisionPointTriangle - Check if point is inside a triangle func CheckCollisionPointTriangle(point Vector2, p1 Vector2, p2 Vector2, p3 Vector2) bool { return checkCollisionPointTriangle(*(*uintptr)(unsafe.Pointer(&point)), *(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), *(*uintptr)(unsafe.Pointer(&p3))) } // CheckCollisionPointPoly - Check if point is within a polygon described by array of vertices func CheckCollisionPointPoly(point Vector2, points []Vector2) bool { pointCount := int32(len(points)) return checkCollisionPointPoly(*(*uintptr)(unsafe.Pointer(&point)), unsafe.SliceData(points), pointCount) } // CheckCollisionLines - Check the collision between two lines defined by two points each, returns collision point by reference func CheckCollisionLines(startPos1 Vector2, endPos1 Vector2, startPos2 Vector2, endPos2 Vector2, collisionPoint *Vector2) bool { return checkCollisionLines(*(*uintptr)(unsafe.Pointer(&startPos1)), *(*uintptr)(unsafe.Pointer(&endPos1)), *(*uintptr)(unsafe.Pointer(&startPos2)), *(*uintptr)(unsafe.Pointer(&endPos2)), collisionPoint) } // CheckCollisionPointLine - Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] func CheckCollisionPointLine(point Vector2, p1 Vector2, p2 Vector2, threshold int32) bool { return checkCollisionPointLine(*(*uintptr)(unsafe.Pointer(&point)), *(*uintptr)(unsafe.Pointer(&p1)), *(*uintptr)(unsafe.Pointer(&p2)), threshold) } // GetCollisionRec - Get collision rectangle for two rectangles collision func GetCollisionRec(rec1 Rectangle, rec2 Rectangle) Rectangle { var rec Rectangle getCollisionRec(uintptr(unsafe.Pointer(&rec)), uintptr(unsafe.Pointer(&rec1)), uintptr(unsafe.Pointer(&rec2))) return rec } // LoadImage - Load image from file into CPU memory (RAM) func LoadImage(fileName string) *Image { var img Image loadImage(uintptr(unsafe.Pointer(&img)), fileName) return &img } // LoadImageRaw - Load image from RAW file data func LoadImageRaw(fileName string, width int32, height int32, format PixelFormat, headerSize int32) *Image { var img Image loadImageRaw(uintptr(unsafe.Pointer(&img)), fileName, width, height, int32(format), headerSize) return &img } // LoadImageSvg - Load image from SVG file data or string with specified size func LoadImageSvg(fileNameOrString string, width int32, height int32) *Image { var img Image loadImageSvg(uintptr(unsafe.Pointer(&img)), fileNameOrString, width, height) return &img } // LoadImageAnim - Load image sequence from file (frames appended to image.data) func LoadImageAnim(fileName string, frames []int32) *Image { var img Image loadImageAnim(uintptr(unsafe.Pointer(&img)), fileName, frames) return &img } // LoadImageFromMemory - Load image from memory buffer, fileType refers to extension: i.e. '.png' func LoadImageFromMemory(fileType string, fileData []byte, dataSize int32) *Image { var img Image loadImageFromMemory(uintptr(unsafe.Pointer(&img)), fileType, fileData, dataSize) return &img } // LoadImageFromTexture - Load image from GPU texture data func LoadImageFromTexture(texture Texture2D) *Image { var img Image loadImageFromTexture(uintptr(unsafe.Pointer(&img)), uintptr(unsafe.Pointer(&texture))) return &img } // LoadImageFromScreen - Load image from screen buffer and (screenshot) func LoadImageFromScreen() *Image { var img Image loadImageFromScreen(uintptr(unsafe.Pointer(&img))) return &img } // IsImageReady - Check if an image is ready func IsImageReady(image *Image) bool { return isImageReady(uintptr(unsafe.Pointer(image))) } // UnloadImage - Unload image from CPU memory (RAM) func UnloadImage(image *Image) { unloadImage(uintptr(unsafe.Pointer(image))) } // ExportImage - Export image data to file, returns true on success func ExportImage(image Image, fileName string) bool { return exportImage(uintptr(unsafe.Pointer(&image)), fileName) } // ExportImageToMemory - Export image to memory buffer func ExportImageToMemory(image Image, fileType string) []byte { var fileSize int32 ret := exportImageToMemory(uintptr(unsafe.Pointer(&image)), fileType, &fileSize) return unsafe.Slice(ret, fileSize) } // GenImageColor - Generate image: plain color func GenImageColor(width int, height int, col color.RGBA) *Image { var image Image genImageColor(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), *(*uintptr)(unsafe.Pointer(&col))) return &image } // GenImageGradientLinear - Generate image: linear gradient, direction in degrees [0..360], 0=Vertical gradient func GenImageGradientLinear(width int, height int, direction int, start color.RGBA, end color.RGBA) *Image { var image Image genImageGradientLinear(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), int32(direction), *(*uintptr)(unsafe.Pointer(&start)), *(*uintptr)(unsafe.Pointer(&end))) return &image } // GenImageGradientRadial - Generate image: radial gradient func GenImageGradientRadial(width int, height int, density float32, inner color.RGBA, outer color.RGBA) *Image { var image Image genImageGradientRadial(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), density, *(*uintptr)(unsafe.Pointer(&inner)), *(*uintptr)(unsafe.Pointer(&outer))) return &image } // GenImageGradientSquare - Generate image: square gradient func GenImageGradientSquare(width int, height int, density float32, inner color.RGBA, outer color.RGBA) *Image { var image Image genImageGradientSquare(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), density, *(*uintptr)(unsafe.Pointer(&inner)), *(*uintptr)(unsafe.Pointer(&outer))) return &image } // GenImageChecked - Generate image: checked func GenImageChecked(width int, height int, checksX int, checksY int, col1 color.RGBA, col2 color.RGBA) *Image { var image Image genImageChecked(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), int32(checksX), int32(checksY), *(*uintptr)(unsafe.Pointer(&col1)), *(*uintptr)(unsafe.Pointer(&col2))) return &image } // GenImageWhiteNoise - Generate image: white noise func GenImageWhiteNoise(width int, height int, factor float32) *Image { var image Image genImageWhiteNoise(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), factor) return &image } // GenImagePerlinNoise - Generate image: perlin noise func GenImagePerlinNoise(width int, height int, offsetX int32, offsetY int32, scale float32) *Image { var image Image genImagePerlinNoise(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), offsetX, offsetY, scale) return &image } // GenImageCellular - Generate image: cellular algorithm, bigger tileSize means bigger cells func GenImageCellular(width int, height int, tileSize int) *Image { var image Image genImageCellular(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), int32(tileSize)) return &image } // GenImageText - Generate image: grayscale image from text data func GenImageText(width int, height int, text string) Image { var image Image genImageText(uintptr(unsafe.Pointer(&image)), int32(width), int32(height), text) return image } // ImageCopy - Create an image duplicate (useful for transformations) func ImageCopy(image *Image) *Image { var retImage Image imageCopy(uintptr(unsafe.Pointer(&retImage)), uintptr(unsafe.Pointer(image))) return &retImage } // ImageFromImage - Create an image from another image piece func ImageFromImage(image Image, rec Rectangle) Image { var retImage Image imageFromImage(uintptr(unsafe.Pointer(&retImage)), uintptr(unsafe.Pointer(&image)), uintptr(unsafe.Pointer(&rec))) return retImage } // ImageText - Create an image from text (default font) func ImageText(text string, fontSize int32, col color.RGBA) Image { var retImage Image imageText(uintptr(unsafe.Pointer(&retImage)), text, fontSize, *(*uintptr)(unsafe.Pointer(&col))) return retImage } // ImageTextEx - Create an image from text (custom sprite font) func ImageTextEx(font Font, text string, fontSize float32, spacing float32, tint color.RGBA) Image { var retImage Image imageTextEx(uintptr(unsafe.Pointer(&retImage)), uintptr(unsafe.Pointer(&font)), text, fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) return retImage } // ImageFormat - Convert image data to desired format func ImageFormat(image *Image, newFormat PixelFormat) { imageFormat(image, int32(newFormat)) } // ImageToPOT - Convert image to POT (power-of-two) func ImageToPOT(image *Image, fill color.RGBA) { imageToPOT(image, *(*uintptr)(unsafe.Pointer(&fill))) } // ImageCrop - Crop an image to a defined rectangle func ImageCrop(image *Image, crop Rectangle) { imageCrop(image, uintptr(unsafe.Pointer(&crop))) } // ImageAlphaCrop - Crop image depending on alpha value func ImageAlphaCrop(image *Image, threshold float32) { imageAlphaCrop(image, threshold) } // ImageAlphaClear - Clear alpha channel to desired color func ImageAlphaClear(image *Image, col color.RGBA, threshold float32) { imageAlphaClear(image, *(*uintptr)(unsafe.Pointer(&col)), threshold) } // ImageAlphaMask - Apply alpha mask to image func ImageAlphaMask(image *Image, alphaMask *Image) { imageAlphaMask(image, uintptr(unsafe.Pointer(alphaMask))) } // ImageAlphaPremultiply - Premultiply alpha channel func ImageAlphaPremultiply(image *Image) { imageAlphaPremultiply(image) } // ImageBlurGaussian - Apply Gaussian blur using a box blur approximation func ImageBlurGaussian(image *Image, blurSize int32) { imageBlurGaussian(image, blurSize) } // ImageResize - Resize image (Bicubic scaling algorithm) func ImageResize(image *Image, newWidth int32, newHeight int32) { imageResize(image, newWidth, newHeight) } // ImageResizeNN - Resize image (Nearest-Neighbor scaling algorithm) func ImageResizeNN(image *Image, newWidth int32, newHeight int32) { imageResizeNN(image, newWidth, newHeight) } // ImageResizeCanvas - Resize canvas and fill with color func ImageResizeCanvas(image *Image, newWidth int32, newHeight int32, offsetX int32, offsetY int32, fill color.RGBA) { imageResizeCanvas(image, newWidth, newHeight, offsetX, offsetY, *(*uintptr)(unsafe.Pointer(&fill))) } // ImageMipmaps - Compute all mipmap levels for a provided image func ImageMipmaps(image *Image) { imageMipmaps(image) } // ImageDither - Dither image data to 16bpp or lower (Floyd-Steinberg dithering) func ImageDither(image *Image, rBpp int32, gBpp int32, bBpp int32, aBpp int32) { imageDither(image, rBpp, gBpp, bBpp, aBpp) } // ImageFlipVertical - Flip image vertically func ImageFlipVertical(image *Image) { imageFlipVertical(image) } // ImageFlipHorizontal - Flip image horizontally func ImageFlipHorizontal(image *Image) { imageFlipHorizontal(image) } // ImageRotate - Rotate image by input angle in degrees (-359 to 359) func ImageRotate(image *Image, degrees int32) { imageRotate(image, degrees) } // ImageRotateCW - Rotate image clockwise 90deg func ImageRotateCW(image *Image) { imageRotateCW(image) } // ImageRotateCCW - Rotate image counter-clockwise 90deg func ImageRotateCCW(image *Image) { imageRotateCCW(image) } // ImageColorTint - Modify image color: tint func ImageColorTint(image *Image, col color.RGBA) { imageColorTint(image, *(*uintptr)(unsafe.Pointer(&col))) } // ImageColorInvert - Modify image color: invert func ImageColorInvert(image *Image) { imageColorInvert(image) } // ImageColorGrayscale - Modify image color: grayscale func ImageColorGrayscale(image *Image) { imageColorGrayscale(image) } // ImageColorContrast - Modify image color: contrast (-100 to 100) func ImageColorContrast(image *Image, contrast float32) { imageColorContrast(image, contrast) } // ImageColorBrightness - Modify image color: brightness (-255 to 255) func ImageColorBrightness(image *Image, brightness int32) { imageColorBrightness(image, brightness) } // ImageColorReplace - Modify image color: replace color func ImageColorReplace(image *Image, col color.RGBA, replace color.RGBA) { imageColorReplace(image, *(*uintptr)(unsafe.Pointer(&col)), *(*uintptr)(unsafe.Pointer(&replace))) } // LoadImageColors - Load color data from image as a Color array (RGBA - 32bit) // // NOTE: Memory allocated should be freed using UnloadImageColors() func LoadImageColors(image *Image) []color.RGBA { ret := loadImageColors(uintptr(unsafe.Pointer(image))) return unsafe.Slice(ret, image.Width*image.Height) } // LoadImagePalette - Load colors palette from image as a Color array (RGBA - 32bit) // // NOTE: Memory allocated should be freed using UnloadImagePalette() func LoadImagePalette(image Image, maxPaletteSize int32) []color.RGBA { var colorCount int32 ret := loadImagePalette(uintptr(unsafe.Pointer(&image)), maxPaletteSize, &colorCount) return unsafe.Slice(ret, colorCount) } // UnloadImageColors - Unload color data loaded with LoadImageColors() func UnloadImageColors(colors []color.RGBA) { unloadImageColors(unsafe.SliceData(colors)) } // UnloadImagePalette - Unload colors palette loaded with LoadImagePalette() func UnloadImagePalette(colors []color.RGBA) { unloadImagePalette(unsafe.SliceData(colors)) } // GetImageAlphaBorder - Get image alpha border rectangle func GetImageAlphaBorder(image Image, threshold float32) Rectangle { var rec Rectangle getImageAlphaBorder(uintptr(unsafe.Pointer(&rec)), uintptr(unsafe.Pointer(&image)), threshold) return rec } // GetImageColor - Get image pixel color at (x, y) position func GetImageColor(image Image, x int32, y int32) color.RGBA { ret := getImageColor(uintptr(unsafe.Pointer(&image)), x, y) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ImageClearBackground - Clear image background with given color func ImageClearBackground(dst *Image, col color.RGBA) { imageClearBackground(dst, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawPixel - Draw pixel within an image func ImageDrawPixel(dst *Image, posX int32, posY int32, col color.RGBA) { imageDrawPixel(dst, posX, posY, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawPixelV - Draw pixel within an image (Vector version) func ImageDrawPixelV(dst *Image, position Vector2, col color.RGBA) { imageDrawPixelV(dst, *(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawLine - Draw line within an image func ImageDrawLine(dst *Image, startPosX int32, startPosY int32, endPosX int32, endPosY int32, col color.RGBA) { imageDrawLine(dst, startPosX, startPosY, endPosX, endPosY, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawLineV - Draw line within an image (Vector version) func ImageDrawLineV(dst *Image, start Vector2, end Vector2, col color.RGBA) { imageDrawLineV(dst, *(*uintptr)(unsafe.Pointer(&start)), *(*uintptr)(unsafe.Pointer(&end)), *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawCircle - Draw a filled circle within an image func ImageDrawCircle(dst *Image, centerX int32, centerY int32, radius int32, col color.RGBA) { imageDrawCircle(dst, centerX, centerY, radius, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawCircleV - Draw a filled circle within an image (Vector version) func ImageDrawCircleV(dst *Image, center Vector2, radius int32, col color.RGBA) { imageDrawCircleV(dst, *(*uintptr)(unsafe.Pointer(¢er)), radius, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawCircleLines - Draw circle outline within an image func ImageDrawCircleLines(dst *Image, centerX int32, centerY int32, radius int32, col color.RGBA) { imageDrawCircleLines(dst, centerX, centerY, radius, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawCircleLinesV - Draw circle outline within an image (Vector version) func ImageDrawCircleLinesV(dst *Image, center Vector2, radius int32, col color.RGBA) { imageDrawCircleLinesV(dst, *(*uintptr)(unsafe.Pointer(¢er)), radius, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawRectangle - Draw rectangle within an image func ImageDrawRectangle(dst *Image, posX int32, posY int32, width int32, height int32, col color.RGBA) { imageDrawRectangle(dst, posX, posY, width, height, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawRectangleV - Draw rectangle within an image (Vector version) func ImageDrawRectangleV(dst *Image, position Vector2, size Vector2, col color.RGBA) { imageDrawRectangleV(dst, *(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawRectangleRec - Draw rectangle within an image func ImageDrawRectangleRec(dst *Image, rec Rectangle, col color.RGBA) { imageDrawRectangleRec(dst, uintptr(unsafe.Pointer(&rec)), *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawRectangleLines - Draw rectangle lines within an image func ImageDrawRectangleLines(dst *Image, rec Rectangle, thick int, col color.RGBA) { imageDrawRectangleLines(dst, uintptr(unsafe.Pointer(&rec)), int32(thick), *(*uintptr)(unsafe.Pointer(&col))) } // ImageDraw - Draw a source image within a destination image (tint applied to source) func ImageDraw(dst *Image, src *Image, srcRec Rectangle, dstRec Rectangle, tint color.RGBA) { imageDraw(dst, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(&srcRec)), uintptr(unsafe.Pointer(&dstRec)), *(*uintptr)(unsafe.Pointer(&tint))) } // ImageDrawText - Draw text (using default font) within an image (destination) func ImageDrawText(dst *Image, posX int32, posY int32, text string, fontSize int32, col color.RGBA) { imageDrawText(dst, text, posX, posY, fontSize, *(*uintptr)(unsafe.Pointer(&col))) } // ImageDrawTextEx - Draw text (custom sprite font) within an image (destination) func ImageDrawTextEx(dst *Image, position Vector2, font Font, text string, fontSize float32, spacing float32, tint color.RGBA) { imageDrawTextEx(dst, uintptr(unsafe.Pointer(&font)), text, *(*uintptr)(unsafe.Pointer(&position)), fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) } // LoadTexture - Load texture from file into GPU memory (VRAM) func LoadTexture(fileName string) Texture2D { var texture Texture2D loadTexture(uintptr(unsafe.Pointer(&texture)), fileName) return texture } // LoadTextureFromImage - Load texture from image data func LoadTextureFromImage(image *Image) Texture2D { var texture Texture2D loadTextureFromImage(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(image))) return texture } // LoadTextureCubemap - Load cubemap from image, multiple image cubemap layouts supported func LoadTextureCubemap(image *Image, layout int32) Texture2D { var texture Texture2D loadTextureCubemap(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(image)), layout) return texture } // LoadRenderTexture - Load texture for rendering (framebuffer) func LoadRenderTexture(width int32, height int32) RenderTexture2D { var texture RenderTexture2D loadRenderTexture(uintptr(unsafe.Pointer(&texture)), width, height) return texture } // IsTextureReady - Check if a texture is ready func IsTextureReady(texture Texture2D) bool { return isTextureReady(uintptr(unsafe.Pointer(&texture))) } // UnloadTexture - Unload texture from GPU memory (VRAM) func UnloadTexture(texture Texture2D) { unloadTexture(uintptr(unsafe.Pointer(&texture))) } // IsRenderTextureReady - Check if a render texture is ready func IsRenderTextureReady(target RenderTexture2D) bool { return isRenderTextureReady(uintptr(unsafe.Pointer(&target))) } // UnloadRenderTexture - Unload render texture from GPU memory (VRAM) func UnloadRenderTexture(target RenderTexture2D) { unloadRenderTexture(uintptr(unsafe.Pointer(&target))) } // UpdateTexture - Update GPU texture with new data func UpdateTexture(texture Texture2D, pixels []color.RGBA) { updateTexture(uintptr(unsafe.Pointer(&texture)), unsafe.SliceData(pixels)) } // UpdateTextureRec - Update GPU texture rectangle with new data func UpdateTextureRec(texture Texture2D, rec Rectangle, pixels []color.RGBA) { updateTextureRec(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&rec)), unsafe.SliceData(pixels)) } // GenTextureMipmaps - Generate GPU mipmaps for a texture func GenTextureMipmaps(texture *Texture2D) { genTextureMipmaps(texture) } // SetTextureFilter - Set texture scaling filter mode func SetTextureFilter(texture Texture2D, filter TextureFilterMode) { setTextureFilter(uintptr(unsafe.Pointer(&texture)), int32(filter)) } // SetTextureWrap - Set texture wrapping mode func SetTextureWrap(texture Texture2D, wrap TextureWrapMode) { setTextureWrap(uintptr(unsafe.Pointer(&texture)), int32(wrap)) } // DrawTexture - Draw a Texture2D func DrawTexture(texture Texture2D, posX int32, posY int32, tint color.RGBA) { drawTexture(uintptr(unsafe.Pointer(&texture)), posX, posY, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextureV - Draw a Texture2D with position defined as Vector2 func DrawTextureV(texture Texture2D, position Vector2, tint color.RGBA) { drawTextureV(uintptr(unsafe.Pointer(&texture)), *(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextureEx - Draw a Texture2D with extended parameters func DrawTextureEx(texture Texture2D, position Vector2, rotation float32, scale float32, tint color.RGBA) { drawTextureEx(uintptr(unsafe.Pointer(&texture)), *(*uintptr)(unsafe.Pointer(&position)), rotation, scale, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextureRec - Draw a part of a texture defined by a rectangle func DrawTextureRec(texture Texture2D, source Rectangle, position Vector2, tint color.RGBA) { drawTextureRec(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&source)), *(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTexturePro - Draw a part of a texture defined by a rectangle with 'pro' parameters func DrawTexturePro(texture Texture2D, source Rectangle, dest Rectangle, origin Vector2, rotation float32, tint color.RGBA) { drawTexturePro(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&source)), uintptr(unsafe.Pointer(&dest)), *(*uintptr)(unsafe.Pointer(&origin)), rotation, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextureNPatch - Draws a texture (or part of it) that stretches or shrinks nicely func DrawTextureNPatch(texture Texture2D, nPatchInfo NPatchInfo, dest Rectangle, origin Vector2, rotation float32, tint color.RGBA) { drawTextureNPatch(uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&nPatchInfo)), uintptr(unsafe.Pointer(&dest)), *(*uintptr)(unsafe.Pointer(&origin)), rotation, *(*uintptr)(unsafe.Pointer(&tint))) } // Fade - Get color with alpha applied, alpha goes from 0.0f to 1.0f func Fade(col color.RGBA, alpha float32) color.RGBA { ret := fade(*(*uintptr)(unsafe.Pointer(&col)), alpha) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorToInt - Get hexadecimal value for a Color func ColorToInt(col color.RGBA) int32 { return colorToInt(*(*uintptr)(unsafe.Pointer(&col))) } // ColorNormalize - Get Color normalized as float [0..1] func ColorNormalize(col color.RGBA) Vector4 { var vector4 Vector4 colorNormalize(uintptr(unsafe.Pointer(&vector4)), *(*uintptr)(unsafe.Pointer(&col))) return vector4 } // ColorFromNormalized - Get Color from normalized values [0..1] func ColorFromNormalized(normalized Vector4) color.RGBA { ret := colorFromNormalized(*(*uintptr)(unsafe.Pointer(&normalized))) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorToHSV - Get HSV values for a Color, hue [0..360], saturation/value [0..1] func ColorToHSV(col color.RGBA) Vector3 { var vector3 Vector3 colorToHSV(uintptr(unsafe.Pointer(&vector3)), *(*uintptr)(unsafe.Pointer(&col))) return vector3 } // ColorFromHSV - Get a Color from HSV values, hue [0..360], saturation/value [0..1] func ColorFromHSV(hue float32, saturation float32, value float32) color.RGBA { ret := colorFromHSV(hue, saturation, value) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorTint - Get color multiplied with another color func ColorTint(col color.RGBA, tint color.RGBA) color.RGBA { ret := colorTint(*(*uintptr)(unsafe.Pointer(&col)), *(*uintptr)(unsafe.Pointer(&tint))) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorBrightness - Get color with brightness correction, brightness factor goes from -1.0f to 1.0f func ColorBrightness(col color.RGBA, factor float32) color.RGBA { ret := colorBrightness(*(*uintptr)(unsafe.Pointer(&col)), factor) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorContrast - Get color with contrast correction, contrast values between -1.0f and 1.0f func ColorContrast(col color.RGBA, contrast float32) color.RGBA { ret := colorContrast(*(*uintptr)(unsafe.Pointer(&col)), contrast) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorAlpha - Get color with alpha applied, alpha goes from 0.0f to 1.0f func ColorAlpha(col color.RGBA, alpha float32) color.RGBA { ret := colorAlpha(*(*uintptr)(unsafe.Pointer(&col)), alpha) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // ColorAlphaBlend - Get src alpha-blended into dst color with tint func ColorAlphaBlend(dst color.RGBA, src color.RGBA, tint color.RGBA) color.RGBA { ret := colorAlphaBlend(*(*uintptr)(unsafe.Pointer(&dst)), *(*uintptr)(unsafe.Pointer(&src)), *(*uintptr)(unsafe.Pointer(&tint))) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // GetColor - Get Color structure from hexadecimal value func GetColor(hexValue uint) color.RGBA { ret := getColor(uint32(hexValue)) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // GetPixelColor - Get Color from a source pixel pointer of certain format func GetPixelColor(srcPtr unsafe.Pointer, format int32) color.RGBA { ret := getPixelColor(srcPtr, format) return *(*color.RGBA)(unsafe.Pointer(&ret)) } // SetPixelColor - Set color formatted into destination pixel pointer func SetPixelColor(dstPtr unsafe.Pointer, col color.RGBA, format int32) { setPixelColor(dstPtr, *(*uintptr)(unsafe.Pointer(&col)), format) } // GetPixelDataSize - Get pixel data size in bytes for certain format func GetPixelDataSize(width int32, height int32, format int32) int32 { return getPixelDataSize(width, height, format) } // GetFontDefault - Get the default Font func GetFontDefault() Font { var font Font getFontDefault(uintptr(unsafe.Pointer(&font))) return font } // LoadFont - Load font from file into GPU memory (VRAM) func LoadFont(fileName string) Font { var font Font loadFont(uintptr(unsafe.Pointer(&font)), fileName) return font } // LoadFontEx - Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont func LoadFontEx(fileName string, fontSize int32, codepoints []rune, runesNumber ...int32) Font { var font Font codepointCount := int32(len(codepoints)) if len(runesNumber) > 0 { codepointCount = int32(runesNumber[0]) } loadFontEx(uintptr(unsafe.Pointer(&font)), fileName, fontSize, codepoints, codepointCount) return font } // LoadFontFromImage - Load font from Image (XNA style) func LoadFontFromImage(image Image, key color.RGBA, firstChar rune) Font { var font Font loadFontFromImage(uintptr(unsafe.Pointer(&font)), uintptr(unsafe.Pointer(&image)), *(*uintptr)(unsafe.Pointer(&key)), firstChar) return font } // LoadFontFromMemory - Load font from memory buffer, fileType refers to extension: i.e. '.ttf' func LoadFontFromMemory(fileType string, fileData []byte, fontSize int32, codepoints []rune) Font { var font Font dataSize := int32(len(fileData)) codepointCount := int32(len(codepoints)) loadFontFromMemory(uintptr(unsafe.Pointer(&font)), fileType, fileData, dataSize, fontSize, codepoints, codepointCount) return font } // IsFontReady - Check if a font is ready func IsFontReady(font Font) bool { return isFontReady(uintptr(unsafe.Pointer(&font))) } // LoadFontData - Load font data for further use func LoadFontData(fileData []byte, fontSize int32, codepoints []rune, typ int32) []GlyphInfo { dataSize := int32(len(fileData)) codepointCount := int32(len(codepoints)) ret := loadFontData(fileData, dataSize, fontSize, codepoints, codepointCount, typ) return unsafe.Slice(ret, codepointCount) } // GenImageFontAtlas - Generate image font atlas using chars info func GenImageFontAtlas(glyphs []GlyphInfo, glyphRecs []*Rectangle, fontSize int32, padding int32, packMethod int32) Image { var image Image glyphCount := int32(len(glyphs)) genImageFontAtlas(uintptr(unsafe.Pointer(&image)), unsafe.SliceData(glyphs), glyphRecs, glyphCount, fontSize, padding, packMethod) return image } // UnloadFontData - Unload font chars info data (RAM) func UnloadFontData(glyphs []GlyphInfo) { glyphCount := int32(len(glyphs)) unloadFontData(unsafe.SliceData(glyphs), glyphCount) } // UnloadFont - Unload font from GPU memory (VRAM) func UnloadFont(font Font) { unloadFont(uintptr(unsafe.Pointer(&font))) } // DrawFPS - Draw current FPS func DrawFPS(posX int32, posY int32) { drawFPS(posX, posY) } // DrawText - Draw text (using default font) func DrawText(text string, posX int32, posY int32, fontSize int32, col color.RGBA) { drawText(text, posX, posY, fontSize, *(*uintptr)(unsafe.Pointer(&col))) } // DrawTextEx - Draw text using font and additional parameters func DrawTextEx(font Font, text string, position Vector2, fontSize float32, spacing float32, tint color.RGBA) { drawTextEx(uintptr(unsafe.Pointer(&font)), text, *(*uintptr)(unsafe.Pointer(&position)), fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextPro - Draw text using Font and pro parameters (rotation) func DrawTextPro(font Font, text string, position Vector2, origin Vector2, rotation float32, fontSize float32, spacing float32, tint color.RGBA) { drawTextPro(uintptr(unsafe.Pointer(&font)), text, *(*uintptr)(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&origin)), rotation, fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextCodepoint - Draw one character (codepoint) func DrawTextCodepoint(font Font, codepoint rune, position Vector2, fontSize float32, tint color.RGBA) { drawTextCodepoint(uintptr(unsafe.Pointer(&font)), codepoint, *(*uintptr)(unsafe.Pointer(&position)), fontSize, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawTextCodepoints - Draw multiple character (codepoint) func DrawTextCodepoints(font Font, codepoints []rune, position Vector2, fontSize float32, spacing float32, tint color.RGBA) { codepointCount := int32(len(codepoints)) drawTextCodepoints(uintptr(unsafe.Pointer(&font)), codepoints, codepointCount, *(*uintptr)(unsafe.Pointer(&position)), fontSize, spacing, *(*uintptr)(unsafe.Pointer(&tint))) } // SetTextLineSpacing - Set vertical line spacing when drawing with line-breaks func SetTextLineSpacing(spacing int) { setTextLineSpacing(int32(spacing)) } // MeasureText - Measure string width for default font func MeasureText(text string, fontSize int32) int32 { return measureText(text, fontSize) } // MeasureTextEx - Measure string size for Font func MeasureTextEx(font Font, text string, fontSize float32, spacing float32) Vector2 { ret := measureTextEx(uintptr(unsafe.Pointer(&font)), text, fontSize, spacing) return *(*Vector2)(unsafe.Pointer(&ret)) } // GetGlyphIndex - Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found func GetGlyphIndex(font Font, codepoint rune) int32 { return getGlyphIndex(uintptr(unsafe.Pointer(&font)), codepoint) } // GetGlyphInfo - Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found func GetGlyphInfo(font Font, codepoint rune) GlyphInfo { var glyphInfo GlyphInfo getGlyphInfo(uintptr(unsafe.Pointer(&glyphInfo)), uintptr(unsafe.Pointer(&font)), codepoint) return glyphInfo } // GetGlyphAtlasRec - Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found func GetGlyphAtlasRec(font Font, codepoint rune) Rectangle { var rec Rectangle getGlyphAtlasRec(uintptr(unsafe.Pointer(&rec)), uintptr(unsafe.Pointer(&font)), codepoint) return rec } // DrawLine3D - Draw a line in 3D world space func DrawLine3D(startPos Vector3, endPos Vector3, col color.RGBA) { drawLine3D(uintptr(unsafe.Pointer(&startPos)), uintptr(unsafe.Pointer(&endPos)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawPoint3D - Draw a point in 3D space, actually a small line func DrawPoint3D(position Vector3, col color.RGBA) { drawPoint3D(uintptr(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawCircle3D - Draw a circle in 3D world space func DrawCircle3D(center Vector3, radius float32, rotationAxis Vector3, rotationAngle float32, col color.RGBA) { drawCircle3D(uintptr(unsafe.Pointer(¢er)), radius, uintptr(unsafe.Pointer(&rotationAxis)), rotationAngle, *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangle3D - Draw a color-filled triangle (vertex in counter-clockwise order!) func DrawTriangle3D(v1 Vector3, v2 Vector3, v3 Vector3, col color.RGBA) { drawTriangle3D(uintptr(unsafe.Pointer(&v1)), uintptr(unsafe.Pointer(&v2)), uintptr(unsafe.Pointer(&v3)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawTriangleStrip3D - Draw a triangle strip defined by points func DrawTriangleStrip3D(points []Vector3, col color.RGBA) { pointCount := int32(len(points)) drawTriangleStrip3D(unsafe.SliceData(points), pointCount, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCube - Draw cube func DrawCube(position Vector3, width float32, height float32, length float32, col color.RGBA) { drawCube(uintptr(unsafe.Pointer(&position)), width, height, length, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCubeV - Draw cube (Vector version) func DrawCubeV(position Vector3, size Vector3, col color.RGBA) { drawCubeV(uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawCubeWires - Draw cube wires func DrawCubeWires(position Vector3, width float32, height float32, length float32, col color.RGBA) { drawCubeWires(uintptr(unsafe.Pointer(&position)), width, height, length, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCubeWiresV - Draw cube wires (Vector version) func DrawCubeWiresV(position Vector3, size Vector3, col color.RGBA) { drawCubeWiresV(uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawSphere - Draw sphere func DrawSphere(centerPos Vector3, radius float32, col color.RGBA) { drawSphere(uintptr(unsafe.Pointer(¢erPos)), radius, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSphereEx - Draw sphere with extended parameters func DrawSphereEx(centerPos Vector3, radius float32, rings int32, slices int32, col color.RGBA) { drawSphereEx(uintptr(unsafe.Pointer(¢erPos)), radius, rings, slices, *(*uintptr)(unsafe.Pointer(&col))) } // DrawSphereWires - Draw sphere wires func DrawSphereWires(centerPos Vector3, radius float32, rings int32, slices int32, col color.RGBA) { drawSphereWires(uintptr(unsafe.Pointer(¢erPos)), radius, rings, slices, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCylinder - Draw a cylinder/cone func DrawCylinder(position Vector3, radiusTop float32, radiusBottom float32, height float32, slices int32, col color.RGBA) { drawCylinder(uintptr(unsafe.Pointer(&position)), radiusTop, radiusBottom, height, slices, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCylinderEx - Draw a cylinder with base at startPos and top at endPos func DrawCylinderEx(startPos Vector3, endPos Vector3, startRadius float32, endRadius float32, sides int32, col color.RGBA) { drawCylinderEx(uintptr(unsafe.Pointer(&startPos)), uintptr(unsafe.Pointer(&endPos)), startRadius, endRadius, sides, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCylinderWires - Draw a cylinder/cone wires func DrawCylinderWires(position Vector3, radiusTop float32, radiusBottom float32, height float32, slices int32, col color.RGBA) { drawCylinderWires(uintptr(unsafe.Pointer(&position)), radiusTop, radiusBottom, height, slices, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCylinderWiresEx - Draw a cylinder wires with base at startPos and top at endPos func DrawCylinderWiresEx(startPos Vector3, endPos Vector3, startRadius float32, endRadius float32, sides int32, col color.RGBA) { drawCylinderWiresEx(uintptr(unsafe.Pointer(&startPos)), uintptr(unsafe.Pointer(&endPos)), startRadius, endRadius, sides, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCapsule - Draw a capsule with the center of its sphere caps at startPos and endPos func DrawCapsule(startPos Vector3, endPos Vector3, radius float32, slices int32, rings int32, col color.RGBA) { drawCapsule(uintptr(unsafe.Pointer(&startPos)), uintptr(unsafe.Pointer(&endPos)), radius, slices, rings, *(*uintptr)(unsafe.Pointer(&col))) } // DrawCapsuleWires - Draw capsule wireframe with the center of its sphere caps at startPos and endPos func DrawCapsuleWires(startPos Vector3, endPos Vector3, radius float32, slices int32, rings int32, col color.RGBA) { drawCapsuleWires(uintptr(unsafe.Pointer(&startPos)), uintptr(unsafe.Pointer(&endPos)), radius, slices, rings, *(*uintptr)(unsafe.Pointer(&col))) } // DrawPlane - Draw a plane XZ func DrawPlane(centerPos Vector3, size Vector2, col color.RGBA) { drawPlane(uintptr(unsafe.Pointer(¢erPos)), *(*uintptr)(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawRay - Draw a ray line func DrawRay(ray Ray, col color.RGBA) { drawRay(uintptr(unsafe.Pointer(&ray)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawGrid - Draw a grid (centered at (0, 0, 0)) func DrawGrid(slices int32, spacing float32) { drawGrid(slices, spacing) } // LoadModel - Load model from files (meshes and materials) func LoadModel(fileName string) Model { var model Model loadModel(uintptr(unsafe.Pointer(&model)), fileName) return model } // LoadModelFromMesh - Load model from generated mesh (default material) func LoadModelFromMesh(mesh Mesh) Model { var model Model loadModelFromMesh(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&mesh))) return model } // IsModelReady - Check if a model is ready func IsModelReady(model Model) bool { return isModelReady(uintptr(unsafe.Pointer(&model))) } // UnloadModel - Unload model (including meshes) from memory (RAM and/or VRAM) func UnloadModel(model Model) { unloadModel(uintptr(unsafe.Pointer(&model))) } // GetModelBoundingBox - Compute model bounding box limits (considers all meshes) func GetModelBoundingBox(model Model) BoundingBox { var boundingBox BoundingBox getModelBoundingBox(uintptr(unsafe.Pointer(&boundingBox)), uintptr(unsafe.Pointer(&model))) return boundingBox } // DrawModel - Draw a model (with texture if set) func DrawModel(model Model, position Vector3, scale float32, tint color.RGBA) { drawModel(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&position)), scale, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawModelEx - Draw a model with extended parameters func DrawModelEx(model Model, position Vector3, rotationAxis Vector3, rotationAngle float32, scale Vector3, tint color.RGBA) { drawModelEx(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&rotationAxis)), rotationAngle, uintptr(unsafe.Pointer(&scale)), *(*uintptr)(unsafe.Pointer(&tint))) } // DrawModelWires - Draw a model wires (with texture if set) func DrawModelWires(model Model, position Vector3, scale float32, tint color.RGBA) { drawModelWires(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&position)), scale, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawModelWiresEx - Draw a model wires (with texture if set) with extended parameters func DrawModelWiresEx(model Model, position Vector3, rotationAxis Vector3, rotationAngle float32, scale Vector3, tint color.RGBA) { drawModelWiresEx(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&rotationAxis)), rotationAngle, uintptr(unsafe.Pointer(&scale)), *(*uintptr)(unsafe.Pointer(&tint))) } // DrawBoundingBox - Draw bounding box (wires) func DrawBoundingBox(box BoundingBox, col color.RGBA) { drawBoundingBox(uintptr(unsafe.Pointer(&box)), *(*uintptr)(unsafe.Pointer(&col))) } // DrawBillboard - Draw a billboard texture func DrawBillboard(camera Camera, texture Texture2D, position Vector3, size float32, tint color.RGBA) { drawBillboard(uintptr(unsafe.Pointer(&camera)), uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&position)), size, *(*uintptr)(unsafe.Pointer(&tint))) } // DrawBillboardRec - Draw a billboard texture defined by source func DrawBillboardRec(camera Camera, texture Texture2D, source Rectangle, position Vector3, size Vector2, tint color.RGBA) { drawBillboardRec(uintptr(unsafe.Pointer(&camera)), uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&source)), uintptr(unsafe.Pointer(&position)), *(*uintptr)(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&tint))) } // DrawBillboardPro - Draw a billboard texture defined by source and rotation func DrawBillboardPro(camera Camera, texture Texture2D, source Rectangle, position Vector3, up Vector3, size Vector2, origin Vector2, rotation float32, tint color.RGBA) { drawBillboardPro(uintptr(unsafe.Pointer(&camera)), uintptr(unsafe.Pointer(&texture)), uintptr(unsafe.Pointer(&source)), uintptr(unsafe.Pointer(&position)), uintptr(unsafe.Pointer(&up)), *(*uintptr)(unsafe.Pointer(&size)), *(*uintptr)(unsafe.Pointer(&origin)), rotation, *(*uintptr)(unsafe.Pointer(&tint))) } // UploadMesh - Upload mesh vertex data in GPU and provide VAO/VBO ids func UploadMesh(mesh *Mesh, dynamic bool) { uploadMesh(mesh, dynamic) } // UpdateMeshBuffer - Update mesh vertex data in GPU for a specific buffer index func UpdateMeshBuffer(mesh Mesh, index int32, data []byte, offset int) { dataSize := int32(len(data)) updateMeshBuffer(uintptr(unsafe.Pointer(&mesh)), index, data, dataSize, int32(offset)) } // UnloadMesh - Unload mesh data from CPU and GPU func UnloadMesh(mesh *Mesh) { unloadMesh(uintptr(unsafe.Pointer(mesh))) } // DrawMesh - Draw a 3d mesh with material and transform func DrawMesh(mesh Mesh, material Material, transform Matrix) { drawMesh(uintptr(unsafe.Pointer(&mesh)), uintptr(unsafe.Pointer(&material)), uintptr(unsafe.Pointer(&transform))) } // DrawMeshInstanced - Draw multiple mesh instances with material and different transforms func DrawMeshInstanced(mesh Mesh, material Material, transforms []Matrix, instances int32) { drawMeshInstanced(uintptr(unsafe.Pointer(&mesh)), uintptr(unsafe.Pointer(&material)), transforms, instances) } // ExportMesh - Export mesh data to file, returns true on success func ExportMesh(mesh Mesh, fileName string) bool { return exportMesh(uintptr(unsafe.Pointer(&mesh)), fileName) } // GetMeshBoundingBox - Compute mesh bounding box limits func GetMeshBoundingBox(mesh Mesh) BoundingBox { var boundingBox BoundingBox getMeshBoundingBox(uintptr(unsafe.Pointer(&boundingBox)), uintptr(unsafe.Pointer(&mesh))) return boundingBox } // GenMeshTangents - Compute mesh tangents func GenMeshTangents(mesh *Mesh) { genMeshTangents(mesh) } // GenMeshPoly - Generate polygonal mesh func GenMeshPoly(sides int, radius float32) Mesh { var mesh Mesh genMeshPoly(uintptr(unsafe.Pointer(&mesh)), int32(sides), radius) return mesh } // GenMeshPlane - Generate plane mesh (with subdivisions) func GenMeshPlane(width float32, length float32, resX int, resZ int) Mesh { var mesh Mesh genMeshPlane(uintptr(unsafe.Pointer(&mesh)), width, length, int32(resX), int32(resZ)) return mesh } // GenMeshCube - Generate cuboid mesh func GenMeshCube(width float32, height float32, length float32) Mesh { var mesh Mesh genMeshCube(uintptr(unsafe.Pointer(&mesh)), width, height, length) return mesh } // GenMeshSphere - Generate sphere mesh (standard sphere) func GenMeshSphere(radius float32, rings int, slices int) Mesh { var mesh Mesh genMeshSphere(uintptr(unsafe.Pointer(&mesh)), radius, int32(rings), int32(slices)) return mesh } // GenMeshHemiSphere - Generate half-sphere mesh (no bottom cap) func GenMeshHemiSphere(radius float32, rings int, slices int) Mesh { var mesh Mesh genMeshHemiSphere(uintptr(unsafe.Pointer(&mesh)), radius, int32(rings), int32(slices)) return mesh } // GenMeshCylinder - Generate cylinder mesh func GenMeshCylinder(radius float32, height float32, slices int) Mesh { var mesh Mesh genMeshCylinder(uintptr(unsafe.Pointer(&mesh)), radius, height, int32(slices)) return mesh } // GenMeshCone - Generate cone/pyramid mesh func GenMeshCone(radius float32, height float32, slices int) Mesh { var mesh Mesh genMeshCone(uintptr(unsafe.Pointer(&mesh)), radius, height, int32(slices)) return mesh } // GenMeshTorus - Generate torus mesh func GenMeshTorus(radius float32, size float32, radSeg int, sides int) Mesh { var mesh Mesh genMeshTorus(uintptr(unsafe.Pointer(&mesh)), radius, size, int32(radSeg), int32(sides)) return mesh } // GenMeshKnot - Generate trefoil knot mesh func GenMeshKnot(radius float32, size float32, radSeg int, sides int) Mesh { var mesh Mesh genMeshKnot(uintptr(unsafe.Pointer(&mesh)), radius, size, int32(radSeg), int32(sides)) return mesh } // GenMeshHeightmap - Generate heightmap mesh from image data func GenMeshHeightmap(heightmap Image, size Vector3) Mesh { var mesh Mesh genMeshHeightmap(uintptr(unsafe.Pointer(&mesh)), uintptr(unsafe.Pointer(&heightmap)), uintptr(unsafe.Pointer(&size))) return mesh } // GenMeshCubicmap - Generate cubes-based map mesh from image data func GenMeshCubicmap(cubicmap Image, cubeSize Vector3) Mesh { var mesh Mesh genMeshCubicmap(uintptr(unsafe.Pointer(&mesh)), uintptr(unsafe.Pointer(&cubicmap)), uintptr(unsafe.Pointer(&cubeSize))) return mesh } // LoadMaterials - Load materials from model file func LoadMaterials(fileName string) []Material { var materialCount int32 ret := loadMaterials(fileName, &materialCount) return unsafe.Slice(ret, materialCount) } // LoadMaterialDefault - Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps) func LoadMaterialDefault() Material { var material Material loadMaterialDefault(uintptr(unsafe.Pointer(&material))) return material } // IsMaterialReady - Check if a material is ready func IsMaterialReady(material Material) bool { return isMaterialReady(uintptr(unsafe.Pointer(&material))) } // UnloadMaterial - Unload material from GPU memory (VRAM) func UnloadMaterial(material Material) { unloadMaterial(uintptr(unsafe.Pointer(&material))) } // SetMaterialTexture - Set texture for a material map type (MATERIAL_MAP_DIFFUSE, MATERIAL_MAP_SPECULAR...) func SetMaterialTexture(material *Material, mapType int32, texture Texture2D) { setMaterialTexture(material, mapType, uintptr(unsafe.Pointer(&texture))) } // SetModelMeshMaterial - Set material for a mesh func SetModelMeshMaterial(model *Model, meshId int32, materialId int32) { setModelMeshMaterial(model, meshId, materialId) } // LoadModelAnimations - Load model animations from file func LoadModelAnimations(fileName string) []ModelAnimation { var animCount int32 ret := loadModelAnimations(fileName, &animCount) return unsafe.Slice(ret, animCount) } // UpdateModelAnimation - Update model animation pose func UpdateModelAnimation(model Model, anim ModelAnimation, frame int32) { updateModelAnimation(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&anim)), frame) } // UnloadModelAnimation - Unload animation data func UnloadModelAnimation(anim ModelAnimation) { unloadModelAnimation(uintptr(unsafe.Pointer(&anim))) } // UnloadModelAnimations - Unload animation array data func UnloadModelAnimations(animations []ModelAnimation) { animCount := int32(len(animations)) unloadModelAnimations(unsafe.SliceData(animations), animCount) } // IsModelAnimationValid - Check model animation skeleton match func IsModelAnimationValid(model Model, anim ModelAnimation) bool { return isModelAnimationValid(uintptr(unsafe.Pointer(&model)), uintptr(unsafe.Pointer(&anim))) } // CheckCollisionSpheres - Check collision between two spheres func CheckCollisionSpheres(center1 Vector3, radius1 float32, center2 Vector3, radius2 float32) bool { return checkCollisionSpheres(uintptr(unsafe.Pointer(¢er1)), radius1, uintptr(unsafe.Pointer(¢er2)), radius2) } // CheckCollisionBoxes - Check collision between two bounding boxes func CheckCollisionBoxes(box1 BoundingBox, box2 BoundingBox) bool { return checkCollisionBoxes(uintptr(unsafe.Pointer(&box1)), uintptr(unsafe.Pointer(&box2))) } // CheckCollisionBoxSphere - Check collision between box and sphere func CheckCollisionBoxSphere(box BoundingBox, center Vector3, radius float32) bool { return checkCollisionBoxSphere(uintptr(unsafe.Pointer(&box)), uintptr(unsafe.Pointer(¢er)), radius) } // GetRayCollisionSphere - Get collision info between ray and sphere func GetRayCollisionSphere(ray Ray, center Vector3, radius float32) RayCollision { var rayCollision RayCollision getRayCollisionSphere(uintptr(unsafe.Pointer(&rayCollision)), uintptr(unsafe.Pointer(&ray)), uintptr(unsafe.Pointer(¢er)), radius) return rayCollision } // GetRayCollisionBox - Get collision info between ray and box func GetRayCollisionBox(ray Ray, box BoundingBox) RayCollision { var rayCollision RayCollision getRayCollisionBox(uintptr(unsafe.Pointer(&rayCollision)), uintptr(unsafe.Pointer(&ray)), uintptr(unsafe.Pointer(&box))) return rayCollision } // GetRayCollisionMesh - Get collision info between ray and mesh func GetRayCollisionMesh(ray Ray, mesh Mesh, transform Matrix) RayCollision { var rayCollision RayCollision getRayCollisionMesh(uintptr(unsafe.Pointer(&rayCollision)), uintptr(unsafe.Pointer(&ray)), uintptr(unsafe.Pointer(&mesh)), uintptr(unsafe.Pointer(&transform))) return rayCollision } // GetRayCollisionTriangle - Get collision info between ray and triangle func GetRayCollisionTriangle(ray Ray, p1 Vector3, p2 Vector3, p3 Vector3) RayCollision { var rayCollision RayCollision getRayCollisionTriangle(uintptr(unsafe.Pointer(&rayCollision)), uintptr(unsafe.Pointer(&ray)), uintptr(unsafe.Pointer(&p1)), uintptr(unsafe.Pointer(&p2)), uintptr(unsafe.Pointer(&p3))) return rayCollision } // GetRayCollisionQuad - Get collision info between ray and quad func GetRayCollisionQuad(ray Ray, p1 Vector3, p2 Vector3, p3 Vector3, p4 Vector3) RayCollision { var rayCollision RayCollision getRayCollisionQuad(uintptr(unsafe.Pointer(&rayCollision)), uintptr(unsafe.Pointer(&ray)), uintptr(unsafe.Pointer(&p1)), uintptr(unsafe.Pointer(&p2)), uintptr(unsafe.Pointer(&p3)), uintptr(unsafe.Pointer(&p4))) return rayCollision } // InitAudioDevice - Initialize audio device and context func InitAudioDevice() { initAudioDevice() } // CloseAudioDevice - Close the audio device and context func CloseAudioDevice() { closeAudioDevice() } // IsAudioDeviceReady - Check if audio device has been initialized successfully func IsAudioDeviceReady() bool { return isAudioDeviceReady() } // SetMasterVolume - Set master volume (listener) func SetMasterVolume(volume float32) { setMasterVolume(volume) } // GetMasterVolume - Get master volume (listener) func GetMasterVolume() float32 { return getMasterVolume() } // LoadWave - Load wave data from file func LoadWave(fileName string) Wave { var wave Wave loadWave(uintptr(unsafe.Pointer(&wave)), fileName) return wave } // LoadWaveFromMemory - Load wave from memory buffer, fileType refers to extension: i.e. '.wav' func LoadWaveFromMemory(fileType string, fileData []byte, dataSize int32) Wave { var wave Wave loadWaveFromMemory(uintptr(unsafe.Pointer(&wave)), fileType, fileData, dataSize) return wave } // IsWaveReady - Checks if wave data is ready func IsWaveReady(wave Wave) bool { return isWaveReady(uintptr(unsafe.Pointer(&wave))) } // LoadSound - Load sound from file func LoadSound(fileName string) Sound { var sound Sound loadSound(uintptr(unsafe.Pointer(&sound)), fileName) return sound } // LoadSoundFromWave - Load sound from wave data func LoadSoundFromWave(wave Wave) Sound { var sound Sound loadSoundFromWave(uintptr(unsafe.Pointer(&sound)), uintptr(unsafe.Pointer(&wave))) return sound } // LoadSoundAlias - Create a new sound that shares the same sample data as the source sound, does not own the sound data func LoadSoundAlias(source Sound) Sound { var sound Sound loadSoundAlias(uintptr(unsafe.Pointer(&sound)), uintptr(unsafe.Pointer(&source))) return sound } // IsSoundReady - Checks if a sound is ready func IsSoundReady(sound Sound) bool { return isSoundReady(uintptr(unsafe.Pointer(&sound))) } // UpdateSound - Update sound buffer with new data func UpdateSound(sound Sound, data []byte, sampleCount int32) { updateSound(uintptr(unsafe.Pointer(&sound)), data, sampleCount) } // UnloadWave - Unload wave data func UnloadWave(wave Wave) { unloadWave(uintptr(unsafe.Pointer(&wave))) } // UnloadSound - Unload sound func UnloadSound(sound Sound) { unloadSound(uintptr(unsafe.Pointer(&sound))) } // UnloadSoundAlias - Unload a sound alias (does not deallocate sample data) func UnloadSoundAlias(alias Sound) { unloadSoundAlias(uintptr(unsafe.Pointer(&alias))) } // ExportWave - Export wave data to file, returns true on success func ExportWave(wave Wave, fileName string) bool { return exportWave(uintptr(unsafe.Pointer(&wave)), fileName) } // PlaySound - Play a sound func PlaySound(sound Sound) { playSound(uintptr(unsafe.Pointer(&sound))) } // StopSound - Stop playing a sound func StopSound(sound Sound) { stopSound(uintptr(unsafe.Pointer(&sound))) } // PauseSound - Pause a sound func PauseSound(sound Sound) { pauseSound(uintptr(unsafe.Pointer(&sound))) } // ResumeSound - Resume a paused sound func ResumeSound(sound Sound) { resumeSound(uintptr(unsafe.Pointer(&sound))) } // IsSoundPlaying - Check if a sound is currently playing func IsSoundPlaying(sound Sound) bool { return isSoundPlaying(uintptr(unsafe.Pointer(&sound))) } // SetSoundVolume - Set volume for a sound (1.0 is max level) func SetSoundVolume(sound Sound, volume float32) { setSoundVolume(uintptr(unsafe.Pointer(&sound)), volume) } // SetSoundPitch - Set pitch for a sound (1.0 is base level) func SetSoundPitch(sound Sound, pitch float32) { setSoundPitch(uintptr(unsafe.Pointer(&sound)), pitch) } // SetSoundPan - Set pan for a sound (0.5 is center) func SetSoundPan(sound Sound, pan float32) { setSoundPan(uintptr(unsafe.Pointer(&sound)), pan) } // WaveCopy - Copy a wave to a new wave func WaveCopy(wave Wave) Wave { var copy Wave waveCopy(uintptr(unsafe.Pointer(©)), uintptr(unsafe.Pointer(&wave))) return copy } // WaveCrop - Crop a wave to defined samples range func WaveCrop(wave *Wave, initSample int32, finalSample int32) { waveCrop(wave, initSample, finalSample) } // WaveFormat - Convert wave data to desired format func WaveFormat(wave *Wave, sampleRate int32, sampleSize int32, channels int32) { waveFormat(wave, sampleRate, sampleRate, channels) } // LoadWaveSamples - Load samples data from wave as a 32bit float data array func LoadWaveSamples(wave Wave) []float32 { ret := loadWaveSamples(uintptr(unsafe.Pointer(&wave))) return unsafe.Slice(ret, wave.FrameCount*wave.Channels) } // UnloadWaveSamples - Unload samples data loaded with LoadWaveSamples() func UnloadWaveSamples(samples []float32) { unloadWaveSamples(samples) } // LoadMusicStream - Load music stream from file func LoadMusicStream(fileName string) Music { var music Music loadMusicStream(uintptr(unsafe.Pointer(&music)), fileName) return music } // LoadMusicStreamFromMemory - Load music stream from data func LoadMusicStreamFromMemory(fileType string, data []byte, dataSize int32) Music { var music Music loadMusicStreamFromMemory(uintptr(unsafe.Pointer(&music)), fileType, data, dataSize) return music } // IsMusicReady - Checks if a music stream is ready func IsMusicReady(music Music) bool { return isMusicReady(uintptr(unsafe.Pointer(&music))) } // UnloadMusicStream - Unload music stream func UnloadMusicStream(music Music) { unloadMusicStream(uintptr(unsafe.Pointer(&music))) } // PlayMusicStream - Start music playing func PlayMusicStream(music Music) { playMusicStream(uintptr(unsafe.Pointer(&music))) } // IsMusicStreamPlaying - Check if music is playing func IsMusicStreamPlaying(music Music) bool { return isMusicStreamPlaying(uintptr(unsafe.Pointer(&music))) } // UpdateMusicStream - Updates buffers for music streaming func UpdateMusicStream(music Music) { updateMusicStream(uintptr(unsafe.Pointer(&music))) } // StopMusicStream - Stop music playing func StopMusicStream(music Music) { stopMusicStream(uintptr(unsafe.Pointer(&music))) } // PauseMusicStream - Pause music playing func PauseMusicStream(music Music) { pauseMusicStream(uintptr(unsafe.Pointer(&music))) } // ResumeMusicStream - Resume playing paused music func ResumeMusicStream(music Music) { resumeMusicStream(uintptr(unsafe.Pointer(&music))) } // SeekMusicStream - Seek music to a position (in seconds) func SeekMusicStream(music Music, position float32) { seekMusicStream(uintptr(unsafe.Pointer(&music)), position) } // SetMusicVolume - Set volume for music (1.0 is max level) func SetMusicVolume(music Music, volume float32) { setMusicVolume(uintptr(unsafe.Pointer(&music)), volume) } // SetMusicPitch - Set pitch for a music (1.0 is base level) func SetMusicPitch(music Music, pitch float32) { setMusicPitch(uintptr(unsafe.Pointer(&music)), pitch) } // SetMusicPan - Set pan for a music (0.5 is center) func SetMusicPan(music Music, pan float32) { setMusicPan(uintptr(unsafe.Pointer(&music)), pan) } // GetMusicTimeLength - Get music time length (in seconds) func GetMusicTimeLength(music Music) float32 { return getMusicTimeLength(uintptr(unsafe.Pointer(&music))) } // GetMusicTimePlayed - Get current music time played (in seconds) func GetMusicTimePlayed(music Music) float32 { return getMusicTimePlayed(uintptr(unsafe.Pointer(&music))) } // LoadAudioStream - Load audio stream (to stream raw audio pcm data) func LoadAudioStream(sampleRate uint32, sampleSize uint32, channels uint32) AudioStream { var audioStream AudioStream loadAudioStream(uintptr(unsafe.Pointer(&audioStream)), sampleRate, sampleSize, channels) return audioStream } // IsAudioStreamReady - Checks if an audio stream is ready func IsAudioStreamReady(stream AudioStream) bool { return isAudioStreamReady(uintptr(unsafe.Pointer(&stream))) } // UnloadAudioStream - Unload audio stream and free memory func UnloadAudioStream(stream AudioStream) { unloadAudioStream(uintptr(unsafe.Pointer(&stream))) } // UpdateAudioStream - Update audio stream buffers with data func UpdateAudioStream(stream AudioStream, data []float32) { frameCount := int32(len(data)) updateAudioStream(uintptr(unsafe.Pointer(&stream)), data, frameCount) } // IsAudioStreamProcessed - Check if any audio stream buffers requires refill func IsAudioStreamProcessed(stream AudioStream) bool { return isAudioStreamProcessed(uintptr(unsafe.Pointer(&stream))) } // PlayAudioStream - Play audio stream func PlayAudioStream(stream AudioStream) { playAudioStream(uintptr(unsafe.Pointer(&stream))) } // PauseAudioStream - Pause audio stream func PauseAudioStream(stream AudioStream) { pauseAudioStream(uintptr(unsafe.Pointer(&stream))) } // ResumeAudioStream - Resume audio stream func ResumeAudioStream(stream AudioStream) { resumeAudioStream(uintptr(unsafe.Pointer(&stream))) } // IsAudioStreamPlaying - Check if audio stream is playing func IsAudioStreamPlaying(stream AudioStream) bool { return isAudioStreamPlaying(uintptr(unsafe.Pointer(&stream))) } // StopAudioStream - Stop audio stream func StopAudioStream(stream AudioStream) { stopAudioStream(uintptr(unsafe.Pointer(&stream))) } // SetAudioStreamVolume - Set volume for audio stream (1.0 is max level) func SetAudioStreamVolume(stream AudioStream, volume float32) { setAudioStreamVolume(uintptr(unsafe.Pointer(&stream)), volume) } // SetAudioStreamPitch - Set pitch for audio stream (1.0 is base level) func SetAudioStreamPitch(stream AudioStream, pitch float32) { setAudioStreamPitch(uintptr(unsafe.Pointer(&stream)), pitch) } // SetAudioStreamPan - Set pan for audio stream (0.5 is centered) func SetAudioStreamPan(stream AudioStream, pan float32) { setAudioStreamPan(uintptr(unsafe.Pointer(&stream)), pan) } // SetAudioStreamBufferSizeDefault - Default size for new audio streams func SetAudioStreamBufferSizeDefault(size int32) { setAudioStreamBufferSizeDefault(size) } // SetAudioStreamCallback - Audio thread callback to request new data func SetAudioStreamCallback(stream AudioStream, callback AudioCallback) { fn := purego.NewCallback(func(bufferData unsafe.Pointer, frames int32) uintptr { callback(unsafe.Slice((*float32)(bufferData), frames), int(frames)) return 0 }) setAudioStreamCallback(uintptr(unsafe.Pointer(&stream)), fn) } // AttachAudioStreamProcessor - Attach audio stream processor to stream, receives the samples as s func AttachAudioStreamProcessor(stream AudioStream, processor AudioCallback) { fn := purego.NewCallback(func(bufferData unsafe.Pointer, frames int32) uintptr { processor(unsafe.Slice((*float32)(bufferData), frames), int(frames)) return 0 }) attachAudioStreamProcessor(uintptr(unsafe.Pointer(&stream)), fn) } // DetachAudioStreamProcessor - Detach audio stream processor from stream func DetachAudioStreamProcessor(stream AudioStream, processor AudioCallback) { fn := purego.NewCallback(func(bufferData unsafe.Pointer, frames int32) uintptr { processor(unsafe.Slice((*float32)(bufferData), frames), int(frames)) return 0 }) detachAudioStreamProcessor(uintptr(unsafe.Pointer(&stream)), fn) } // AttachAudioMixedProcessor - Attach audio stream processor to the entire audio pipeline, receives the samples as s func AttachAudioMixedProcessor(processor AudioCallback) { fn := purego.NewCallback(func(bufferData unsafe.Pointer, frames int32) uintptr { processor(unsafe.Slice((*float32)(bufferData), frames), int(frames)) return 0 }) attachAudioMixedProcessor(fn) } // DetachAudioMixedProcessor - Detach audio stream processor from the entire audio pipeline func DetachAudioMixedProcessor(processor AudioCallback) { fn := purego.NewCallback(func(bufferData unsafe.Pointer, frames int32) uintptr { processor(unsafe.Slice((*float32)(bufferData), frames), int(frames)) return 0 }) detachAudioMixedProcessor(fn) } // SetCallbackFunc - Sets callback function func SetCallbackFunc(func()) { } // NewImageFromImage - Returns new Image from Go image.Image func NewImageFromImage(img image.Image) *Image { size := img.Bounds().Size() ret := GenImageColor(size.X, size.Y, White) for y := 0; y < size.Y; y++ { for x := 0; x < size.X; x++ { col := img.At(x, y) r, g, b, a := col.RGBA() rcolor := NewColor(uint8(r), uint8(g), uint8(b), uint8(a)) ImageDrawPixel(ret, int32(x), int32(y), rcolor) } } return ret } // ToImage converts a Image to Go image.Image func (i *Image) ToImage() image.Image { img := image.NewRGBA(image.Rect(0, 0, int(i.Width), int(i.Height))) // Get pixel data from image (RGBA 32bit) ret := LoadImageColors(i) pixels := (*[1 << 24]uint8)(unsafe.Pointer(unsafe.SliceData(ret)))[0 : i.Width*i.Height*4] img.Pix = pixels return img } // OpenAsset - Open asset func OpenAsset(name string) (Asset, error) { f, err := os.Open(name) if err != nil { return nil, err } return f, nil } // HomeDir - Returns user home directory // NOTE: On Android this returns internal data path and must be called after InitWindow func HomeDir() string { if homeDir, err := os.UserHomeDir(); err == nil { return homeDir } return "" }