This commit is contained in:
Richard Smith 2024-10-16 13:49:19 +01:00
parent 62ff73d0e7
commit be6cf57d85
65 changed files with 8668 additions and 4495 deletions

View file

@ -12,10 +12,10 @@ ARROWS_SIZE: int
ARROWS_VISIBLE: int
ARROW_PADDING: int
def AttachAudioMixedProcessor(processor: Any,) -> None:
"""Attach audio stream processor to the entire audio pipeline, receives the samples as <float>s"""
"""Attach audio stream processor to the entire audio pipeline, receives the samples as 'float'"""
...
def AttachAudioStreamProcessor(stream: AudioStream,processor: Any,) -> None:
"""Attach audio stream processor to stream, receives the samples as <float>s"""
"""Attach audio stream processor to stream, receives the samples as 'float'"""
...
BACKGROUND_COLOR: int
BASE_COLOR_DISABLED: int
@ -89,6 +89,9 @@ def CheckCollisionBoxSphere(box: BoundingBox,center: Vector3,radius: float,) ->
def CheckCollisionBoxes(box1: BoundingBox,box2: BoundingBox,) -> bool:
"""Check collision between two bounding boxes"""
...
def CheckCollisionCircleLine(center: Vector2,radius: float,p1: Vector2,p2: Vector2,) -> bool:
"""Check if circle collides with a line created betweeen two points [p1] and [p2]"""
...
def CheckCollisionCircleRec(center: Vector2,radius: float,rec: Rectangle,) -> bool:
"""Check collision between circle and rectangle"""
...
@ -158,6 +161,12 @@ def ColorFromHSV(hue: float,saturation: float,value: float,) -> Color:
def ColorFromNormalized(normalized: Vector4,) -> Color:
"""Get Color from normalized values [0..1]"""
...
def ColorIsEqual(col1: Color,col2: Color,) -> bool:
"""Check if two colors are equal"""
...
def ColorLerp(color1: Color,color2: Color,factor: float,) -> Color:
"""Get color lerp interpolation between two colors, factor [0.0f..1.0f]"""
...
def ColorNormalize(color: Color,) -> Vector4:
"""Get Color normalized as float [0..1]"""
...
@ -168,7 +177,7 @@ def ColorToHSV(color: Color,) -> Vector3:
"""Get HSV values for a Color, hue [0..360], saturation/value [0..1]"""
...
def ColorToInt(color: Color,) -> int:
"""Get hexadecimal value for a Color"""
"""Get hexadecimal value for a Color (0xRRGGBBAA)"""
...
def CompressData(data: str,dataSize: int,compDataSize: Any,) -> str:
"""Compress data (DEFLATE algorithm), memory must be MemFree()"""
@ -184,7 +193,9 @@ def CreatePhysicsBodyRectangle(pos: Vector2,width: float,height: float,density:
...
DEFAULT: int
DROPDOWNBOX: int
DROPDOWN_ARROW_HIDDEN: int
DROPDOWN_ITEMS_SPACING: int
DROPDOWN_ROLL_UP: int
def DecodeDataBase64(data: str,outputSize: Any,) -> str:
"""Decode Base64 string data, memory must be MemFree()"""
...
@ -209,7 +220,7 @@ def DisableCursor() -> None:
def DisableEventWaiting() -> None:
"""Disable waiting for events on EndDrawing(), automatic events polling"""
...
def DrawBillboard(camera: Camera3D,texture: Texture,position: Vector3,size: float,tint: Color,) -> None:
def DrawBillboard(camera: Camera3D,texture: Texture,position: Vector3,scale: float,tint: Color,) -> None:
"""Draw a billboard texture"""
...
def DrawBillboardPro(camera: Camera3D,texture: Texture,source: Rectangle,position: Vector3,up: Vector3,size: Vector2,origin: Vector2,rotation: float,tint: Color,) -> None:
@ -233,7 +244,7 @@ def DrawCircle(centerX: int,centerY: int,radius: float,color: Color,) -> None:
def DrawCircle3D(center: Vector3,radius: float,rotationAxis: Vector3,rotationAngle: float,color: Color,) -> None:
"""Draw a circle in 3D world space"""
...
def DrawCircleGradient(centerX: int,centerY: int,radius: float,color1: Color,color2: Color,) -> None:
def DrawCircleGradient(centerX: int,centerY: int,radius: float,inner: Color,outer: Color,) -> None:
"""Draw a gradient-filled circle"""
...
def DrawCircleLines(centerX: int,centerY: int,radius: float,color: Color,) -> None:
@ -317,6 +328,12 @@ def DrawModel(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
def DrawModelEx(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
"""Draw a model with extended parameters"""
...
def DrawModelPoints(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
"""Draw a model as points"""
...
def DrawModelPointsEx(model: Model,position: Vector3,rotationAxis: Vector3,rotationAngle: float,scale: Vector3,tint: Color,) -> None:
"""Draw a model as points with extended parameters"""
...
def DrawModelWires(model: Model,position: Vector3,scale: float,tint: Color,) -> None:
"""Draw a model wires (with texture if set)"""
...
@ -324,10 +341,10 @@ def DrawModelWiresEx(model: Model,position: Vector3,rotationAxis: Vector3,rotati
"""Draw a model wires (with texture if set) with extended parameters"""
...
def DrawPixel(posX: int,posY: int,color: Color,) -> None:
"""Draw a pixel"""
"""Draw a pixel using geometry [Can be slow, use with care]"""
...
def DrawPixelV(position: Vector2,color: Color,) -> None:
"""Draw a pixel (Vector version)"""
"""Draw a pixel using geometry (Vector version) [Can be slow, use with care]"""
...
def DrawPlane(centerPos: Vector3,size: Vector2,color: Color,) -> None:
"""Draw a plane XZ"""
@ -350,13 +367,13 @@ def DrawRay(ray: Ray,color: Color,) -> None:
def DrawRectangle(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
"""Draw a color-filled rectangle"""
...
def DrawRectangleGradientEx(rec: Rectangle,col1: Color,col2: Color,col3: Color,col4: Color,) -> None:
def DrawRectangleGradientEx(rec: Rectangle,topLeft: Color,bottomLeft: Color,topRight: Color,bottomRight: Color,) -> None:
"""Draw a gradient-filled rectangle with custom vertex colors"""
...
def DrawRectangleGradientH(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
def DrawRectangleGradientH(posX: int,posY: int,width: int,height: int,left: Color,right: Color,) -> None:
"""Draw a horizontal-gradient-filled rectangle"""
...
def DrawRectangleGradientV(posX: int,posY: int,width: int,height: int,color1: Color,color2: Color,) -> None:
def DrawRectangleGradientV(posX: int,posY: int,width: int,height: int,top: Color,bottom: Color,) -> None:
"""Draw a vertical-gradient-filled rectangle"""
...
def DrawRectangleLines(posX: int,posY: int,width: int,height: int,color: Color,) -> None:
@ -374,7 +391,10 @@ def DrawRectangleRec(rec: Rectangle,color: Color,) -> None:
def DrawRectangleRounded(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
"""Draw rectangle with rounded edges"""
...
def DrawRectangleRoundedLines(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
def DrawRectangleRoundedLines(rec: Rectangle,roundness: float,segments: int,color: Color,) -> None:
"""Draw rectangle lines with rounded edges"""
...
def DrawRectangleRoundedLinesEx(rec: Rectangle,roundness: float,segments: int,lineThick: float,color: Color,) -> None:
"""Draw rectangle with rounded edges outline"""
...
def DrawRectangleV(position: Vector2,size: Vector2,color: Color,) -> None:
@ -530,6 +550,9 @@ def ExportImageToMemory(image: Image,fileType: str,fileSize: Any,) -> str:
def ExportMesh(mesh: Mesh,fileName: str,) -> bool:
"""Export mesh data to file, returns true on success"""
...
def ExportMeshAsCode(mesh: Mesh,fileName: str,) -> bool:
"""Export mesh as code file (.h) defining multiple arrays of vertex attributes"""
...
def ExportWave(wave: Wave,fileName: str,) -> bool:
"""Export wave data to file, returns true on success"""
...
@ -819,9 +842,6 @@ def GetMouseDelta() -> Vector2:
def GetMousePosition() -> Vector2:
"""Get mouse position XY"""
...
def GetMouseRay(mousePosition: Vector2,camera: Camera3D,) -> Ray:
"""Get a ray trace from mouse position"""
...
def GetMouseWheelMove() -> float:
"""Get mouse wheel movement for X or Y, whichever is larger"""
...
@ -894,6 +914,12 @@ def GetScreenHeight() -> int:
def GetScreenToWorld2D(position: Vector2,camera: Camera2D,) -> Vector2:
"""Get the world space position for a 2d camera screen space position"""
...
def GetScreenToWorldRay(position: Vector2,camera: Camera3D,) -> Ray:
"""Get a ray trace from screen position (i.e mouse)"""
...
def GetScreenToWorldRayEx(position: Vector2,camera: Camera3D,width: int,height: int,) -> Ray:
"""Get a ray trace from screen position (i.e mouse) in a viewport"""
...
def GetScreenWidth() -> int:
"""Get current screen width"""
...
@ -903,6 +929,12 @@ def GetShaderLocation(shader: Shader,uniformName: str,) -> int:
def GetShaderLocationAttrib(shader: Shader,attribName: str,) -> int:
"""Get shader attribute location"""
...
def GetShapesTexture() -> Texture:
"""Get texture that is used for shapes drawing"""
...
def GetShapesTextureRectangle() -> Rectangle:
"""Get texture source rectangle that is used for shapes drawing"""
...
def GetSplinePointBasis(p1: Vector2,p2: Vector2,p3: Vector2,p4: Vector2,t: float,) -> Vector2:
"""Get (evaluate) spline point: B-Spline"""
...
@ -973,7 +1005,7 @@ def GuiColorPanel(bounds: Rectangle,text: str,color: Any,) -> int:
"""Color Panel control"""
...
def GuiColorPanelHSV(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
"""Color Panel control that returns HSV color value, used by GuiColorPickerHSV()"""
"""Color Panel control that updates Hue-Saturation-Value color value, used by GuiColorPickerHSV()"""
...
def GuiColorPicker(bounds: Rectangle,text: str,color: Any,) -> int:
"""Color Picker control (multiple color controls)"""
@ -982,7 +1014,7 @@ def GuiColorPickerHSV(bounds: Rectangle,text: str,colorHsv: Any,) -> int:
"""Color Picker control that avoids conversion to RGB on each call (multiple color controls)"""
...
def GuiComboBox(bounds: Rectangle,text: str,active: Any,) -> int:
"""Combo Box control, returns selected item index"""
"""Combo Box control"""
...
def GuiDisable() -> None:
"""Disable gui controls (global state)"""
@ -994,7 +1026,7 @@ def GuiDrawIcon(iconId: int,posX: int,posY: int,pixelSize: int,color: Color,) ->
"""Draw icon using pixel size at specified position"""
...
def GuiDropdownBox(bounds: Rectangle,text: str,active: Any,editMode: bool,) -> int:
"""Dropdown Box control, returns selected item"""
"""Dropdown Box control"""
...
def GuiDummyRec(bounds: Rectangle,text: str,) -> int:
"""Dummy control for placeholders"""
@ -1018,7 +1050,7 @@ def GuiGetStyle(control: int,property: int,) -> int:
"""Get one style property"""
...
def GuiGrid(bounds: Rectangle,text: str,spacing: float,subdivs: int,mouseCell: Any,) -> int:
"""Grid control, returns mouse cell position"""
"""Grid control"""
...
def GuiGroupBox(bounds: Rectangle,text: str,) -> int:
"""Group Box control with text name"""
@ -1030,16 +1062,16 @@ def GuiIsLocked() -> bool:
"""Check if gui is locked (global state)"""
...
def GuiLabel(bounds: Rectangle,text: str,) -> int:
"""Label control, shows text"""
"""Label control"""
...
def GuiLabelButton(bounds: Rectangle,text: str,) -> int:
"""Label button control, show true when clicked"""
"""Label button control, returns true when clicked"""
...
def GuiLine(bounds: Rectangle,text: str,) -> int:
"""Line separator control, could contain text"""
...
def GuiListView(bounds: Rectangle,text: str,scrollIndex: Any,active: Any,) -> int:
"""List View control, returns selected list item index"""
"""List View control"""
...
def GuiListViewEx(bounds: Rectangle,text: list[str],count: int,scrollIndex: Any,active: Any,focus: Any,) -> int:
"""List View with extended parameters"""
@ -1063,7 +1095,7 @@ def GuiPanel(bounds: Rectangle,text: str,) -> int:
"""Panel control, useful to group controls"""
...
def GuiProgressBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
"""Progress Bar control, shows current progress value"""
"""Progress Bar control"""
...
def GuiScrollPanel(bounds: Rectangle,text: str,content: Rectangle,scroll: Any,view: Any,) -> int:
"""Scroll Panel control"""
@ -1087,13 +1119,13 @@ def GuiSetTooltip(tooltip: str,) -> None:
"""Set tooltip string"""
...
def GuiSlider(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
"""Slider control, returns selected value"""
"""Slider control"""
...
def GuiSliderBar(bounds: Rectangle,textLeft: str,textRight: str,value: Any,minValue: float,maxValue: float,) -> int:
"""Slider Bar control, returns selected value"""
"""Slider Bar control"""
...
def GuiSpinner(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
"""Spinner control, returns selected value"""
"""Spinner control"""
...
def GuiStatusBar(bounds: Rectangle,text: str,) -> int:
"""Status Bar control, shows info text"""
@ -1108,13 +1140,13 @@ def GuiTextInputBox(bounds: Rectangle,title: str,message: str,buttons: str,text:
"""Text Input Box control, ask for text, supports secret"""
...
def GuiToggle(bounds: Rectangle,text: str,active: Any,) -> int:
"""Toggle Button control, returns true when active"""
"""Toggle Button control"""
...
def GuiToggleGroup(bounds: Rectangle,text: str,active: Any,) -> int:
"""Toggle Group control, returns active toggle index"""
"""Toggle Group control"""
...
def GuiToggleSlider(bounds: Rectangle,text: str,active: Any,) -> int:
"""Toggle Slider control, returns true when clicked"""
"""Toggle Slider control"""
...
def GuiUnlock() -> None:
"""Unlock gui controls (global state)"""
@ -1122,6 +1154,9 @@ def GuiUnlock() -> None:
def GuiValueBox(bounds: Rectangle,text: str,value: Any,minValue: int,maxValue: int,editMode: bool,) -> int:
"""Value Box control, updates input text with numbers"""
...
def GuiValueBoxFloat(bounds: Rectangle,text: str,textValue: str,value: Any,editMode: bool,) -> int:
"""Value box control for float values"""
...
def GuiWindowBox(bounds: Rectangle,title: str,) -> int:
"""Window Box control, shows a window that can be closed"""
...
@ -1133,15 +1168,6 @@ def HideCursor() -> None:
"""Hides cursor"""
...
ICON_1UP: int
ICON_220: int
ICON_221: int
ICON_222: int
ICON_223: int
ICON_224: int
ICON_225: int
ICON_226: int
ICON_227: int
ICON_228: int
ICON_229: int
ICON_230: int
ICON_231: int
@ -1287,13 +1313,18 @@ ICON_GRID_FILL: int
ICON_HAND_POINTER: int
ICON_HEART: int
ICON_HELP: int
ICON_HELP_BOX: int
ICON_HEX: int
ICON_HIDPI: int
ICON_HOT: int
ICON_HOUSE: int
ICON_INFO: int
ICON_INFO_BOX: int
ICON_KEY: int
ICON_LASER: int
ICON_LAYERS: int
ICON_LAYERS2: int
ICON_LAYERS_ISO: int
ICON_LAYERS_VISIBLE: int
ICON_LENS: int
ICON_LENS_BIG: int
@ -1307,7 +1338,9 @@ ICON_LOCK_CLOSE: int
ICON_LOCK_OPEN: int
ICON_MAGNET: int
ICON_MAILBOX: int
ICON_MAPS: int
ICON_MIPMAPS: int
ICON_MLAYERS: int
ICON_MODE_2D: int
ICON_MODE_3D: int
ICON_MONITOR: int
@ -1331,6 +1364,7 @@ ICON_PLAYER_RECORD: int
ICON_PLAYER_STOP: int
ICON_POT: int
ICON_PRINTER: int
ICON_PRIORITY: int
ICON_REDO: int
ICON_REDO_FILL: int
ICON_REG_EXP: int
@ -1377,6 +1411,7 @@ ICON_UNDO: int
ICON_UNDO_FILL: int
ICON_VERTICAL_BARS: int
ICON_VERTICAL_BARS_FILL: int
ICON_WARNING: int
ICON_WATER_DROP: int
ICON_WAVE: int
ICON_WAVE_SINUS: int
@ -1451,6 +1486,9 @@ def ImageDrawCircleV(dst: Any,center: Vector2,radius: int,color: Color,) -> None
def ImageDrawLine(dst: Any,startPosX: int,startPosY: int,endPosX: int,endPosY: int,color: Color,) -> None:
"""Draw line within an image"""
...
def ImageDrawLineEx(dst: Any,start: Vector2,end: Vector2,thick: int,color: Color,) -> None:
"""Draw a line defining thickness within an image"""
...
def ImageDrawLineV(dst: Any,start: Vector2,end: Vector2,color: Color,) -> None:
"""Draw line within an image (Vector version)"""
...
@ -1478,6 +1516,21 @@ def ImageDrawText(dst: Any,text: str,posX: int,posY: int,fontSize: int,color: Co
def ImageDrawTextEx(dst: Any,font: Font,text: str,position: Vector2,fontSize: float,spacing: float,tint: Color,) -> None:
"""Draw text (custom sprite font) within an image (destination)"""
...
def ImageDrawTriangle(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
"""Draw triangle within an image"""
...
def ImageDrawTriangleEx(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,c1: Color,c2: Color,c3: Color,) -> None:
"""Draw triangle with interpolated colors within an image"""
...
def ImageDrawTriangleFan(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
"""Draw a triangle fan defined by points within an image (first vertex is the center)"""
...
def ImageDrawTriangleLines(dst: Any,v1: Vector2,v2: Vector2,v3: Vector2,color: Color,) -> None:
"""Draw triangle outline within an image"""
...
def ImageDrawTriangleStrip(dst: Any,points: Any,pointCount: int,color: Color,) -> None:
"""Draw a triangle strip defined by points within an image"""
...
def ImageFlipHorizontal(image: Any,) -> None:
"""Flip image horizontally"""
...
@ -1487,9 +1540,15 @@ def ImageFlipVertical(image: Any,) -> None:
def ImageFormat(image: Any,newFormat: int,) -> None:
"""Convert image data to desired format"""
...
def ImageFromChannel(image: Image,selectedChannel: int,) -> Image:
"""Create an image from a selected channel of another image (GRAYSCALE)"""
...
def ImageFromImage(image: Image,rec: Rectangle,) -> Image:
"""Create an image from another image piece"""
...
def ImageKernelConvolution(image: Any,kernel: Any,kernelSize: int,) -> None:
"""Apply custom square convolution kernel to image"""
...
def ImageMipmaps(image: Any,) -> None:
"""Compute all mipmap levels for a provided image"""
...
@ -1553,6 +1612,9 @@ def IsFileDropped() -> bool:
def IsFileExtension(fileName: str,ext: str,) -> bool:
"""Check file extension (including point: .png, .wav)"""
...
def IsFileNameValid(fileName: str,) -> bool:
"""Check if fileName is valid for the platform/OS"""
...
def IsFontReady(font: Font,) -> bool:
"""Check if a font is ready"""
...
@ -1777,6 +1839,7 @@ KEY_ZERO: int
LABEL: int
LINE_COLOR: int
LISTVIEW: int
LIST_ITEMS_BORDER_WIDTH: int
LIST_ITEMS_HEIGHT: int
LIST_ITEMS_SPACING: int
LOG_ALL: int
@ -1803,7 +1866,7 @@ def LoadDirectoryFiles(dirPath: str,) -> FilePathList:
"""Load directory filepaths"""
...
def LoadDirectoryFilesEx(basePath: str,filter: str,scanSubdirs: bool,) -> FilePathList:
"""Load directory filepaths with extension filtering and recursive directory scan"""
"""Load directory filepaths with extension filtering and recursive directory scan. Use 'DIR' in the filter string to include directories in the result"""
...
def LoadDroppedFiles() -> FilePathList:
"""Load dropped filepaths"""
@ -1821,7 +1884,7 @@ def LoadFontData(fileData: str,dataSize: int,fontSize: int,codepoints: Any,codep
"""Load font data for further use"""
...
def LoadFontEx(fileName: str,fontSize: int,codepoints: Any,codepointCount: int,) -> Font:
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character setFont"""
"""Load font from file with extended parameters, use NULL for codepoints and 0 for codepointCount to load the default character set, font size is provided in pixels height"""
...
def LoadFontFromImage(image: Image,key: Color,firstChar: int,) -> Font:
"""Load font from Image (XNA style)"""
@ -1835,6 +1898,9 @@ def LoadImage(fileName: str,) -> Image:
def LoadImageAnim(fileName: str,frames: Any,) -> Image:
"""Load image sequence from file (frames appended to image.data)"""
...
def LoadImageAnimFromMemory(fileType: str,fileData: str,dataSize: int,frames: Any,) -> Image:
"""Load image sequence from memory buffer"""
...
def LoadImageColors(image: Image,) -> Any:
"""Load color data from image as a Color array (RGBA - 32bit)"""
...
@ -1853,9 +1919,6 @@ def LoadImagePalette(image: Image,maxPaletteSize: int,colorCount: Any,) -> Any:
def LoadImageRaw(fileName: str,width: int,height: int,format: int,headerSize: int,) -> Image:
"""Load image from RAW file data"""
...
def LoadImageSvg(fileNameOrString: str,width: int,height: int,) -> Image:
"""Load image from SVG file data or string with specified size"""
...
def LoadMaterialDefault() -> Material:
"""Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)"""
...
@ -1951,13 +2014,19 @@ MOUSE_CURSOR_RESIZE_EW: int
MOUSE_CURSOR_RESIZE_NESW: int
MOUSE_CURSOR_RESIZE_NS: int
MOUSE_CURSOR_RESIZE_NWSE: int
def MakeDirectory(dirPath: str,) -> int:
"""Create directories (including full path requested), returns 0 on success"""
...
def MatrixAdd(left: Matrix,right: Matrix,) -> Matrix:
""""""
...
def MatrixDecompose(mat: Matrix,translation: Any,rotation: Any,scale: Any,) -> None:
""""""
...
def MatrixDeterminant(mat: Matrix,) -> float:
""""""
...
def MatrixFrustum(left: float,right: float,bottom: float,top: float,near: float,far: float,) -> Matrix:
def MatrixFrustum(left: float,right: float,bottom: float,top: float,nearPlane: float,farPlane: float,) -> Matrix:
""""""
...
def MatrixIdentity() -> Matrix:
@ -2111,6 +2180,9 @@ def QuaternionAdd(q1: Vector4,q2: Vector4,) -> Vector4:
def QuaternionAddValue(q: Vector4,add: float,) -> Vector4:
""""""
...
def QuaternionCubicHermiteSpline(q1: Vector4,outTangent1: Vector4,q2: Vector4,inTangent2: Vector4,t: float,) -> Vector4:
""""""
...
def QuaternionDivide(q1: Vector4,q2: Vector4,) -> Vector4:
""""""
...
@ -2276,6 +2348,10 @@ RL_SHADER_UNIFORM_IVEC2: int
RL_SHADER_UNIFORM_IVEC3: int
RL_SHADER_UNIFORM_IVEC4: int
RL_SHADER_UNIFORM_SAMPLER2D: int
RL_SHADER_UNIFORM_UINT: int
RL_SHADER_UNIFORM_UIVEC2: int
RL_SHADER_UNIFORM_UIVEC3: int
RL_SHADER_UNIFORM_UIVEC4: int
RL_SHADER_UNIFORM_VEC2: int
RL_SHADER_UNIFORM_VEC3: int
RL_SHADER_UNIFORM_VEC4: int
@ -2314,6 +2390,7 @@ SHADER_ATTRIB_FLOAT: int
SHADER_ATTRIB_VEC2: int
SHADER_ATTRIB_VEC3: int
SHADER_ATTRIB_VEC4: int
SHADER_LOC_BONE_MATRICES: int
SHADER_LOC_COLOR_AMBIENT: int
SHADER_LOC_COLOR_DIFFUSE: int
SHADER_LOC_COLOR_SPECULAR: int
@ -2334,6 +2411,8 @@ SHADER_LOC_MATRIX_NORMAL: int
SHADER_LOC_MATRIX_PROJECTION: int
SHADER_LOC_MATRIX_VIEW: int
SHADER_LOC_VECTOR_VIEW: int
SHADER_LOC_VERTEX_BONEIDS: int
SHADER_LOC_VERTEX_BONEWEIGHTS: int
SHADER_LOC_VERTEX_COLOR: int
SHADER_LOC_VERTEX_NORMAL: int
SHADER_LOC_VERTEX_POSITION: int
@ -2402,6 +2481,9 @@ def SetExitKey(key: int,) -> None:
def SetGamepadMappings(mappings: str,) -> int:
"""Set internal gamepad mappings (SDL_GameControllerDB)"""
...
def SetGamepadVibration(gamepad: int,leftMotor: float,rightMotor: float,) -> None:
"""Set gamepad vibration for both motors"""
...
def SetGesturesEnabled(flags: int,) -> None:
"""Enable a set of gestures using flags"""
...
@ -2627,6 +2709,12 @@ def TextSplit(text: str,delimiter: str,count: Any,) -> list[str]:
def TextSubtext(text: str,position: int,length: int,) -> str:
"""Get a piece of a text string"""
...
def TextToCamel(text: str,) -> str:
"""Get Camel case notation version of provided string"""
...
def TextToFloat(text: str,) -> float:
"""Get float value from text (negative values not supported)"""
...
def TextToInteger(text: str,) -> int:
"""Get integer value from text (negative values not supported)"""
...
@ -2636,14 +2724,17 @@ def TextToLower(text: str,) -> str:
def TextToPascal(text: str,) -> str:
"""Get Pascal case notation version of provided string"""
...
def TextToSnake(text: str,) -> str:
"""Get Snake case notation version of provided string"""
...
def TextToUpper(text: str,) -> str:
"""Get upper case version of provided string"""
...
def ToggleBorderlessWindowed() -> None:
"""Toggle window state: borderless windowed (only PLATFORM_DESKTOP)"""
"""Toggle window state: borderless windowed [resizes window to match monitor resolution] (only PLATFORM_DESKTOP)"""
...
def ToggleFullscreen() -> None:
"""Toggle window state: fullscreen/windowed (only PLATFORM_DESKTOP)"""
"""Toggle window state: fullscreen/windowed [resizes monitor to match window resolution] (only PLATFORM_DESKTOP)"""
...
def TraceLog(*args) -> None:
"""VARARG FUNCTION - MAY NOT BE SUPPORTED BY CFFI"""
@ -2651,7 +2742,7 @@ def TraceLog(*args) -> None:
def UnloadAudioStream(stream: AudioStream,) -> None:
"""Unload audio stream and free memory"""
...
def UnloadAutomationEventList(list_0: Any,) -> None:
def UnloadAutomationEventList(list_0: AutomationEventList,) -> None:
"""Unload automation events list from file"""
...
def UnloadCodepoints(codepoints: Any,) -> None:
@ -2747,6 +2838,9 @@ def UpdateMeshBuffer(mesh: Mesh,index: int,data: Any,dataSize: int,offset: int,)
def UpdateModelAnimation(model: Model,anim: ModelAnimation,frame: int,) -> None:
"""Update model animation pose"""
...
def UpdateModelAnimationBoneMatrices(model: Model,anim: ModelAnimation,frame: int,) -> None:
"""Update model animation mesh bone matrices (Note GPU skinning does not work on Mac)"""
...
def UpdateMusicStream(music: Music,) -> None:
"""Updates buffers for music streaming"""
...
@ -2811,6 +2905,12 @@ def Vector2Lerp(v1: Vector2,v2: Vector2,amount: float,) -> Vector2:
def Vector2LineAngle(start: Vector2,end: Vector2,) -> float:
""""""
...
def Vector2Max(v1: Vector2,v2: Vector2,) -> Vector2:
""""""
...
def Vector2Min(v1: Vector2,v2: Vector2,) -> Vector2:
""""""
...
def Vector2MoveTowards(v: Vector2,target: Vector2,maxDistance: float,) -> Vector2:
""""""
...
@ -2829,6 +2929,9 @@ def Vector2One() -> Vector2:
def Vector2Reflect(v: Vector2,normal: Vector2,) -> Vector2:
""""""
...
def Vector2Refract(v: Vector2,n: Vector2,r: float,) -> Vector2:
""""""
...
def Vector2Rotate(v: Vector2,angle: float,) -> Vector2:
""""""
...
@ -2868,6 +2971,9 @@ def Vector3ClampValue(v: Vector3,min_1: float,max_2: float,) -> Vector3:
def Vector3CrossProduct(v1: Vector3,v2: Vector3,) -> Vector3:
""""""
...
def Vector3CubicHermite(v1: Vector3,tangent1: Vector3,v2: Vector3,tangent2: Vector3,amount: float,) -> Vector3:
""""""
...
def Vector3Distance(v1: Vector3,v2: Vector3,) -> float:
""""""
...
@ -2901,6 +3007,9 @@ def Vector3Max(v1: Vector3,v2: Vector3,) -> Vector3:
def Vector3Min(v1: Vector3,v2: Vector3,) -> Vector3:
""""""
...
def Vector3MoveTowards(v: Vector3,target: Vector3,maxDistance: float,) -> Vector3:
""""""
...
def Vector3Multiply(v1: Vector3,v2: Vector3,) -> Vector3:
""""""
...
@ -2958,14 +3067,80 @@ def Vector3Unproject(source: Vector3,projection: Matrix,view: Matrix,) -> Vector
def Vector3Zero() -> Vector3:
""""""
...
def Vector4Add(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4AddValue(v: Vector4,add: float,) -> Vector4:
""""""
...
def Vector4Distance(v1: Vector4,v2: Vector4,) -> float:
""""""
...
def Vector4DistanceSqr(v1: Vector4,v2: Vector4,) -> float:
""""""
...
def Vector4Divide(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4DotProduct(v1: Vector4,v2: Vector4,) -> float:
""""""
...
def Vector4Equals(p: Vector4,q: Vector4,) -> int:
""""""
...
def Vector4Invert(v: Vector4,) -> Vector4:
""""""
...
def Vector4Length(v: Vector4,) -> float:
""""""
...
def Vector4LengthSqr(v: Vector4,) -> float:
""""""
...
def Vector4Lerp(v1: Vector4,v2: Vector4,amount: float,) -> Vector4:
""""""
...
def Vector4Max(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4Min(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4MoveTowards(v: Vector4,target: Vector4,maxDistance: float,) -> Vector4:
""""""
...
def Vector4Multiply(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4Negate(v: Vector4,) -> Vector4:
""""""
...
def Vector4Normalize(v: Vector4,) -> Vector4:
""""""
...
def Vector4One() -> Vector4:
""""""
...
def Vector4Scale(v: Vector4,scale: float,) -> Vector4:
""""""
...
def Vector4Subtract(v1: Vector4,v2: Vector4,) -> Vector4:
""""""
...
def Vector4SubtractValue(v: Vector4,add: float,) -> Vector4:
""""""
...
def Vector4Zero() -> Vector4:
""""""
...
def WaitTime(seconds: float,) -> None:
"""Wait for some time (halt program execution)"""
...
def WaveCopy(wave: Wave,) -> Wave:
"""Copy a wave to a new wave"""
...
def WaveCrop(wave: Any,initSample: int,finalSample: int,) -> None:
"""Crop a wave to defined samples range"""
def WaveCrop(wave: Any,initFrame: int,finalFrame: int,) -> None:
"""Crop a wave to defined frames range"""
...
def WaveFormat(wave: Any,sampleRate: int,sampleSize: int,channels: int,) -> None:
"""Convert wave data to desired format"""
@ -3132,6 +3307,9 @@ def glfwGetWindowPos(window: Any,xpos: Any,ypos: Any,) -> None:
def glfwGetWindowSize(window: Any,width: Any,height: Any,) -> None:
""""""
...
def glfwGetWindowTitle(window: Any,) -> str:
""""""
...
def glfwGetWindowUserPointer(window: Any,) -> Any:
""""""
...
@ -3342,6 +3520,9 @@ def rlActiveTextureSlot(slot: int,) -> None:
def rlBegin(mode: int,) -> None:
"""Initialize drawing mode (how to organize vertex)"""
...
def rlBindFramebuffer(target: int,framebuffer: int,) -> None:
"""Bind framebuffer (FBO)"""
...
def rlBindImageTexture(id: int,index: int,format: int,readonly: bool,) -> None:
"""Bind image texture"""
...
@ -3372,6 +3553,9 @@ def rlColor4f(x: float,y: float,z: float,w: float,) -> None:
def rlColor4ub(r: str,g: str,b: str,a: str,) -> None:
"""Define one vertex (color) - 4 byte"""
...
def rlColorMask(r: bool,g: bool,b: bool,a: bool,) -> None:
"""Color mask control"""
...
def rlCompileShader(shaderCode: str,type: int,) -> int:
"""Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER)"""
...
@ -3430,7 +3614,7 @@ def rlDisableVertexBufferElement() -> None:
"""Disable vertex buffer element (VBO element)"""
...
def rlDisableWireMode() -> None:
"""Disable wire mode ( and point ) maybe rename"""
"""Disable wire (and point) mode"""
...
def rlDrawRenderBatch(batch: Any,) -> None:
"""Draw render batch data (Update->Draw->Reset)"""
@ -3439,16 +3623,16 @@ def rlDrawRenderBatchActive() -> None:
"""Update and draw internal render batch"""
...
def rlDrawVertexArray(offset: int,count: int,) -> None:
""""""
"""Draw vertex array (currently active vao)"""
...
def rlDrawVertexArrayElements(offset: int,count: int,buffer: Any,) -> None:
""""""
"""Draw vertex array elements"""
...
def rlDrawVertexArrayElementsInstanced(offset: int,count: int,buffer: Any,instances: int,) -> None:
""""""
"""Draw vertex array elements with instancing"""
...
def rlDrawVertexArrayInstanced(offset: int,count: int,instances: int,) -> None:
""""""
"""Draw vertex array (currently active vao) with instancing"""
...
def rlEnableBackfaceCulling() -> None:
"""Enable backface culling"""
@ -3516,6 +3700,15 @@ def rlFrustum(left: float,right: float,bottom: float,top: float,znear: float,zfa
def rlGenTextureMipmaps(id: int,width: int,height: int,format: int,mipmaps: Any,) -> None:
"""Generate mipmap data for selected texture"""
...
def rlGetActiveFramebuffer() -> int:
"""Get the currently active render texture (fbo), 0 for default framebuffer"""
...
def rlGetCullDistanceFar() -> float:
"""Get cull plane distance far"""
...
def rlGetCullDistanceNear() -> float:
"""Get cull plane distance near"""
...
def rlGetFramebufferHeight() -> int:
"""Get default framebuffer height"""
...
@ -3582,7 +3775,7 @@ def rlLoadDrawQuad() -> None:
def rlLoadExtensions(loader: Any,) -> None:
"""Load OpenGL extensions (loader function required)"""
...
def rlLoadFramebuffer(width: int,height: int,) -> int:
def rlLoadFramebuffer() -> int:
"""Load an empty framebuffer"""
...
def rlLoadIdentity() -> None:
@ -3601,10 +3794,10 @@ def rlLoadShaderProgram(vShaderId: int,fShaderId: int,) -> int:
"""Load custom shader program"""
...
def rlLoadTexture(data: Any,width: int,height: int,format: int,mipmapCount: int,) -> int:
"""Load texture in GPU"""
"""Load texture data"""
...
def rlLoadTextureCubemap(data: Any,size: int,format: int,) -> int:
"""Load texture cubemap"""
"""Load texture cubemap data"""
...
def rlLoadTextureDepth(width: int,height: int,useRenderBuffer: bool,) -> int:
"""Load depth texture/renderbuffer (to be attached to fbo)"""
@ -3613,10 +3806,10 @@ def rlLoadVertexArray() -> int:
"""Load vertex array (vao) if supported"""
...
def rlLoadVertexBuffer(buffer: Any,size: int,dynamic: bool,) -> int:
"""Load a vertex buffer attribute"""
"""Load a vertex buffer object"""
...
def rlLoadVertexBufferElement(buffer: Any,size: int,dynamic: bool,) -> int:
"""Load a new attributes element buffer"""
"""Load vertex buffer elements object"""
...
def rlMatrixMode(mode: int,) -> None:
"""Choose the current matrix to be transformed"""
@ -3663,6 +3856,9 @@ def rlSetBlendFactorsSeparate(glSrcRGB: int,glDstRGB: int,glSrcAlpha: int,glDstA
def rlSetBlendMode(mode: int,) -> None:
"""Set blending mode"""
...
def rlSetClipPlanes(nearPlane: float,farPlane: float,) -> None:
"""Set clip planes distances"""
...
def rlSetCullFace(mode: int,) -> None:
"""Set face culling mode"""
...
@ -3699,20 +3895,23 @@ def rlSetTexture(id: int,) -> None:
def rlSetUniform(locIndex: int,value: Any,uniformType: int,count: int,) -> None:
"""Set shader value uniform"""
...
def rlSetUniformMatrices(locIndex: int,mat: Any,count: int,) -> None:
"""Set shader value matrices"""
...
def rlSetUniformMatrix(locIndex: int,mat: Matrix,) -> None:
"""Set shader value matrix"""
...
def rlSetUniformSampler(locIndex: int,textureId: int,) -> None:
"""Set shader value sampler"""
...
def rlSetVertexAttribute(index: int,compSize: int,type: int,normalized: bool,stride: int,pointer: Any,) -> None:
""""""
def rlSetVertexAttribute(index: int,compSize: int,type: int,normalized: bool,stride: int,offset: int,) -> None:
"""Set vertex attribute data configuration"""
...
def rlSetVertexAttributeDefault(locIndex: int,value: Any,attribType: int,count: int,) -> None:
"""Set vertex attribute default value"""
"""Set vertex attribute default value, when attribute to provided"""
...
def rlSetVertexAttributeDivisor(index: int,divisor: int,) -> None:
""""""
"""Set vertex attribute data divisor"""
...
def rlTexCoord2f(x: float,y: float,) -> None:
"""Define one vertex (texture coordinate) - 2 float"""
@ -3739,22 +3938,22 @@ def rlUnloadTexture(id: int,) -> None:
"""Unload texture from GPU memory"""
...
def rlUnloadVertexArray(vaoId: int,) -> None:
""""""
"""Unload vertex array (vao)"""
...
def rlUnloadVertexBuffer(vboId: int,) -> None:
""""""
"""Unload vertex buffer object"""
...
def rlUpdateShaderBuffer(id: int,data: Any,dataSize: int,offset: int,) -> None:
"""Update SSBO buffer data"""
...
def rlUpdateTexture(id: int,offsetX: int,offsetY: int,width: int,height: int,format: int,data: Any,) -> None:
"""Update GPU texture with new data"""
"""Update texture with new data on GPU"""
...
def rlUpdateVertexBuffer(bufferId: int,data: Any,dataSize: int,offset: int,) -> None:
"""Update GPU buffer with new data"""
"""Update vertex buffer object data on GPU buffer"""
...
def rlUpdateVertexBufferElements(id: int,data: Any,dataSize: int,offset: int,) -> None:
"""Update vertex buffer elements with new data"""
"""Update vertex buffer elements data on GPU buffer"""
...
def rlVertex2f(x: float,y: float,) -> None:
"""Define one vertex (position) - 2 float"""

View file

@ -1,9 +1,9 @@
import raylib
RAYLIB_VERSION_MAJOR: int = 5
RAYLIB_VERSION_MINOR: int = 0
RAYLIB_VERSION_MINOR: int = 5
RAYLIB_VERSION_PATCH: int = 0
RAYLIB_VERSION: str = "5.0"
RAYLIB_VERSION: str = "5.5-dev"
PI: float = 3.141592653589793
DEG2RAD = PI / 180.0
RAD2DEG = 180.0 / PI
@ -18,7 +18,7 @@ PI: float = 3.141592653589793
EPSILON: float = 1e-06
DEG2RAD = PI / 180.0
RAD2DEG = 180.0 / PI
RLGL_VERSION: str = "4.5"
RLGL_VERSION: str = "5.0"
RL_DEFAULT_BATCH_BUFFER_ELEMENTS: int = 8192
RL_DEFAULT_BATCH_BUFFERS: int = 1
RL_DEFAULT_BATCH_DRAWCALLS: int = 256
@ -89,6 +89,17 @@ RL_BLEND_SRC_RGB: int = 32969
RL_BLEND_DST_ALPHA: int = 32970
RL_BLEND_SRC_ALPHA: int = 32971
RL_BLEND_COLOR: int = 32773
RL_READ_FRAMEBUFFER: int = 36008
RL_DRAW_FRAMEBUFFER: int = 36009
RL_DEFAULT_SHADER_ATTRIB_LOCATION_POSITION: int = 0
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD: int = 1
RL_DEFAULT_SHADER_ATTRIB_LOCATION_NORMAL: int = 2
RL_DEFAULT_SHADER_ATTRIB_LOCATION_COLOR: int = 3
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TANGENT: int = 4
RL_DEFAULT_SHADER_ATTRIB_LOCATION_TEXCOORD2: int = 5
RL_DEFAULT_SHADER_ATTRIB_LOCATION_INDICES: int = 6
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEIDS: int = 7
RL_DEFAULT_SHADER_ATTRIB_LOCATION_BONEWEIGHTS: int = 8
RL_SHADER_LOC_MAP_DIFFUSE = raylib.RL_SHADER_LOC_MAP_ALBEDO
RL_SHADER_LOC_MAP_SPECULAR = raylib.RL_SHADER_LOC_MAP_METALNESS
PI: float = 3.141592653589793
@ -108,6 +119,8 @@ GL_COMPRESSED_RGBA_ASTC_4x4_KHR: int = 37808
GL_COMPRESSED_RGBA_ASTC_8x8_KHR: int = 37815
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT: int = 34047
GL_TEXTURE_MAX_ANISOTROPY_EXT: int = 34046
GL_PROGRAM_POINT_SIZE: int = 34370
GL_LINE_WIDTH: int = 2849
GL_UNSIGNED_SHORT_5_6_5: int = 33635
GL_UNSIGNED_SHORT_5_5_5_1: int = 32820
GL_UNSIGNED_SHORT_4_4_4_4: int = 32819
@ -119,19 +132,22 @@ RL_DEFAULT_SHADER_ATTRIB_NAME_NORMAL: str = "vertexNormal"
RL_DEFAULT_SHADER_ATTRIB_NAME_COLOR: str = "vertexColor"
RL_DEFAULT_SHADER_ATTRIB_NAME_TANGENT: str = "vertexTangent"
RL_DEFAULT_SHADER_ATTRIB_NAME_TEXCOORD2: str = "vertexTexCoord2"
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEIDS: str = "vertexBoneIds"
RL_DEFAULT_SHADER_ATTRIB_NAME_BONEWEIGHTS: str = "vertexBoneWeights"
RL_DEFAULT_SHADER_UNIFORM_NAME_MVP: str = "mvp"
RL_DEFAULT_SHADER_UNIFORM_NAME_VIEW: str = "matView"
RL_DEFAULT_SHADER_UNIFORM_NAME_PROJECTION: str = "matProjection"
RL_DEFAULT_SHADER_UNIFORM_NAME_MODEL: str = "matModel"
RL_DEFAULT_SHADER_UNIFORM_NAME_NORMAL: str = "matNormal"
RL_DEFAULT_SHADER_UNIFORM_NAME_COLOR: str = "colDiffuse"
RL_DEFAULT_SHADER_UNIFORM_NAME_BONE_MATRICES: str = "boneMatrices"
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE0: str = "texture0"
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE1: str = "texture1"
RL_DEFAULT_SHADER_SAMPLER2D_NAME_TEXTURE2: str = "texture2"
RAYGUI_VERSION_MAJOR: int = 4
RAYGUI_VERSION_MINOR: int = 0
RAYGUI_VERSION_MINOR: int = 5
RAYGUI_VERSION_PATCH: int = 0
RAYGUI_VERSION: str = "4.0"
RAYGUI_VERSION: str = "4.5-dev"
SCROLLBAR_LEFT_SIDE: int = 0
SCROLLBAR_RIGHT_SIDE: int = 1
RAYGUI_ICON_SIZE: int = 16
@ -155,6 +171,7 @@ RAYGUI_PANEL_BORDER_WIDTH: int = 1
RAYGUI_TABBAR_ITEM_WIDTH: int = 160
RAYGUI_MIN_SCROLLBAR_WIDTH: int = 40
RAYGUI_MIN_SCROLLBAR_HEIGHT: int = 40
RAYGUI_MIN_MOUSE_WHEEL_SPEED: int = 20
RAYGUI_TOGGLEGROUP_MAX_ITEMS: int = 32
RAYGUI_TEXTBOX_AUTO_CURSOR_COOLDOWN: int = 40
RAYGUI_TEXTBOX_AUTO_CURSOR_DELAY: int = 1
@ -429,12 +446,14 @@ GLFW_CONTEXT_RELEASE_BEHAVIOR: int = 139273
GLFW_CONTEXT_NO_ERROR: int = 139274
GLFW_CONTEXT_CREATION_API: int = 139275
GLFW_SCALE_TO_MONITOR: int = 139276
GLFW_SCALE_FRAMEBUFFER: int = 139277
GLFW_COCOA_RETINA_FRAMEBUFFER: int = 143361
GLFW_COCOA_FRAME_NAME: int = 143362
GLFW_COCOA_GRAPHICS_SWITCHING: int = 143363
GLFW_X11_CLASS_NAME: int = 147457
GLFW_X11_INSTANCE_NAME: int = 147458
GLFW_WIN32_KEYBOARD_MENU: int = 151553
GLFW_WIN32_SHOWDEFAULT: int = 151554
GLFW_WAYLAND_APP_ID: int = 155649
GLFW_NO_API: int = 0
GLFW_OPENGL_API: int = 196609
@ -467,6 +486,8 @@ GLFW_ANGLE_PLATFORM_TYPE_D3D9: int = 225284
GLFW_ANGLE_PLATFORM_TYPE_D3D11: int = 225285
GLFW_ANGLE_PLATFORM_TYPE_VULKAN: int = 225287
GLFW_ANGLE_PLATFORM_TYPE_METAL: int = 225288
GLFW_WAYLAND_PREFER_LIBDECOR: int = 229377
GLFW_WAYLAND_DISABLE_LIBDECOR: int = 229378
GLFW_ANY_POSITION: int = 2147483648
GLFW_ARROW_CURSOR: int = 221185
GLFW_IBEAM_CURSOR: int = 221186
@ -486,6 +507,7 @@ GLFW_PLATFORM: int = 327683
GLFW_COCOA_CHDIR_RESOURCES: int = 331777
GLFW_COCOA_MENUBAR: int = 331778
GLFW_X11_XCB_VULKAN_SURFACE: int = 335873
GLFW_WAYLAND_LIBDECOR: int = 339969
GLFW_ANY_PLATFORM: int = 393216
GLFW_PLATFORM_WIN32: int = 393217
GLFW_PLATFORM_COCOA: int = 393218

View file

@ -136,7 +136,7 @@ class KeyboardKey(IntEnum):
KEY_KP_ENTER = 335
KEY_KP_EQUAL = 336
KEY_BACK = 4
KEY_MENU = 82
KEY_MENU = 5
KEY_VOLUME_UP = 24
KEY_VOLUME_DOWN = 25
@ -230,6 +230,9 @@ class ShaderLocationIndex(IntEnum):
SHADER_LOC_MAP_IRRADIANCE = 23
SHADER_LOC_MAP_PREFILTER = 24
SHADER_LOC_MAP_BRDF = 25
SHADER_LOC_VERTEX_BONEIDS = 26
SHADER_LOC_VERTEX_BONEWEIGHTS = 27
SHADER_LOC_BONE_MATRICES = 28
class ShaderUniformDataType(IntEnum):
SHADER_UNIFORM_FLOAT = 0
@ -433,6 +436,8 @@ class GuiComboBoxProperty(IntEnum):
class GuiDropdownBoxProperty(IntEnum):
ARROW_PADDING = 16
DROPDOWN_ITEMS_SPACING = 17
DROPDOWN_ARROW_HIDDEN = 18
DROPDOWN_ROLL_UP = 19
class GuiTextBoxProperty(IntEnum):
TEXT_READONLY = 16
@ -446,6 +451,7 @@ class GuiListViewProperty(IntEnum):
LIST_ITEMS_SPACING = 17
SCROLLBAR_WIDTH = 18
SCROLLBAR_SIDE = 19
LIST_ITEMS_BORDER_WIDTH = 20
class GuiColorPickerProperty(IntEnum):
COLOR_SELECTOR_SIZE = 16
@ -675,15 +681,15 @@ class GuiIconName(IntEnum):
ICON_FOLDER = 217
ICON_FILE = 218
ICON_SAND_TIMER = 219
ICON_220 = 220
ICON_221 = 221
ICON_222 = 222
ICON_223 = 223
ICON_224 = 224
ICON_225 = 225
ICON_226 = 226
ICON_227 = 227
ICON_228 = 228
ICON_WARNING = 220
ICON_HELP_BOX = 221
ICON_INFO_BOX = 222
ICON_PRIORITY = 223
ICON_LAYERS_ISO = 224
ICON_LAYERS2 = 225
ICON_MLAYERS = 226
ICON_MAPS = 227
ICON_HOT = 228
ICON_229 = 229
ICON_230 = 230
ICON_231 = 231

View file

@ -169,9 +169,11 @@
*
* @ingroup input
* @{ */
/*! @ingroup input
*/
/*! @} */
/*! @defgroup keys Keyboard keys
* @brief Keyboard key IDs.
/*! @defgroup keys Keyboard key tokens
* @brief Keyboard key tokens.
*
* See [key input](@ref input_key) for how these are used.
*
@ -193,7 +195,6 @@
* @ingroup input
* @{
*/
/* The unknown key */
/* Printable keys */
/* Function keys */
/*! @} */
@ -420,11 +421,11 @@
*/
/*! @brief Platform unavailable or no matching platform was found.
*
* If emitted during initialization, no matching platform was found. If @ref
* GLFW_PLATFORM is set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of the
* platforms supported by this library binary, except for the Null platform. If set to
* a specific platform, it is either not supported by this library binary or GLFW was not
* able to detect it.
* If emitted during initialization, no matching platform was found. If the @ref
* GLFW_PLATFORM init hint was set to `GLFW_ANY_PLATFORM`, GLFW could not detect any of
* the platforms supported by this library binary, except for the Null platform. If the
* init hint was set to a specific platform, it is either not supported by this library
* binary or GLFW was not able to detect it.
*
* If emitted by a native access function, GLFW was initialized for a different platform
* than the function is for.
@ -640,8 +641,14 @@
/*! @brief Window content area scaling window
* [window hint](@ref GLFW_SCALE_TO_MONITOR).
*/
/*! @brief macOS specific
* [window hint](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint).
/*! @brief Window framebuffer scaling
* [window hint](@ref GLFW_SCALE_FRAMEBUFFER_hint).
*/
/*! @brief Legacy name for compatibility.
*
* This is an alias for the
* [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint) window hint for
* compatibility with earlier versions.
*/
/*! @brief macOS specific
* [window hint](@ref GLFW_COCOA_FRAME_NAME_hint).
@ -655,6 +662,8 @@
/*! @brief X11 specific
* [window hint](@ref GLFW_X11_CLASS_NAME_hint).
*/
/*! @brief Win32 specific [window hint](@ref GLFW_WIN32_SHOWDEFAULT_hint).
*/
/*! @brief Wayland specific
* [window hint](@ref GLFW_WAYLAND_APP_ID_hint).
*
@ -703,11 +712,11 @@
* @note @macos This shape is provided by a private system API and may fail
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*
* @note @wayland This shape is provided by a newer standard not supported by
* all cursor themes.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*/
/*! @brief The top-right to bottom-left diagonal resize/move arrow shape.
*
@ -717,11 +726,11 @@
* @note @macos This shape is provided by a private system API and may fail
* with @ref GLFW_CURSOR_UNAVAILABLE in the future.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*
* @note @wayland This shape is provided by a newer standard not supported by
* all cursor themes.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*/
/*! @brief The omni-directional resize/move cursor shape.
*
@ -733,11 +742,11 @@
* The operation-not-allowed shape. This is usually a circle with a diagonal
* line through it.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*
* @note @wayland This shape is provided by a newer standard not supported by
* all cursor themes.
*
* @note @x11 This shape is provided by a newer standard not supported by all
* cursor themes.
*/
/*! @brief Legacy name for compatibility.
*
@ -778,6 +787,10 @@
*
* X11 specific [init hint](@ref GLFW_X11_XCB_VULKAN_SURFACE_hint).
*/
/*! @brief Wayland specific init hint.
*
* Wayland specific [init hint](@ref GLFW_WAYLAND_LIBDECOR_hint).
*/
/*! @} */
/*! @addtogroup init
* @{ */
@ -860,16 +873,25 @@ typedef struct GLFWcursor GLFWcursor;
* or `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
* failures gracefully yet.
*
* This function may be called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the
* library is no longer flagged as initialized.
* This function must support being called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
* longer flagged as initialized.
*
* Any memory allocated by this function will be deallocated during library
* termination or earlier.
* Any memory allocated via this function will be deallocated via the same allocator
* during library termination or earlier.
*
* Any memory allocated via this function must be suitably aligned for any object type.
* If you are using C99 or earlier, this alignment is platform-dependent but will be the
* same as what `malloc` provides. If you are using C11 or later, this is the value of
* `alignof(max_align_t)`.
*
* The size will always be greater than zero. Allocations of size zero are filtered out
* before reaching the custom allocator.
*
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
*
* This function must not call any GLFW function.
*
* @param[in] size The minimum size, in bytes, of the memory block.
* @param[in] user The user-defined pointer from the allocator.
* @return The address of the newly allocated memory block, or `NULL` if an
@ -880,7 +902,8 @@ typedef struct GLFWcursor GLFWcursor;
*
* @reentrancy This function should not call any GLFW function.
*
* @thread_safety This function may be called from any thread that calls GLFW functions.
* @thread_safety This function must support being called from any thread that calls GLFW
* functions.
*
* @sa @ref init_allocator
* @sa @ref GLFWallocator
@ -902,16 +925,26 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user);
* `NULL` if allocation failed. Note that not all parts of GLFW handle allocation
* failures gracefully yet.
*
* This function may be called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the
* library is no longer flagged as initialized.
* This function must support being called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
* longer flagged as initialized.
*
* Any memory allocated by this function will be deallocated during library
* termination or earlier.
* Any memory allocated via this function will be deallocated via the same allocator
* during library termination or earlier.
*
* Any memory allocated via this function must be suitably aligned for any object type.
* If you are using C99 or earlier, this alignment is platform-dependent but will be the
* same as what `realloc` provides. If you are using C11 or later, this is the value of
* `alignof(max_align_t)`.
*
* The block address will never be `NULL` and the size will always be greater than zero.
* Reallocations of a block to size zero are converted into deallocations. Reallocations
* of `NULL` to a non-zero size are converted into regular allocations.
* Reallocations of a block to size zero are converted into deallocations before reaching
* the custom allocator. Reallocations of `NULL` to a non-zero size are converted into
* regular allocations before reaching the custom allocator.
*
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
*
* This function must not call any GLFW function.
*
* @param[in] block The address of the memory block to reallocate.
* @param[in] size The new minimum size, in bytes, of the memory block.
@ -924,7 +957,8 @@ typedef void* (* GLFWallocatefun)(size_t size, void* user);
*
* @reentrancy This function should not call any GLFW function.
*
* @thread_safety This function may be called from any thread that calls GLFW functions.
* @thread_safety This function must support being called from any thread that calls GLFW
* functions.
*
* @sa @ref init_allocator
* @sa @ref GLFWallocator
@ -945,13 +979,17 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user);
* This function may deallocate the specified memory block. This memory block
* will have been allocated with the same allocator.
*
* This function may be called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the
* library is no longer flagged as initialized.
* This function must support being called during @ref glfwInit but before the library is
* flagged as initialized, as well as during @ref glfwTerminate after the library is no
* longer flagged as initialized.
*
* The block address will never be `NULL`. Deallocations of `NULL` are filtered out
* before reaching the custom allocator.
*
* If this function returns `NULL`, GLFW will emit @ref GLFW_OUT_OF_MEMORY.
*
* This function must not call any GLFW function.
*
* @param[in] block The address of the memory block to deallocate.
* @param[in] user The user-defined pointer from the allocator.
*
@ -960,7 +998,8 @@ typedef void* (* GLFWreallocatefun)(void* block, size_t size, void* user);
*
* @reentrancy This function should not call any GLFW function.
*
* @thread_safety This function may be called from any thread that calls GLFW functions.
* @thread_safety This function must support being called from any thread that calls GLFW
* functions.
*
* @sa @ref init_allocator
* @sa @ref GLFWallocator
@ -1503,7 +1542,10 @@ typedef struct GLFWgamepadstate
*/
float axes[6];
} GLFWgamepadstate;
/*! @brief
/*! @brief Custom heap memory allocator.
*
* This describes a custom heap memory allocator for GLFW. To set an allocator, pass it
* to @ref glfwInitAllocator before initializing the library.
*
* @sa @ref init_allocator
* @sa @ref glfwInitAllocator
@ -1514,9 +1556,21 @@ typedef struct GLFWgamepadstate
*/
typedef struct GLFWallocator
{
/*! The memory allocation function. See @ref GLFWallocatefun for details about
* allocation function.
*/
GLFWallocatefun allocate;
/*! The memory reallocation function. See @ref GLFWreallocatefun for details about
* reallocation function.
*/
GLFWreallocatefun reallocate;
/*! The memory deallocation function. See @ref GLFWdeallocatefun for details about
* deallocation function.
*/
GLFWdeallocatefun deallocate;
/*! The user pointer for this custom allocator. This value will be passed to the
* allocator functions.
*/
void* user;
} GLFWallocator;
/*************************************************************************
@ -1558,6 +1612,13 @@ typedef struct GLFWallocator
* and dock icon can be disabled entirely with the @ref GLFW_COCOA_MENUBAR init
* hint.
*
* @remark __Wayland, X11:__ If the library was compiled with support for both
* Wayland and X11, and the @ref GLFW_PLATFORM init hint is set to
* `GLFW_ANY_PLATFORM`, the `XDG_SESSION_TYPE` environment variable affects
* which platform is picked. If the environment variable is not set, or is set
* to something other than `wayland` or `x11`, the regular detection mechanism
* will be used instead.
*
* @remark @x11 This function will set the `LC_CTYPE` category of the
* application locale according to the current environment if that category is
* still "C". This is because the "C" locale breaks Unicode text input.
@ -1643,8 +1704,12 @@ typedef struct GLFWallocator
* To use the default allocator, call this function with a `NULL` argument.
*
* If you specify an allocator struct, every member must be a valid function
* pointer. If any member is `NULL`, this function emits @ref
* GLFW_INVALID_VALUE and the init allocator is unchanged.
* pointer. If any member is `NULL`, this function will emit @ref
* GLFW_INVALID_VALUE and the init allocator will be unchanged.
*
* The functions in the allocator must fulfil a number of requirements. See the
* documentation for @ref GLFWallocatefun, @ref GLFWreallocatefun and @ref
* GLFWdeallocatefun for details.
*
* @param[in] allocator The allocator to use at the next initialization, or
* `NULL` to use the default one.
@ -1952,9 +2017,10 @@ typedef struct GLFWallocator
* specified monitor.
*
* Some platforms do not provide accurate monitor size information, either
* because the monitor
* [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
* data is incorrect or because the driver does not report it accurately.
* because the monitor [EDID][] data is incorrect or because the driver does
* not report it accurately.
*
* [EDID]: https://en.wikipedia.org/wiki/Extended_display_identification_data
*
* Any or all of the size arguments may be `NULL`. If an error occurs, all
* non-`NULL` size arguments will be set to zero.
@ -2000,6 +2066,9 @@ typedef struct GLFWallocator
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
*
* @remark @wayland Fractional scaling information is not yet available for
* monitors, so this function only returns integer content scales.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref monitor_scale
@ -2189,11 +2258,11 @@ typedef struct GLFWallocator
* @param[in] monitor The monitor whose gamma ramp to set.
* @param[in] gamma The desired exponent.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_INVALID_VALUE,
* @ref GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
*
* @remark @wayland Gamma handling is a privileged protocol, this function
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR.
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
*
* @thread_safety This function must only be called from the main thread.
*
@ -2212,11 +2281,11 @@ typedef struct GLFWallocator
* @return The current gamma ramp, or `NULL` if an
* [error](@ref error_handling) occurred.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
* and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
*
* @remark @wayland Gamma handling is a privileged protocol, this function
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR while
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE while
* returning `NULL`.
*
* @pointer_lifetime The returned structure and its arrays are allocated and
@ -2250,8 +2319,8 @@ typedef struct GLFWallocator
* @param[in] monitor The monitor whose gamma ramp to set.
* @param[in] ramp The gamma ramp to use.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref GLFW_PLATFORM_ERROR
* and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
*
* @remark The size of the specified gamma ramp should match the size of the
* current ramp for that monitor.
@ -2259,7 +2328,7 @@ typedef struct GLFWallocator
* @remark @win32 The gamma ramp size must be 256.
*
* @remark @wayland Gamma handling is a privileged protocol, this function
* will thus never be implemented and emits @ref GLFW_PLATFORM_ERROR.
* will thus never be implemented and emits @ref GLFW_FEATURE_UNAVAILABLE.
*
* @pointer_lifetime The specified gamma ramp is copied before this function
* returns.
@ -2427,8 +2496,8 @@ typedef struct GLFWallocator
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
* GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
* GLFW_PLATFORM_ERROR.
* GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE, @ref
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
*
* @remark @win32 Window creation will fail if the Microsoft GDI software
* OpenGL implementation is the only one available.
@ -2450,23 +2519,35 @@ typedef struct GLFWallocator
* @remark @macos The GLFW window has no icon, as it is not a document
* window, but the dock icon will be the same as the application bundle's icon.
* For more information on bundles, see the
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
* in the Mac Developer Library.
* [Bundle Programming Guide][bundle-guide] in the Mac Developer Library.
*
* [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/
*
* @remark @macos On OS X 10.10 and later the window frame will not be rendered
* at full resolution on Retina displays unless the
* [GLFW_COCOA_RETINA_FRAMEBUFFER](@ref GLFW_COCOA_RETINA_FRAMEBUFFER_hint)
* [GLFW_SCALE_FRAMEBUFFER](@ref GLFW_SCALE_FRAMEBUFFER_hint)
* hint is `GLFW_TRUE` and the `NSHighResolutionCapable` key is enabled in the
* application bundle's `Info.plist`. For more information, see
* [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
* in the Mac Developer Library. The GLFW test and example programs use
* a custom `Info.plist` template for this, which can be found as
* `CMake/Info.plist.in` in the source tree.
* [High Resolution Guidelines for OS X][hidpi-guide] in the Mac Developer
* Library. The GLFW test and example programs use a custom `Info.plist`
* template for this, which can be found as `CMake/Info.plist.in` in the source
* tree.
*
* [hidpi-guide]: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html
*
* @remark @macos When activating frame autosaving with
* [GLFW_COCOA_FRAME_NAME](@ref GLFW_COCOA_FRAME_NAME_hint), the specified
* window size and position may be overridden by previously saved values.
*
* @remark @wayland GLFW uses [libdecor][] where available to create its window
* decorations. This in turn uses server-side XDG decorations where available
* and provides high quality client-side decorations on compositors like GNOME.
* If both XDG decorations and libdecor are unavailable, GLFW falls back to
* a very simple set of window decorations that only support moving, resizing
* and the window manager's right-click menu.
*
* [libdecor]: https://gitlab.freedesktop.org/libdecor/libdecor
*
* @remark @x11 Some window managers will not respect the placement of
* initially hidden windows.
*
@ -2483,20 +2564,6 @@ typedef struct GLFWallocator
* [GLFW_X11_INSTANCE_NAME](@ref GLFW_X11_INSTANCE_NAME_hint) window hints to
* override this.
*
* @remark @wayland Compositors should implement the xdg-decoration protocol
* for GLFW to decorate the window properly. If this protocol isn't
* supported, or if the compositor prefers client-side decorations, a very
* simple fallback frame will be drawn using the wp_viewporter protocol. A
* compositor can still emit close, maximize or fullscreen events, using for
* instance a keybind mechanism. If neither of these protocols is supported,
* the window won't be decorated.
*
* @remark @wayland A full screen window will not attempt to change the mode,
* no matter what the requested size or refresh rate.
*
* @remark @wayland Screensaver inhibition requires the idle-inhibit protocol
* to be implemented in the user's compositor.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_creation
@ -2575,6 +2642,37 @@ typedef struct GLFWallocator
* @ingroup window
*/
void glfwSetWindowShouldClose(GLFWwindow* window, int value);
/*! @brief Returns the title of the specified window.
*
* This function returns the window title, encoded as UTF-8, of the specified
* window. This is the title set previously by @ref glfwCreateWindow
* or @ref glfwSetWindowTitle.
*
* @param[in] window The window to query.
* @return The UTF-8 encoded window title, or `NULL` if an
* [error](@ref error_handling) occurred.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
*
* @remark The returned title is currently a copy of the title last set by @ref
* glfwCreateWindow or @ref glfwSetWindowTitle. It does not include any
* additional text which may be appended by the platform or another program.
*
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
* should not free it yourself. It is valid until the next call to @ref
* glfwGetWindowTitle or @ref glfwSetWindowTitle, or until the library is
* terminated.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_title
* @sa @ref glfwSetWindowTitle
*
* @since Added in version 3.4.
*
* @ingroup window
*/
const char* glfwGetWindowTitle(GLFWwindow* window);
/*! @brief Sets the title of the specified window.
*
* This function sets the window title, encoded as UTF-8, of the specified
@ -2592,6 +2690,7 @@ typedef struct GLFWallocator
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_title
* @sa @ref glfwGetWindowTitle
*
* @since Added in version 1.0.
* @glfw3 Added window handle parameter.
@ -2630,8 +2729,9 @@ typedef struct GLFWallocator
* @remark @macos Regular windows do not have icons on macOS. This function
* will emit @ref GLFW_FEATURE_UNAVAILABLE. The dock icon will be the same as
* the application bundle's icon. For more information on bundles, see the
* [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
* in the Mac Developer Library.
* [Bundle Programming Guide][bundle-guide] in the Mac Developer Library.
*
* [bundle-guide]: https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/
*
* @remark @wayland There is no existing protocol to change an icon, the
* window will thus inherit the one defined in the application's desktop file.
@ -2849,9 +2949,6 @@ typedef struct GLFWallocator
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
*
* @remark @wayland A full screen window will not attempt to change the mode,
* no matter what the requested size.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_size
@ -3172,11 +3269,11 @@ typedef struct GLFWallocator
*
* @param[in] window The window to give input focus.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
*
* @remark @wayland It is not possible for an application to set the input
* focus. This function will emit @ref GLFW_FEATURE_UNAVAILABLE.
* @remark @wayland The compositor will likely ignore focus requests unless
* another window created by the same application already has input focus.
*
* @thread_safety This function must only be called from the main thread.
*
@ -3278,9 +3375,6 @@ typedef struct GLFWallocator
* @remark @wayland The desired window position is ignored, as there is no way
* for an application to set this property.
*
* @remark @wayland Setting the window to full screen will not attempt to
* change the mode, no matter what the requested size or refresh rate.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_monitor
@ -3351,11 +3445,15 @@ typedef struct GLFWallocator
* @param[in] value `GLFW_TRUE` or `GLFW_FALSE`.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
* GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_PLATFORM_ERROR and @ref
* GLFW_FEATURE_UNAVAILABLE (see remarks).
*
* @remark Calling @ref glfwGetWindowAttrib will always return the latest
* value, even if that value is ignored by the current mode of the window.
*
* @remark @wayland The [GLFW_FLOATING](@ref GLFW_FLOATING_attrib) window attribute is
* not supported. Setting this will emit @ref GLFW_FEATURE_UNAVAILABLE.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref window_attribs
@ -4011,8 +4109,8 @@ typedef struct GLFWallocator
* @param[in] scancode The scancode of the key to query.
* @return The UTF-8 encoded, layout-specific name of the key, or `NULL`.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_INVALID_VALUE, @ref GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
*
* @remark The contents of the returned string may change when a keyboard
* layout change event is received.
@ -4033,15 +4131,18 @@ typedef struct GLFWallocator
*
* This function returns the platform-specific scancode of the specified key.
*
* If the key is `GLFW_KEY_UNKNOWN` or does not exist on the keyboard this
* method will return `-1`.
* If the specified [key token](@ref keys) corresponds to a physical key not
* supported on the current platform then this method will return `-1`.
* Calling this function with anything other than a key token will return `-1`
* and generate a @ref GLFW_INVALID_ENUM error.
*
* @param[in] key Any [named key](@ref keys).
* @return The platform-specific scancode for the key, or `-1` if an
* [error](@ref error_handling) occurred.
* @param[in] key Any [key token](@ref keys).
* @return The platform-specific scancode for the key, or `-1` if the key is
* not supported on the current platform or an [error](@ref error_handling)
* occurred.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_INVALID_ENUM.
*
* @thread_safety This function may be called from any thread.
*
@ -4178,11 +4279,11 @@ typedef struct GLFWallocator
* @param[in] ypos The desired y-coordinate, relative to the top edge of the
* content area.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_PLATFORM_ERROR and @ref GLFW_FEATURE_UNAVAILABLE (see remarks).
*
* @remark @wayland This function will only work when the cursor mode is
* `GLFW_CURSOR_DISABLED`, otherwise it will do nothing.
* `GLFW_CURSOR_DISABLED`, otherwise it will emit @ref GLFW_FEATURE_UNAVAILABLE.
*
* @thread_safety This function must only be called from the main thread.
*
@ -4341,9 +4442,9 @@ typedef struct GLFWallocator
* [character callback](@ref glfwSetCharCallback) instead.
*
* When a window loses input focus, it will generate synthetic key release
* events for all pressed keys. You can tell these events from user-generated
* events by the fact that the synthetic ones are generated after the focus
* loss event has been processed, i.e. after the
* events for all pressed keys with associated key tokens. You can tell these
* events from user-generated events by the fact that the synthetic ones are
* generated after the focus loss event has been processed, i.e. after the
* [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
*
* The scancode of a key is specific to that platform or sometimes even to that
@ -4617,8 +4718,6 @@ typedef struct GLFWallocator
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
*
* @remark @wayland File drop is currently unimplemented.
*
* @thread_safety This function must only be called from the main thread.
*
* @sa @ref path_drop
@ -5071,6 +5170,11 @@ typedef struct GLFWallocator
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
* GLFW_PLATFORM_ERROR.
*
* @remark @win32 The clipboard on Windows has a single global lock for reading and
* writing. GLFW tries to acquire it a few times, which is almost always enough. If it
* cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns.
* It is safe to try this multiple times.
*
* @pointer_lifetime The specified string is copied before this function
* returns.
*
@ -5098,6 +5202,11 @@ typedef struct GLFWallocator
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_FORMAT_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
*
* @remark @win32 The clipboard on Windows has a single global lock for reading and
* writing. GLFW tries to acquire it a few times, which is almost always enough. If it
* cannot acquire the lock then this function emits @ref GLFW_PLATFORM_ERROR and returns.
* It is safe to try this multiple times.
*
* @pointer_lifetime The returned string is allocated and freed by GLFW. You
* should not free it yourself. It is valid until the next call to @ref
* glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
@ -5215,12 +5324,15 @@ typedef struct GLFWallocator
* thread.
*
* This function makes the OpenGL or OpenGL ES context of the specified window
* current on the calling thread. A context must only be made current on
* a single thread at a time and each thread can have only a single current
* context at a time.
* current on the calling thread. It can also detach the current context from
* the calling thread without making a new one current by passing in `NULL`.
*
* When moving a context between threads, you must make it non-current on the
* old thread before making it current on the new one.
* A context must only be made current on a single thread at a time and each
* thread can have only a single current context at a time. Making a context
* current detaches any previously current context on the calling thread.
*
* When moving a context between threads, you must detach it (make it
* non-current) on the old thread before making it current on the new one.
*
* By default, making a context non-current implicitly forces a pipeline flush.
* On machines that support `GL_KHR_context_flush_control`, you can control
@ -5235,6 +5347,10 @@ typedef struct GLFWallocator
* @param[in] window The window whose context to make current, or `NULL` to
* detach the current context.
*
* @remarks If the previously current context was created via a different
* context creation API than the one passed to this function, GLFW will still
* detach the previous one from its API before making the new one current.
*
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
* GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
*