i´m sorry for answering so late, but the last weeks were like hell at work, a lot of work and extra hours. But now I found a bit time to answer and add some new shaders and functions to the engine.
I add a Parallax-Shader and optimized the Water, see the screenshots at the end of the Post, click on it to enlarge it. STARGATE added the Joy pad \ Xbox-Controller functions.
@applePi: Unfortunately not now, with real-time refraction I meant the animation of the waves.
@luis: A lift of the current available commands is under the screenshots. But it didn’t contain 100 % of all available commands.
Code: Select all
;| Declarations |;
;- Math
Declare UBE_m4fDebug( *m4fSource.UBE_MATRIX4f )
DeclareDLL.f UBE_fRandom( fMaximum.f = 1.0, fMinimum.f = 0.0)
DeclareDLL.f UBE_fRangeRandom( *Range.UBE_RANGEf )
DeclareDLL.i UBE_iClamp( Value.i, Min.i, Max.i )
DeclareDLL.f UBE_fClamp( Value.f, Min.f, Max.f )
DeclareDLL.i UBE_iMin( fValue1.i, fValue2.i, fValue3.i=$7FFFFFFF)
DeclareDLL.i UBE_iMax( fValue1.i, fValue2.i, fValue3.i=-$80000000)
DeclareDLL.f UBE_fMin( fValue1.f, fValue2.f, fValue3.f=1e100)
DeclareDLL.f UBE_fMax( fValue1.f, fValue2.f, fValue3.f=-1e100)
DeclareDLL.i UBE_v2iSet( *v2lTarget.UBE_VECTOR2l, X.i, Y.i )
DeclareDLL.i UBE_v2iAdd( *v2iTarget.UBE_VECTOR2i, *v2iSource.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iAddition( *v2iTarget.UBE_VECTOR2i, *v2iSource1.UBE_VECTOR2i, *v2iSource2.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iSubtract( *v2iTarget.UBE_VECTOR2i, *v2iSource.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iSubtraction( *v2iTarget.UBE_VECTOR2i, *v2iSource1.UBE_VECTOR2i, *v2iSource2.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iScale( *v2iTarget.UBE_VECTOR2i, iValue.i )
DeclareDLL.i UBE_v2iLength( *v2iSource.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iDot( *v2iSource1.UBE_VECTOR2i, *v2iSource2.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iNormalize( *v2iTarget.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iDistance( *v2iSource1.UBE_VECTOR2i, *v2iSource2.UBE_VECTOR2i )
DeclareDLL.i UBE_v2iCrossing( *v2iSource1.UBE_VECTOR2i, *v2iSource2.UBE_VECTOR2i )
DeclareDLL.i UBE_v2fSet( *v2fTarget.UBE_VECTOR2f, X.f, Y.f )
DeclareDLL.i UBE_v2fAdd( *v2fTarget.UBE_VECTOR2f, *v2fSource.UBE_VECTOR2f )
DeclareDLL.i UBE_v2fAddition( *v2fTarget.UBE_VECTOR2f, *v2fSource1.UBE_VECTOR2f, *v2fSource2.UBE_VECTOR2f )
DeclareDLL.i UBE_v2fSubtract( *v2fTarget.UBE_VECTOR2f, *v2fSource.UBE_VECTOR2f )
DeclareDLL.i UBE_v2fSubtraction( *v2fTarget.UBE_VECTOR2f, *v2fSource1.UBE_VECTOR2f, *v2fSource2.UBE_VECTOR2f )
DeclareDLL.i UBE_v2fScale( *v2fTarget.UBE_VECTOR2f, fValue.f )
DeclareDLL.f UBE_v2fLength( *v2fSource.UBE_VECTOR2f )
DeclareDLL.f UBE_v2fDot( *v2fSource1.UBE_VECTOR2f, *v2fSource2.UBE_VECTOR2f )
DeclareDLL.i UBE_v2fNormalize( *v2fTarget.UBE_VECTOR2f )
DeclareDLL.f UBE_v2fDistance( *v2fSource1.UBE_VECTOR2f, *v2fSource2.UBE_VECTOR2f )
DeclareDLL.f UBE_v2fCrossing( *v2fSource1.UBE_VECTOR2f, *v2fSource2.UBE_VECTOR2f )
DeclareDLL.i UBE_v3fSet( *v3fTarget.UBE_VECTOR3f, X.f, Y.f, Z.f )
DeclareDLL.s UBE_v3fStr( *v3fTarget.UBE_VECTOR4f, sSeparator.s=", " )
DeclareDLL.i UBE_v3fAdd( *v3fTarget.UBE_VECTOR3f, *v3fSource.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fAddition( *v3fTarget.UBE_VECTOR3f, *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fSubtract( *v3fTarget.UBE_VECTOR3f, *v3fSource.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fSubtraction( *v3fTarget.UBE_VECTOR3f, *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fScale( *v3fTarget.UBE_VECTOR3f, fValue.f )
DeclareDLL.f UBE_v3fLength( *v3fSource.UBE_VECTOR3f )
DeclareDLL.f UBE_v3fDot( *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fNormalize( *v3fTarget.UBE_VECTOR3f )
DeclareDLL.f UBE_v3fDistance( *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.f UBE_v3fSqrDistance( *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fCrossing( *v3fTarget.UBE_VECTOR3f, *v3fSource1.UBE_VECTOR3f, *v3fSource2.UBE_VECTOR3f )
DeclareDLL.i UBE_v3fNormalFormVertices( *v3fTarget.UBE_VECTOR3f, *v3fVertex1.UBE_VECTOR3f, *v3fVertex2.UBE_VECTOR3f, *v3fVertex3.UBE_VECTOR3f )
DeclareDLL.f UBE_v3fTangentFormVertices( *v3fTarget.UBE_VECTOR3f, *v3fVertex1.UBE_VECTOR3f, *v3fVertex2.UBE_VECTOR3f, *v3fVertex3.UBE_VECTOR3f, *v2fTex1.UBE_VECTOR2f, *v2fTex2.UBE_VECTOR2f, *v2fTex3.UBE_VECTOR2f )
DeclareDLL.i UBE_v3fMultiplyByMatrix4f( *v3fTarget.UBE_VECTOR3f, *m4fSource.UBE_MATRIX4f )
DeclareDLL.i UBE_v4fSet( *v4fTarget.UBE_VECTOR4f, X.f, Y.f, Z.f, W.f = 1.0 )
DeclareDLL.s UBE_v4fStr( *v4fTarget.UBE_VECTOR4f, sSeparator.s=", " )
DeclareDLL.i UBE_v4fCopy( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fPush( X.f, Y.f, Z.f, W.f = 1.0 )
DeclareDLL.i UBE_v4fPushCopy( *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fPop( iCount.i = 1 )
DeclareDLL.i UBE_v4fAdd( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fAddition( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fSubtract( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fSubtraction( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fMultiply( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fMultiplikation( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fDivision( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fChange( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f, fFactor.f )
DeclareDLL.i UBE_v4fScale( *v4fTarget.UBE_VECTOR4f, fValue.f )
DeclareDLL.i UBE_v4fScaling( *v4fTarget.UBE_VECTOR4f, *v4fSource.UBE_VECTOR4f, fValue.f )
DeclareDLL.f UBE_v4fLength( *v4fSource.UBE_VECTOR4f )
DeclareDLL.f UBE_v4fDot( *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fNormalize( *v4fTarget.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fCrossing( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fTangential( *v4fTarget.UBE_VECTOR4f, *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.f UBE_v4fDistance( *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fMultiplyByMatrix4f( *v4fTarget.UBE_VECTOR4f, *m4fSource.UBE_MATRIX4f )
DeclareDLL.i UBE_v4fEqual( *v4fSource1.UBE_VECTOR4f, *v4fSource2.UBE_VECTOR4f )
DeclareDLL.i UBE_v4fMultiplyAdd( *v4fTarget.UBE_VECTOR4f, *v4fSourceAdd.UBE_VECTOR4f, *v4fSourceMultiply.UBE_VECTOR4f)
DeclareDLL.i UBE_v4fMultiplySubtract( *v4fTarget.UBE_VECTOR4f, *v4fSourceAdd.UBE_VECTOR4f, *v4fSourceMultiply.UBE_VECTOR4f)
DeclareDLL.i UBE_m4fIdentity( *m4fTarget.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fBias( *m4fTarget.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fSet( *m4fTarget.UBE_MATRIX4f, X.f, Y.f, Z.f, RotationX.f, RotationY.f, RotationZ.f, ScaleX.f, ScaleY.f, ScaleZ.f )
DeclareDLL.i UBE_m4fFromVector4f( *m4fTarget.UBE_MATRIX4f, *v4fSource.UBE_VECTOR4f )
DeclareDLL.i UBE_m4fFromRandomSolidAngle( *m4fTarget.UBE_MATRIX4f, fAngle.f )
DeclareDLL.i UBE_m4fTranspose( *m4fTarget.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fInverse( *m4fTarget.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fInvertation( *m4fTarget.UBE_MATRIX4f, *m4fSource.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fUnsign( *m4fTarget.UBE_MATRIX4f, *m4fSource.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fMultiply( *m4fTarget.UBE_MATRIX4f, *m4fSource.UBE_MATRIX4f)
DeclareDLL.i UBE_m4fMultiplication( *m4fTarget.UBE_MATRIX4f, *m4fSource1.UBE_MATRIX4f, *m4fSource2.UBE_MATRIX4f )
DeclareDLL.i UBE_m4fToVector4f( *m4fSource.UBE_MATRIX4f, *v4fTarget.UBE_VECTOR4f )
DeclareDLL.i UBE_m4fToMatrix3f( *m4fSource.UBE_MATRIX4f, *m3fTarget.UBE_MATRIX3f )
DeclareDLL.i UBE_m4fToMatrix4x3f( *m4fSource.UBE_MATRIX4f, *m3fTarget.UBE_MATRIX4X3f )
DeclareDLL.i UBE_m4fToTransposedMatrix3f( *m4fSource.UBE_MATRIX4f, *m3fTarget.UBE_MATRIX3f )
DeclareDLL.i UBE_m4fPerspective( *m4fTarget.UBE_MATRIX4f, FOV.f, Aspect.f, Near.f, Far.f )
DeclareDLL.i UBE_m4fFrustum( *m4fTarget.UBE_MATRIX4f, Mode.i, Left.f, Right.f, Bottom.f, Top.f, Near.f, Far.f )
DeclareDLL.i UBE_qSet( *qTarget.UBE_QUATERNION, X.f, Y.f, Z.f, W.f )
DeclareDLL.i UBE_qFromEuler( *qTarget.UBE_QUATERNION, X.f, Y.f, Z.f, Mode.i = #UBE_DEGREE )
DeclareDLL.i UBE_qMultiply( *qTarget.UBE_QUATERNION, *qSource.UBE_QUATERNION )
DeclareDLL.i UBE_qToMatrix4f( *qSource.UBE_QUATERNION, *m4fTarget.UBE_MATRIX4f )
DeclareDLL UBE_RectCollision( X1.i, Y1.i, W1.i, H1.i, X2.i, Y2.i, W2.i, H2.i )
DeclareDLL.i UBE_LookAtMatrix4x4( *Matrix.UBE_MATRIX4f, *Eye.UBE_VECTOR3f, *Target.UBE_VECTOR3f, *Up.UBE_VECTOR3f = #Null )
;- Definition
Declare.s UBE_Definition_Trim( sString.s )
Declare.i UBE_Definition_AddNode( *Definition.UBE_DEFINITION, sName.s = "", sValue.s = "" )
Declare.i UBE_Definition_Parser( *Definition.UBE_DEFINITION, *Memory.UBE_CHARACTERARRAY, bSubList.i = #False )
Declare UBE_DebugDefinition( *Definition.UBE_DEFINITION, iLevel.i = 0 )
DeclareDLL.i UBE_FreeDefinition( *Definition.UBE_DEFINITION, bFromRoot.i = #False )
DeclareDLL.i UBE_CatchDefinition( *Memory, sPath.s="" )
DeclareDLL UBE_CloseDefinition()
DeclareDLL.i UBE_LoadDefinitionFile( sFile.s )
DeclareDLL.i UBE_ParseDefinition( *Definition.UBE_DEFINITION, iTypes.i = #UBE_DEFINITION_ALL )
DeclareDLL.i UBE_ParseDefinitionFiles( sPathOrFile.s, iTypes.i = #UBE_DEFINITION_ALL )
DeclareDLL.i UBE_FindDefinition( *Definition.UBE_DEFINITION, sNameOrPath.s, sValue.s = "")
DeclareDLL.i UBE_ParentDefinition( *Definition.UBE_DEFINITION )
DeclareDLL.i UBE_ChildDefinition( *Definition.UBE_DEFINITION, iIndex.i = 0 )
DeclareDLL.i UBE_NextDefinition(*Definition.UBE_DEFINITION)
DeclareDLL.i UBE_PreviousDefinition(*Definition.UBE_DEFINITION)
DeclareDLL.s UBE_DefinitionName( *Definition.UBE_DEFINITION )
DeclareDLL.s UBE_DefinitionLocation( *Definition.UBE_DEFINITION )
DeclareDLL.s UBE_DefinitionString( *Definition.UBE_DEFINITION, sDefault.s = "" )
DeclareDLL.i UBE_DefinitionInteger( *Definition.UBE_DEFINITION, iDefault.i = 0 )
DeclareDLL.f UBE_DefinitionFloat( *Definition.UBE_DEFINITION, fDefault.f = 0.0 )
DeclareDLL.i UBE_DefinitionColor( *Definition.UBE_DEFINITION, *Color.UBE_COLOR4f, DefaultColor.l = $00000000 )
DeclareDLL.i UBE_DefinitionVector( *Definition.UBE_DEFINITION, *v3fVector.UBE_VECTOR3f, DefaultX.f = 0.0, DefaultY.f = 0.0, DefaultZ.f = 0.0 )
DeclareDLL.i UBE_DefinitionRange( *Definition.UBE_DEFINITION, *Range.UBE_RANGEf, DefaultMin.f = 0.0, DefaultMax.f = #UBE_IGNORE )
DeclareDLL.i UBE_DefinitionChildCount( *Definition.UBE_DEFINITION, sName.s = "" )
;- EngineControl
Declare UBE_Init()
DeclareDLL UBE_ASync( bEnable.i = #True )
DeclareDLL UBE_BackFaceCulling( bEnable.i = #True )
DeclareDLL UBE_BlendingMode( lOutputMode.l = #UBE_BLENDMODE_SRC_ALPHA, lTargetMode.l = #UBE_BLENDMODE_ONE_MINUS_SRC_ALPHA )
DeclareDLL UBE_ClearScreen()
DeclareDLL UBE_ClearScreenColor( lColor.l )
DeclareDLL UBE_DepthTest( bEnable.i = #True )
DeclareDLL UBE_RotateSkyBox( X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE )
DeclareDLL UBE_DisplaySkyBox()
DeclareDLL UBE_FlipBuffers()
DeclareDLL.f UBE_FPS()
DeclareDLL UBE_Free()
DeclareDLL UBE_FreeMemory( *Memory.INTEGER )
DeclareDLL UBE_GenerateSkyBox( fSize.f = 100.0 )
DeclareDLL.l UBE_GetColor( *Color.UBE_COLOR4f )
DeclareDLL.i UBE_GetScreenTitlePointer()
DeclareDLL.i UBE_GetWindow()
DeclareDLL.i UBE_OpenScreen( iWidth.i, iHeight.i, iDepth.i, sTitle.s, iFlags.i, bFullScreen.i = #False )
DeclareDLL.i UBE_OpenWindowedScreen( iWindow.i, X.i, Y.i, iWidth.i, iHeight.i, iDepth.i )
DeclareDLL UBE_ResizeScreen( iWidth.i, iHeight.i )
DeclareDLL.i UBE_ScreenHeight()
DeclareDLL.i UBE_ScreenWidth()
DeclareDLL.i UBE_SetColor( *v4fColor.UBE_COLOR4f, lColor.l )
DeclareDLL UBE_SetScreenTitle( sTitle.s )
DeclareDLL UBE_ShowLogo ( bShow.i = #True )
DeclareDLL.i UBE_SizeOfMemory( *Memory.INTEGER )
DeclareDLL.f UBE_TimeFactor()
DeclareDLL.i UBE_WindowEvent()
DeclareDLL UBE_WireframeMode( bEnable.i = #True )
;- Control
Declare.l UBE_WndProc( hWnd.l, lMessage.l, wParam.l, lParam.l )
DeclareDLL UBE_ExamineKeyboard()
DeclareDLL UBE_ExamineMouse()
DeclareDLL.i UBE_IsMouseInArea( X.i, Y.i, iWidth.i, iHeight.i )
DeclareDLL.i UBE_IsMouseInRange( X.i, Y.i, fRange.f )
DeclareDLL.i UBE_KeyboardDown( Key.i )
DeclareDLL.i UBE_KeyboardPushed( Key.i )
DeclareDLL.i UBE_KeyboardReleased( Key.i )
DeclareDLL UBE_LockMouse( bShowCursor.i = #False)
DeclareDLL.i UBE_MouseButtonDown( Button.i )
DeclareDLL.i UBE_MouseButtonPushed( Button.i )
DeclareDLL.i UBE_MouseButtonReleased( Button.i )
DeclareDLL.i UBE_MouseDeltaX()
DeclareDLL.i UBE_MouseDeltaY()
DeclareDLL UBE_MousePosition( X.i, Y.i )
DeclareDLL.i UBE_MouseWheel()
DeclareDLL.i UBE_MouseX()
DeclareDLL.i UBE_MouseY()
DeclareDLL UBE_UnLockMouse( bShowCursor.i = #True)
;- Joystick
Declare UBE_InitJoysticks()
DeclareDLL.i UBE_ExamineJoysticks()
DeclareDLL.s UBE_JoystickName(iJoystick.i)
DeclareDLL.f UBE_JoystickAxis(iJoystick.i, iAxis.i, fPrecision.f=0.0)
DeclareDLL.f UBE_JoystickAxisDeadzone(iJoystick.i, iAxis.i, fValue.f)
DeclareDLL.f UBE_JoystickPointOfView(iJoystick.i)
DeclareDLL.i UBE_JoystickButtonEvent(iJoystick.i, iButton.i)
DeclareDLL.i UBE_JoystickButtonPushed(iJoystick.i, iButton.i)
DeclareDLL.i UBE_JoystickButtonReleased(iJoystick.i, iButton.i)
;- Camera
Declare UBE_UpdateCameraMatrix()
Declare UBE_InitCamera()
DeclareDLL.f UBE_CameraDirectionX()
DeclareDLL.f UBE_CameraDirectionY()
DeclareDLL.f UBE_CameraDirectionZ()
DeclareDLL.f UBE_CameraPositionX()
DeclareDLL.f UBE_CameraPositionY()
DeclareDLL.f UBE_CameraPositionZ()
DeclareDLL.f UBE_CameraRotationX()
DeclareDLL.f UBE_CameraRotationY()
DeclareDLL.f UBE_CameraRotationZ()
DeclareDLL.f UBE_GetCameraAspect()
DeclareDLL.i UBE_GetCameraDirection()
DeclareDLL.f UBE_GetCameraFar()
DeclareDLL.f UBE_GetCameraFov()
DeclareDLL.f UBE_GetCameraNear()
DeclareDLL.i UBE_GetCameraPosition()
DeclareDLL.i UBE_GetCameraRotation()
DeclareDLL.i UBE_GetProjectionMode()
DeclareDLL UBE_MoveCamera( X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_RotateCamera( X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_SetCameraAspect( fAspect.f )
DeclareDLL UBE_SetCameraFar( fFar.f )
DeclareDLL UBE_SetCameraFov( fFov.f )
DeclareDLL UBE_SetCameraNear( fNear.f )
DeclareDLL UBE_SetCameraPosition( *v3fVector.UBE_VECTOR3f )
DeclareDLL UBE_SetCameraRotation( *qQuaternion.UBE_QUATERNION )
;- Drawing
Declare UBE_InitDrawing()
Declare UBE_Drawing()
DeclareDLL UBE_SetDrawingLineWidth( fLineWidth.f = 1.5 )
DeclareDLL.f UBE_GetDrawingLineWidth()
DeclareDLL UBE_Draw3DLine( X1.f, Y1.f, Z1.f, X2.f, Y2.f, Z2.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DVectorLine( *v3fVertex1.UBE_VECTOR3f, *v3fVertex2.UBE_VECTOR3f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DCross( X.f, Y.f, Z.f, fSize.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DVectorCross( *v3fVertex.UBE_VECTOR3f, fSize.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DBox( X1.f, Y1.f, Z1.f, X2.f, Y2.f, Z2.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DVectorBox( *v3fVertex1.UBE_VECTOR3f, *v3fVertex2.UBE_VECTOR3f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DTrianle( X1.f, Y1.f, Z1.f, X2.f, Y2.f, Z2.f, X3.f, Y3.f, Z3.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DVectorTrianle( *v3fVertex1.UBE_VECTOR3f, *v3fVertex2.UBE_VECTOR3f, *v3fVertex3.UBE_VECTOR3f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DSphere( X.f, Y.f, Z.f, fRadius.f, lColor.l = $FFFFFFFF )
DeclareDLL UBE_Draw3DVectorSphere( *v3fVertex.UBE_VECTOR3f, fRadius.f, lColor.l = $FFFFFFFF )
;- Textures
Declare.i UBE_ImageToTexture( Image.i )
Declare.i UBE_CreateTextureListEntry( *iTexture.INTEGER, sName.s )
DeclareDLL.i UBE_CatchTexture( iTexture.i, *Memory.INTEGER, iFilter.i = #UBE_IGNORE, sName.s = "" )
DeclareDLL UBE_ClipTexture( iTexture.i, X.i = 0, Y.i = 0, lWidth.l = #UBE_DEFAULT, lHeight.l = #UBE_DEFAULT )
DeclareDLL.i UBE_ConvertTextureToImage( iImage.i, iTexture.i )
DeclareDLL.i UBE_CreateEmptyTexture( iTexture.i , lWidth.l, lHeight.l, iFilter.i = #UBE_IGNORE, sName.s = "" )
DeclareDLL.i UBE_CreateTextureFromTO( iTexture.i , glTextureObject.i, lWidth.l, lHeight.l, sName.s = "" )
DeclareDLL.i UBE_CreateTexture( iTexture.i, iImage.i, iFilter.i = #UBE_IGNORE, sName.s = "" )
DeclareDLL UBE_FreeTexture( iTexture.i )
DeclareDLL.i UBE_GetTextureFilter()
DeclareDLL.i UBE_IsTexture( iTexture.i )
DeclareDLL.i UBE_LoadSkyBoxTexture( iSide.i, sFile.s, iFilter.i = #UBE_IGNORE )
DeclareDLL.i UBE_LoadTexture( iTexture.i, sFile.s, iFilter.i = #UBE_IGNORE, iMipmaps.i = 0 )
DeclareDLL.i UBE_LoadTextureDefinition( iTexture.i, *Definition.UBE_DEFINITION, sName.s = "")
DeclareDLL.i UBE_Texture( sName.s )
DeclareDLL.i UBE_ReadTextureFromMemory( iTexture.i, *Memory.INTEGER, lTextureWidth.l, lTextureHeight.l, iFilter.i = #UBE_IGNORE, sName.s = "" )
DeclareDLL UBE_SaveTexture( sFile.s, iTexture.i , iFormat.i = #PB_ImagePlugin_PNG )
DeclareDLL UBE_SetTextureFilter( iFilter.i = #UBE_TEXTURE_FILTER_NONE )
DeclareDLL UBE_StartRenderToTexture( iTexture.i, iMode.i = #UBE_PROJECTIONMODE_2D )
DeclareDLL UBE_StopRenderToTexture( iMode.i = #UBE_PROJECTIONMODE_2D )
DeclareDLL.i UBE_TextureObject( iTexture.i )
DeclareDLL.l UBE_TextureHeight( iTexture.i )
DeclareDLL.i UBE_TextureID( iTexture.i )
DeclareDLL.l UBE_TextureWidth( iTexture.i )
DeclareDLL.i UBE_WriteTextureToMemory( iTexture.i )
;- Octrees
DeclareDLL.i UBE_IsInsideOctree( *pOctreeNode.UBE_OCTREENODE, *v4fPosition.UBE_VECTOR4f )
DeclareDLL.i UBE_IsOctreeInterdection( *pOctreeNode.UBE_OCTREENODE, *v4fPosition.UBE_VECTOR4f, fRange.f )
DeclareDLL.i UBE_CreateOctree(fSize.f, iMaxDepth.i=8)
DeclareDLL.i UBE_SubdivideOctreeNode( *pOctreeNode.UBE_OCTREENODE )
DeclareDLL.i UBE_OctreeDepth( *pOctreeNode.UBE_OCTREENODE )
DeclareDLL.i UBE_CountOctreeNodeFullIntersectionItems( *pOctreeNode.UBE_OCTREENODE )
DeclareDLL.i UBE_FindOctreeNode( *pOctreeNode.UBE_OCTREENODE, *v4fPosition.UBE_VECTOR4f )
Declare.s UBE_OctreeNodePath( *pOctreeNode.UBE_OCTREENODE )
DeclareDLL UBE_AddOctreeLight(*pOctreeNode.UBE_OCTREENODE, *pLight.UBE_LIGHT)
DeclareDLL UBE_DrawOctree(*pOctreeNode.UBE_OCTREENODE)
DeclareDLL UBE_DisplayOctree(*pOctreeNode.UBE_OCTREENODE)
;- Light
Declare.i UBE_UpdateLightMatrix( *Light.UBE_LIGHT )
DeclareDLL.i UBE_CreateLight( iLight.i, X.f, Y.f, Z.f, iType.i = #UBE_LIGHT_POINT )
DeclareDLL.i UBE_CurrentLight()
DeclareDLL UBE_FreeLight( iLight.i )
DeclareDLL.i UBE_GetAmbientColor()
DeclareDLL.i UBE_GetLightColor( iLight.i )
DeclareDLL.f UBE_GetLightRange( iLight.i )
DeclareDLL.f UBE_GetLightHeight( iLight.i )
DeclareDLL.f UBE_GetLightIntensity( iLight.i )
DeclareDLL.i UBE_GetLightStatus( iLight.i )
DeclareDLL.i UBE_GetSunColor()
DeclareDLL.i UBE_IsLight( iLight.i )
DeclareDLL.i UBE_LightID( iLight.i )
DeclareDLL UBE_MoveLight( iLight.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL.f UBE_LightX( iLight.i )
DeclareDLL.f UBE_LightY( iLight.i )
DeclareDLL.f UBE_LightZ( iLight.i )
DeclareDLL.i UBE_NextLight()
DeclareDLL.i UBE_ResetLightList()
DeclareDLL UBE_RotateLight( iLight.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_SetAmbientColor( iColor.i = $FF000000 )
DeclareDLL UBE_SetLightColor( iLight.i, iColor.i = $FFFFFFFF )
DeclareDLL UBE_SetLightRange( iLight.i, fRange.f )
DeclareDLL UBE_SetLightDirection( iLight.i, X.f, Y.f, Z.f )
DeclareDLL UBE_SetLightIntensity( iLight.i, fIntensity.f )
DeclareDLL UBE_SetLightStatus( iLight.i, bEnable.i = #True )
DeclareDLL UBE_SetLightConeAngle( iLight.i, fConeAngle.f = 1.0 )
DeclareDLL UBE_SetSunStatus( bEnable.i = #True )
DeclareDLL UBE_SetSunIntensity( fIntensity.f = 1.0 )
DeclareDLL UBE_SetSunColor( iColor.i = $FFFFFFFF )
DeclareDLL UBE_SetSunDirection( X.f = -0.5 , Y.f = -0.5 , Z.f = -1.0 )
DeclareDLL UBE_UpdateLights( iMode.i = #UBE_PROJECTIONMODE_3D_PERSPECTIVE )
DeclareDLL UBE_DisplayLights( bRange.i = #True)
;- Shader
Declare.i UBE_CreateShaderListEntry( *iShader.INTEGER, iType.i, sName.s )
Declare.s UBE_ShaderCompileProtocol( glShaderObject.i )
Declare UBE_ShaderDefaultID( iShader.i, iID.i )
Declare.i UBE_InitShaderBuffers()
Declare UBE_Init3DShader()
Declare UBE_Init2DShader()
Declare UBE_InitShader()
DeclareDLL UBE_ActivateBBShaderSizeAttribute( iShader.i )
DeclareDLL UBE_ActivateBBShaderNormalAttribute( iShader.i )
DeclareDLL UBE_ActivateBBShaderTangentAttribute( iShader.i )
DeclareDLL UBE_ActivateBBShaderTexCoord0Attribute( iShader.i )
DeclareDLL UBE_ActivateBBShaderTexCoord1Attribute( iShader.i )
DeclareDLL UBE_ActivateBBShaderColorAttribute( iShader.i )
DeclareDLL UBE_Activate3DShaderNormalAttribute( iShader.i )
DeclareDLL UBE_Activate3DShaderTangentAttribute( iShader.i )
DeclareDLL UBE_Activate3DShaderTexCoord0Attribute( iShader.i )
DeclareDLL UBE_Activate3DShaderTexCoord1Attribute( iShader.i )
DeclareDLL UBE_Activate3DShaderColorAttribute( iShader.i )
DeclareDLL UBE_BindRenderTreeShader( *pShader.UBE_SHADER )
DeclareDLL UBE_BindRenderTreeMaterial( *pMaterial.UBE_MATERIAL )
DeclareDLL UBE_BindShader( *Material.UBE_MATERIAL, *ModelMatrix.UBE_MATRIX4f = #Null, *pOctreeNode.UBE_OCTREENODE = #Null )
DeclareDLL UBE_CatchFragmentShader( iShader.i, *MemoryStart.INTEGER, *MemoryEnd.INTEGER )
DeclareDLL UBE_CatchVertexShader( iShader.i, *MemoryStart.INTEGER, *MemoryEnd.INTEGER )
DeclareDLL.i UBE_CreateShader( iShader.i, iType.i, sName.s = "" )
DeclareDLL.i UBE_CreateShaderBuffer( iBuffer.i, iSize.i, *Pointer.INTEGER, iPointerOffset.i = #Null, bDynamic.i = #True )
DeclareDLL UBE_FreeShader( iShader.i )
DeclareDLL UBE_FreeShaderBuffer( iBuffer.i )
DeclareDLL.i UBE_GetShaderBufferOffset( iBuffer.i )
DeclareDLL.i UBE_GetShaderBufferPointer( iBuffer.i )
DeclareDLL.i UBE_GetShaderUniformPointer( iShader.i, iIndex.i )
DeclareDLL.i UBE_GetShaderUniformPointerOffset( iShader.i, iIndex.i )
DeclareDLL.i UBE_IsShader( iShader.i )
DeclareDLL UBE_LinkShader( iShader.i )
DeclareDLL.i UBE_LoadFragmentShader( iShader.i, File.s )
DeclareDLL UBE_LoadVertexShader( iShader.i, File.s )
DeclareDLL.i UBE_MaxShaderBuffer()
DeclareDLL UBE_SetShaderBufferLocation( iShader.i, iBuffer, sName.s )
DeclareDLL UBE_SetShaderBufferOffset( iBuffer.i, iOffset.i )
DeclareDLL UBE_SetShaderBufferPointer( iBuffer.i, *Pointer.INTEGER, iPointerOffset.i = #Null )
DeclareDLL.i UBE_SetShaderUniformLocation( iShader.i, iUniformType.i, sName.s, iIndex.i, *Pointer.INTEGER = #Null, iPointerOffset.i = #Null, iSize.i = 1 )
DeclareDLL.i UBE_SetShaderUniformPointer( iShader.i, iIndex.i, *Pointer.INTEGER, iPointerOffset.i = #Null, iSize.i = 1 )
DeclareDLL.i UBE_Shader( sName.s )
DeclareDLL.i UBE_ShaderID( iShader.i )
DeclareDLL UBE_UpdateShaderBuffer( iBuffer.i )
;- Materials
Declare.i UBE_CreateMaterialListEntry( *iMaterial.INTEGER, sName.s )
DeclareDLL.i UBE_CopyMaterial( iSourceMaterial.i, iDestinationMaterial.i )
DeclareDLL.i UBE_CreateMaterial( iMaterial.i, iTexture.i = 0, iDefaultShader.i = #UBE_SHADER_3D_NONE, sName.s = "" )
DeclareDLL UBE_FreeMaterial( iMaterial.i )
DeclareDLL.i UBE_GetMaterialColor( iMaterial.i )
DeclareDLL.f UBE_GetMaterialHardness( iMaterial.i )
DeclareDLL.f UBE_GetMaterialReflection( iMaterial.i )
DeclareDLL.i UBE_GetMaterialShader( iMaterial.i )
DeclareDLL.f UBE_GetMaterialShine( iMaterial.i )
DeclareDLL.i UBE_GetMaterialShineColor( iMaterial.i )
DeclareDLL.i UBE_GetMaterialTexture( iMaterial.i, iIndex.i )
DeclareDLL.i UBE_IsMaterial( iMaterial.i )
DeclareDLL.i UBE_LoadMaterialDefinition( iMaterial.i, *Definition.UBE_DEFINITION, sName.s="" )
DeclareDLL UBE_LoadAllMaterials( *Pointer.INTEGER = #Null )
DeclareDLL.i UBE_Material( sName.s )
DeclareDLL.i UBE_MaterialID( iMaterial.i )
DeclareDLL.i UBE_NumberOfMaterialDefinitions()
DeclareDLL UBE_SetMaterialBlendingMode( iMaterial.i, lOutputMode.l = #UBE_BLENDMODE_SRC_ALPHA, lTargetMode.l = #UBE_BLENDMODE_ONE_MINUS_SRC_ALPHA )
DeclareDLL UBE_SetMaterialColor( iMaterial.i, iColor.i = $FFFFFFFF )
DeclareDLL UBE_SetMaterialHardness( iMaterial.i, fHardness.f = 1.0 )
DeclareDLL UBE_SetMaterialReflection( iMaterial.i, fReflection.f = 1.0 )
DeclareDLL UBE_SetMaterialSurfaceScattering( iMaterial.i, fSurfaceScattering.f = 0.0 )
DeclareDLL UBE_SetMaterialDefaultShader( iMaterial.i, iDefaultShader.i = #UBE_SHADER_3D_NONE )
DeclareDLL UBE_SetMaterialShader( iMaterial.i, iShader.i )
DeclareDLL UBE_SetMaterialShine( iMaterial.i, fShine.f = 1.0 )
DeclareDLL UBE_SetMaterialShineColor( iMaterial.i, iColor.i = $FFFFFFFF )
DeclareDLL UBE_SetMaterialTexture( iMaterial.i, iIndex.i, iTexture.i = 0 )
DeclareDLL UBE_SetMaterialValue( iMaterial.i, iIndex.i, fValue.f = 0 )
;- Sprites
Declare.i UBE_UpdateSpriteMatrix( *Sprite.UBE_SPRITE )
DeclareDLL UBE_ClipSprite( iSprite.i, X.f, Y.f, fWidth.f, fHeight.f )
DeclareDLL UBE_ClipSpriteInPixel( iSprite.i, X.i, Y.i, iWidth.i, iHeight.i )
DeclareDLL.i UBE_CreateSprite( iSprite.i, iMaterial.i, iMode.i = #UBE_SPRITE_ALIGNMENTPOINT_CENTER, bTextureObject.i = #False )
DeclareDLL UBE_DisplaySprite( iSprite.i, X.f, Y.f )
DeclareDLL UBE_FreeSprite( iSprite.i )
DeclareDLL.f UBE_GetSpriteDepth( iSprite.i )
DeclareDLL.i UBE_GetSpriteMaterial( iSprite.i )
DeclareDLL.f UBE_GetSpriteHeight( iSprite.i )
DeclareDLL.f UBE_GetSpriteRotation( iSprite.i )
DeclareDLL.f UBE_GetSpriteWidth( iSprite.i )
DeclareDLL.i UBE_IsSprite( iSprite.i )
DeclareDLL UBE_SetSpriteDepth( iSprite.i, fDepth.f = 0.0 )
DeclareDLL UBE_SetSpriteMaterial( iSprite.i, iMaterial.i )
DeclareDLL UBE_SetSpriteRotation( iSprite.i, fRotation.f, iMode.i = #UBE_ABSOLUTE )
DeclareDLL.f UBE_SpriteHeight( iSprite.i )
DeclareDLL.i UBE_SpriteID( iSprite.i )
DeclareDLL.f UBE_SpriteWidth( iSprite.i )
DeclareDLL UBE_TransformSprite( iSprite.i, X1.f, Y1.f, X2.f, Y2.f, X3.f, Y3.f, X4.f, Y4.f )
DeclareDLL UBE_ZoomSprite( iSprite.i, fWidth.f, fHeight.f )
;- Mesh
Declare.i UBE_CreateMeshListEntry( *iMesh.INTEGER, sName.s )
DeclareDLL UBE_AddMeshData( iMesh.i, iSourceMesh.i, X.f, Y.f, Z.f, RX.f = 0.0, RY.f = 0.0, RZ.f = 0.0, SX.f = 1.0, SY.f = 1.0, SZ.f = 1.0 )
DeclareDLL.i UBE_CalculateMeshTangents( iMesh.i )
DeclareDLL.i UBE_CreateMesh( iMesh.i, sName.s = "" )
DeclareDLL.i UBE_CreatePlaneMesh( iMesh.i, fSize.f = 1.0, sName.s = "" )
DeclareDLL UBE_FinishMesh( iMesh.i )
DeclareDLL UBE_FreeMesh( iMesh.i )
DeclareDLL.i UBE_GetMeshFaceCount( iMesh.i )
DeclareDLL.i UBE_GetMeshIndicesCount( iMesh.i )
DeclareDLL.i UBE_GetMeshNormal( iMesh.i, iIndex.i )
DeclareDLL.i UBE_GetMeshTexCoord( iMesh.i, iIndex.i )
DeclareDLL.i UBE_GetMeshVector( iMesh.i, iIndex.i )
DeclareDLL.i UBE_GetMeshVertexCount( iMesh.i )
DeclareDLL.i UBE_IsMesh( iMesh.i )
DeclareDLL.i UBE_LoadMesh( iMesh.i, sFile.s, sName.s = "", bInvertVertices.i = #False )
DeclareDLL.i UBE_LoadOBJMesh( iMesh.i, sFile.s, sName.s = "" )
DeclareDLL.i UBE_Mesh( sName.s )
DeclareDLL.i UBE_MeshID( iMesh.i )
DeclareDLL UBE_SaveMesh( iMesh.i, sFile.s, sName.s = "" )
DeclareDLL UBE_SetMeshFace( iMesh.i, iIndex.i, Vertex1.i, Vertex2.i, Vertex3.i )
DeclareDLL.i UBE_SetMeshFaceCount( iMesh.i, iFaceCount.i )
DeclareDLL.i UBE_SetMeshIndicesCount( iMesh.i, iIndicesCount.i )
DeclareDLL UBE_SetMeshNormals( iMesh.i, iIndex.i, X.f, Y.f, Z.f )
DeclareDLL UBE_SetMeshTexCoord( iMesh.i, iIndex.i, U.f, V.f )
DeclareDLL UBE_SetMeshVertex( iMesh.i, iIndex.i, X.f, Y.f, Z.f, W.f = 1.0 )
DeclareDLL.i UBE_SetMeshVertexCount( iMesh.i, iVertexCount.i )
DeclareDLL UBE_UpdateMesh( iMesh.i )
;- Objects
Declare.i UBE_CreateObjectListEntry( *iObject.INTEGER, sName.s )
Declare.i UBE_UpdateObjectMatrix( *Object.UBE_OBJECT )
Declare.i UBE_MultiplyParentObjectMatrix(*m4fTarget.UBE_MATRIX4f, *pObject.UBE_OBJECT)
DeclareDLL.i UBE_CreateObject( iObject.i, iMesh.i, iMaterial.i, sName.s = "" )
DeclareDLL UBE_FreeObject( iObject.i )
DeclareDLL.i UBE_GetObjectPosition( iObject.i )
DeclareDLL.f UBE_GetObjectPositionX( iObject.i )
DeclareDLL.f UBE_GetObjectPositionY( iObject.i )
DeclareDLL.f UBE_GetObjectPositionZ( iObject.i )
DeclareDLL.f UBE_GetObjectRotationX( iObject.i )
DeclareDLL.f UBE_GetObjectRotationY( iObject.i )
DeclareDLL.f UBE_GetObjectRotationZ( iObject.i )
DeclareDLL.f UBE_GetObjectScalingX( iObject.i )
DeclareDLL.f UBE_GetObjectScalingY( iObject.i )
DeclareDLL.f UBE_GetObjectScalingZ( iObject.i )
DeclareDLL.i UBE_GetObjectState( iObject.i )
DeclareDLL.i UBE_IsObject( iObject.i )
DeclareDLL UBE_MoveObject( iObject.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL.i UBE_Object( sName.s )
DeclareDLL.i UBE_ObjectID( iObject.i )
DeclareDLL UBE_RotateObject( iObject.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_ScaleObject( iObject.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE )
DeclareDLL UBE_SetObjectMaterial( iObject.i, iMaterial.i )
DeclareDLL UBE_SetObjectMesh( iObject.i, iMesh.i )
DeclareDLL UBE_SetObjectPosition( iObject.i, *v4fPosition.UBE_VECTOR4f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_SetObjectShadow( iObject.i, bEnable.i = #True )
DeclareDLL UBE_SetObjectState( iObject.i, bEnable.i = #True )
;- Scene
Declare.i UBE_AddShaderToRenderTree( iBranch.i, *pShader.UBE_SHADER )
Declare.i UBE_AddMaterialToRenderTree( *pMaterial.UBE_MATERIAL )
Declare.i UBE_AddObjectToRenderTree( *pObject.UBE_OBJECT )
Declare.i UBE_DeleteShaderFromRenderTree( *pShader.UBE_SHADER )
Declare.i UBE_DeleteMaterialFromRenderTree( *pMaterial.UBE_MATERIAL )
Declare.i UBE_DeleteObjectFromRenderTree( *pObject.UBE_OBJECT )
Declare.i UBE_ResetObjectListFromRenderTree( *pMaterial.UBE_MATERIAL )
Declare.i UBE_NextObjectListFromRenderTree( *pMaterial.UBE_MATERIAL )
DeclareDLL.i UBE_GetGlowStatus()
DeclareDLL.f UBE_GetGlowSize()
DeclareDLL UBE_RenderScene()
DeclareDLL UBE_SetGlowStatus( bStatus.i = #UBE_ON )
DeclareDLL UBE_SetGlowSize( fSize.f = 2.5 )
;- Physics
;| Declares: Font |;
Declare UBE_Font_Create( Font.i, *CharacterSet.UBE_FONTCHARACTERSET = #Null )
Declare.i UBE_Font_KerningAmount( *Font.UBE_FONT, CharacterPair.q )
Declare.i UBE_Font_Frame( *Font.UBE_FONT, *Character.UBE_CHARACTERARRAY, Size.f, *Width.FLOAT = #Null, *Height.FLOAT = #Null )
Declare UBE_Font_AddKerningPair( *Font.UBE_FONT, LeftCharacter.c, RightCharacter.c, Amount.i )
Declare.i UBE_Font_Catch_TF( *Font.UBE_FONT, *Memory.UBE_FONTCHUNK )
Declare UBE_Font_TransformVertices( *Font.UBE_FONT, *Vertices.UBE_FONTVERTICES )
Declare UBE_Font_BendVertices( *Font.UBE_FONT, *Vertices.UBE_FONTVERTICES, X.f, Y.f )
DeclareDLL.i UBE_FontID( Font.i )
DeclareDLL.i UBE_IsFont( Font.i )
DeclareDLL.i UBE_FreeFont( Font.i )
DeclareDLL.i UBE_CopyFont( SourceFont.i, Font.i )
DeclareDLL.i UBE_CatchFont( Font.i, *Memory, Path.s = "" )
DeclareDLL.i UBE_LoadFont( Font.i, FileName.s )
DeclareDLL UBE_FontReset( Font.i )
DeclareDLL UBE_FontWordWrap( Font.i, Width.f = 0.0 )
DeclareDLL UBE_FontColor( Font.i, Color.i )
DeclareDLL UBE_FontSpace( Font.i, LetterSpace.f = #UBE_IGNORE, WordSpace.f = #UBE_IGNORE )
DeclareDLL UBE_FontSize( Font.i, Size.f, Mode.i = #UBE_RELATIVE )
DeclareDLL UBE_FontRotation( Font.i, Roll.f, Yaw.f = 0.0, Pitch.f = 0.0 )
DeclareDLL UBE_FontBendRadius( Font.i, BendRadius.f )
DeclareDLL UBE_FontItalic( Font.i, Italic.f )
DeclareDLL UBE_FontAlign( Font.i, AlignH.f, AlignV.f = #UBE_DEFAULT )
DeclareDLL UBE_FontOrigin( Font.i, X.f = 0, Y.f = 0, Z.f = #UBE_FONT_TRANSLATIONZ )
DeclareDLL UBE_FontKerning( Font.i, State.i )
DeclareDLL UBE_FontDimension( Font.i, *Character.UBE_CHARACTERARRAY, *Width.FLOAT = #Null, *Height.FLOAT = #Null, Size.f = #UBE_IGNORE )
DeclareDLL.f UBE_FontWidth( Font.i, Text.s, Size.f = #UBE_IGNORE )
DeclareDLL.f UBE_FontHeight( Font.i, Text.s, Size.f = #UBE_IGNORE )
DeclareDLL UBE_DisplayFont( Font.i, X.f, Y.f, Text.s, Color.i = #UBE_IGNORE, Size.f = #UBE_IGNORE, Italic.f = #UBE_IGNORE )
;- Particles
Declare.i UBE_UpdateParticleEmitterMatrix( *ParticleEmitter.UBE_PARTICLE_EMITTER )
DeclareDLL.i UBE_CountParticles( iParticleEmitter.i = #UBE_ALL )
DeclareDLL.i UBE_CreateParticleEmitter( iParticleEmitter.i, iMaterial.i, iMaxParticles = 256 )
DeclareDLL UBE_DisplayParticles()
DeclareDLL UBE_ExamineParticleEmitters()
DeclareDLL UBE_FreeParticleEmitter( iParticleEmitter.i )
DeclareDLL.i UBE_GetParticleEmitterMaterial( ParticleEmitter.i )
DeclareDLL.i UBE_LoadParticleEmitter( iParticleEmitter.i, sFile.s, iMaxParticles = 256 )
DeclareDLL UBE_MoveParticleEmitter( ParticleEmitter.i, X.f, Y.f, Z.f, Mode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL.i UBE_ParticleEmitterDefinition( iParticleEmitter.i, *Definition.UBE_DEFINITION, Path.s = "" )
DeclareDLL.i UBE_ParticleEmitterID( iParticleEmitter.i )
DeclareDLL UBE_RotateParticleEmitter( iParticleEmitter.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_SetParticleEmitterStatus( ParticleEmitter.i, bEnable.i = #True )
;- Sounds
Declare.i UBE_CreateSoundListEntry( *iSound.INTEGER, sName.s )
Declare.i UBE_CreateSound( iSound.i, sName.s, iSource.i, iMode.i = #UBE_SOUND_DEFAULT )
Declare UBE_UpdateSoundMatrix( *Sound.UBE_SOUND )
DeclareDLL.i UBE_CatchSound( iSound.i, *Memory, iLength.i, iMode.i = #UBE_SOUND_DEFAULT, sName.s = "" )
DeclareDLL.i UBE_ExamineSounds()
DeclareDLL UBE_FreeSound( iSound.i )
DeclareDLL.f UBE_GetSoundPosition( iSound.i )
DeclareDLL.i UBE_IsSound( iSound.i )
DeclareDLL.i UBE_LoadSound( iSound.i, sName.s)
DeclareDLL.i UBE_LoadSoundDefinition( iSound.i, *Definition.UBE_DEFINITION, sPath.s="" )
DeclareDLL.i UBE_LoadSoundFile( iSound.i, sFile.s, iMode.i = #UBE_SOUND_DEFAULT, sName.s = "" )
DeclareDLL UBE_MoveSound( iSound.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL.i UBE_PlaySound( iSound.i, iMode.i = #UBE_IGNORE )
DeclareDLL UBE_RotateSound( iSound.i, X.f, Y.f, Z.f, iMode.i = #UBE_ABSOLUTE|#UBE_PARENT )
DeclareDLL UBE_SetSoundPosition( iSound.i, fPosition.f )
DeclareDLL UBE_SoundCone( iSound.i, fMin.f, fMax.f )
DeclareDLL UBE_SoundDirection( iSound.i, X.f, Y.f, Z.f )
DeclareDLL UBE_SoundFrequency( iSound.i, fFrequency.f )
DeclareDLL.i UBE_SoundID( iSound.i )
DeclareDLL.f UBE_SoundLength( iSound.i )
DeclareDLL UBE_SoundRange( iSound.i, fMin.f, fMax.f )
DeclareDLL UBE_SoundVolume( iSound.i, fVolume.f )
DeclareDLL UBE_StopSound( iSound.i )