FreeBASIC binding of Irrlicht 3D engine 1.8.6

Headers, Bindings, Libraries for use with FreeBASIC, Please include example of use to help ensure they are tested and usable.
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

Early preview of my community christmas gift 2021 !

The primary classes are implemented and waiting for testing ;-)

If it's more complete I will provide Windows/Linux 32/64-bit.

Irrlicht homepage: https://irrlicht.sourceforge.io/

Irrlicht forum: https://irrlicht.sourceforge.io/forum/

latest downloads from: Sat Jan 15, 2022 (maybe you have extra allow the download I use http: not https: on my own server)

Windows: irrlicht-1.8.6-c.zip

Linux: irrlicht-1.8.6-c.tar.gz

source code as Code::Blocks project: irrlicht-1.8.6-c-src.zip

Joshy

~1230 methods

Code: Select all

AnimatedMeshDrop
AnimatedMeshGetAnimationSpeed
AnimatedMeshGetFrameCount
AnimatedMeshGetMesh
AnimatedMeshGetMeshType
AnimatedMeshMD2Drop
AnimatedMeshMD2GetAnimationCount
AnimatedMeshMD2GetAnimationName
AnimatedMeshMD2GetFrameLoopByName
AnimatedMeshMD2GetFrameLoopByType
AnimatedMeshMD3Drop
AnimatedMeshMD3GetOriginalMesh
AnimatedMeshMD3GetTagList
AnimatedMeshMD3SetInterpolationShift
AnimatedMeshSceneNodeAddShadowVolumeSceneNode
AnimatedMeshSceneNodeAnimateJoints
AnimatedMeshSceneNodeClone
AnimatedMeshSceneNodeDrop
AnimatedMeshSceneNodeGetAnimationSpeed
AnimatedMeshSceneNodeGetEndFrame
AnimatedMeshSceneNodeGetFrameNr
AnimatedMeshSceneNodeGetJointCount
AnimatedMeshSceneNodeGetJointNodeByID
AnimatedMeshSceneNodeGetJointNodeByName
AnimatedMeshSceneNodeGetLoopMode
AnimatedMeshSceneNodeGetMD3TagTransformation
AnimatedMeshSceneNodeGetMesh
AnimatedMeshSceneNodeGetStartFrame
AnimatedMeshSceneNodeIsReadOnlyMaterials
AnimatedMeshSceneNodeSetAnimationEndCallback
AnimatedMeshSceneNodeSetAnimationSpeed
AnimatedMeshSceneNodeSetCurrentFrame
AnimatedMeshSceneNodeSetFrameLoop
AnimatedMeshSceneNodeSetJointMode
AnimatedMeshSceneNodeSetLoopMode
AnimatedMeshSceneNodeSetMD2AnimationByName
AnimatedMeshSceneNodeSetMD2AnimationByType
AnimatedMeshSceneNodeSetMesh
AnimatedMeshSceneNodeSetReadOnlyMaterials
AnimatedMeshSceneNodeSetRenderFromIdentity
AnimatedMeshSceneNodeSetTransitionTime
AnimatedMeshSetAnimationSpeed
AttributeExchangingObjectDeserializeAttributes
AttributeExchangingObjectDrop
AttributeExchangingObjectSerializeAttributes
BillboardSceneNodeDrop
BillboardSceneNodeGetColor
BillboardSceneNodeGetSize
BillboardSceneNodeGetSize2
BillboardSceneNodeSetColor
BillboardSceneNodeSetColor2
BillboardSceneNodeSetSize
BillboardSceneNodeSetSize2
BillboardTextSceneNodeDrop
BillboardTextSceneNodeGetColor
BillboardTextSceneNodeGetSize
BillboardTextSceneNodeSetColor
BillboardTextSceneNodeSetColor2
BillboardTextSceneNodeSetSize
BillboardTextSceneNodeSetText
BillboardTextSceneNodeSetTextColor
BoneSceneNodeDrop
BoneSceneNodeGetAnimationMode
BoneSceneNodeGetBoneIndex
BoneSceneNodeGetBoundingBox
BoneSceneNodeGetSkinningSpace
BoneSceneNodeOnAnimate
BoneSceneNodeRender
BoneSceneNodeSetAnimationMode
BoneSceneNodeSetSkinningSpace
BoneSceneNodeUpdateAbsolutePositionOfAllChildren
CameraSceneNodeBindTargetAndRotation
CameraSceneNodeDeserializeAttributes
CameraSceneNodeDrop
CameraSceneNodeGetAspectRatio
CameraSceneNodeGetFOV
CameraSceneNodeGetFarValue
CameraSceneNodeGetNearValue
CameraSceneNodeGetProjectionMatrix
CameraSceneNodeGetTarget
CameraSceneNodeGetTargetAndRotationBinding
CameraSceneNodeGetUpVector
CameraSceneNodeGetViewFrustum
CameraSceneNodeGetViewMatrix
CameraSceneNodeGetViewMatrixAffector
CameraSceneNodeIsInputReceiverEnabled
CameraSceneNodeIsOrthogonal
CameraSceneNodeOnEvent
CameraSceneNodeSerializeAttributes
CameraSceneNodeSetAspectRatio
CameraSceneNodeSetFOV
CameraSceneNodeSetFarValue
CameraSceneNodeSetInputReceiverEnabled
CameraSceneNodeSetNearValue
CameraSceneNodeSetProjectionMatrix
CameraSceneNodeSetRotation
CameraSceneNodeSetTarget
CameraSceneNodeSetUpVector
CameraSceneNodeSetViewMatrixAffector
CreateDevice
CreateDeviceEx
CursorControlAddIcon
CursorControlChangeIcon
CursorControlDrop
CursorControlGetActiveIcon
CursorControlGetPlatformBehavior
CursorControlGetPosition
CursorControlGetRelativePosition
CursorControlGetSupportedIconSize
CursorControlIsVisible
CursorControlSetActiveIcon
CursorControlSetPlatformBehavior
CursorControlSetPosition2df
CursorControlSetPosition2di
CursorControlSetPositionfxy
CursorControlSetPositionixy
CursorControlSetReferenceRect
CursorControlSetVisible
DeviceActivateJoysticks
DeviceClearSystemMessages
DeviceClose
DeviceCreateDefaultRandomizer
DeviceDrop
DeviceGetColorFormat
DeviceGetCursorControl
DeviceGetEventReceiver
DeviceGetFileSystem
DeviceGetGUIEnvironment
DeviceGetGammaRamp
DeviceGetLogger
DeviceGetOSOperator
DeviceGetRandomizer
DeviceGetSceneManager
DeviceGetTimer
DeviceGetType
DeviceGetVersion
DeviceGetVideoDriver
DeviceGetVideoModeList
DeviceIsFullscreen
DeviceIsWindowActive
DeviceIsWindowFocused
DeviceIsWindowMinimized
DeviceMaximizeWindow
DeviceMinimizeWindow
DevicePostEventFromUser
DeviceRestoreWindow
DeviceRun
DeviceSetEventReceiver
DeviceSetGammaRamp
DeviceSetInputReceivingSceneManager
DeviceSetRandomizer
DeviceSetResizable
DeviceSetWindowCaption
DeviceSleep
DeviceYield
DriverAddDynamicLight
DriverAddExternalImageLoader
DriverAddExternalImageWriter
DriverAddMaterialRenderer
DriverAddOcclusionQuery
DriverAddRenderTargetTexture
DriverAddTextureBySize
DriverAddTextureFromImage
DriverBeginScene
DriverCheckDriverReset
DriverClearZBuffer
DriverConvertColor
DriverCreateAttributesFromMaterial
DriverCreateImage
DriverCreateImageFromData
DriverCreateImageFromFile
DriverCreateImageFromPath
DriverCreateImageFromTexture
DriverCreateScreenShot
DriverDeleteAllDynamicLights
DriverDisableFeature
DriverDraw2DImage
DriverDraw2DImageBatch
DriverDraw2DImageBatchRow
DriverDraw2DImageColor
DriverDraw2DImageColors
DriverDraw2DLine
DriverDraw2DPolygon
DriverDraw2DRectangle
DriverDraw2DRectangleGradient
DriverDraw2DRectangleOutline
DriverDraw2DVertexPrimitiveList
DriverDraw3DBox
DriverDraw3DLine
DriverDraw3DTriangle
DriverDrawIndexedTriangle2TCoordsFan
DriverDrawIndexedTriangle2TCoordsList
DriverDrawIndexedTriangleFan
DriverDrawIndexedTriangleList
DriverDrawIndexedTriangleTangentsFan
DriverDrawIndexedTriangleTangentsList
DriverDrawMeshBuffer
DriverDrawMeshBufferNormals
DriverDrawPixel
DriverDrawStencilShadow
DriverDrawStencilShadowVolume
DriverDrawVertexPrimitiveList
DriverDrop
DriverEnableClipPlane
DriverEndScene
DriverFillMaterialStructureFromAttributes
DriverFindTexture
DriverGetColorFormat
DriverGetCurrentRenderTargetSize
DriverGetDriverAttributes
DriverGetDriverType
DriverGetDynamicLight
DriverGetDynamicLightCount
DriverGetExposedVideoData
DriverGetFPS
DriverGetFog
DriverGetGPUProgrammingServices
DriverGetImageLoader
DriverGetImageLoaderCount
DriverGetImageWriter
DriverGetImageWriterCount
DriverGetMaterial2D
DriverGetMaterialRenderer
DriverGetMaterialRendererCount
DriverGetMaterialRendererName
DriverGetMaxTextureSize
DriverGetMaximalDynamicLightAmount
DriverGetMaximalPrimitiveCount
DriverGetMeshManipulator
DriverGetName
DriverGetOcclusionQueryResult
DriverGetOverrideMaterial
DriverGetPrimitiveCountDrawn
DriverGetScreenSize
DriverGetTextureByIndex
DriverGetTextureCount
DriverGetTextureCreationFlag
DriverGetTextureFromFile
DriverGetTextureFromPath
DriverGetTransform
DriverGetVendorInfo
DriverGetViewPort
DriverMakeColorKeyTexture
DriverMakeColorKeyTextureByPosition
DriverMakeNormalMapTexture
DriverQueryFeature
DriverRemoveAllHardwareBuffers
DriverRemoveAllOcclusionQueries
DriverRemoveAllTextures
DriverRemoveHardwareBuffer
DriverRemoveOcclusionQuery
DriverRemoveTexture
DriverRenameTexture
DriverRunAllOcclusionQueries
DriverRunOcclusionQuery
DriverSetAllowZWriteOnTransparent
DriverSetAmbientLight
DriverSetClipPlane
DriverSetFog
DriverSetMaterial
DriverSetMaterialRendererName
DriverSetMinHardwareBufferVertexCount
DriverSetRenderTarget
DriverSetRenderTargetBuffer
DriverSetRenderTargets
DriverSetTextureCreationFlag
DriverSetTransform
DriverSetViewPort
DriverTurnLightOn
DriverUpdateAllOcclusionQueries
DriverUpdateOcclusionQuery
DriverWriteImageToFile
DriverWriteImageToPath
DummyTransformationSceneNodeDrop
DummyTransformationSceneNodeGetRelativeTransformationMatrix
GUIButtonDrop
GUIButtonGetActiveFont
GUIButtonGetOverrideFont
GUIButtonIsAlphaChannelUsed
GUIButtonIsDrawingBorder
GUIButtonIsPressed
GUIButtonIsPushButton
GUIButtonIsScalingImage
GUIButtonSetDrawBorder
GUIButtonSetImage
GUIButtonSetImageByPostion
GUIButtonSetIsPushButton
GUIButtonSetOverrideFont
GUIButtonSetPressed
GUIButtonSetPressedImage
GUIButtonSetPressedImageByPosition
GUIButtonSetScaleImage
GUIButtonSetSprite
GUIButtonSetSpriteBank
GUIButtonSetUseAlphaChannel
GUICheckBoxDrop
GUICheckBoxIsChecked
GUICheckBoxSetChecked
GUIComboBoxAddItem
GUIComboBoxClear
GUIComboBoxDrop
GUIComboBoxGetIndexForItemData
GUIComboBoxGetItem
GUIComboBoxGetItemCount
GUIComboBoxGetItemData
GUIComboBoxGetMaxSelectionRows
GUIComboBoxGetSelected
GUIComboBoxRemoveItem
GUIComboBoxSetMaxSelectionRows
GUIComboBoxSetSelected
GUIComboBoxSetTextAlignment
GUIContextMenuAddItem
GUIContextMenuAddSeparator
GUIContextMenuDrop
GUIContextMenuFindItemWithCommandId
GUIContextMenuGetCloseHandling
GUIContextMenuGetItemAutoChecking
GUIContextMenuGetItemCommandId
GUIContextMenuGetItemCount
GUIContextMenuGetItemText
GUIContextMenuGetSelectedItem
GUIContextMenuGetSubMenu
GUIContextMenuInsertItem
GUIContextMenuIsItemChecked
GUIContextMenuIsItemEnabled
GUIContextMenuRemoveAllItems
GUIContextMenuRemoveItem
GUIContextMenuSetCloseHandling
GUIContextMenuSetEventParent
GUIContextMenuSetItemAutoChecking
GUIContextMenuSetItemChecked
GUIContextMenuSetItemCommandId
GUIContextMenuSetItemEnabled
GUIContextMenuSetItemText
GUIEditBoxDrop
GUIEditBoxEnableOverrideColor
GUIEditBoxGetActiveFont
GUIEditBoxGetMax
GUIEditBoxGetOverrideColor
GUIEditBoxGetOverrideFont
GUIEditBoxGetTextDimension
GUIEditBoxIsAutoScrollEnabled
GUIEditBoxIsMultiLineEnabled
GUIEditBoxIsOverrideColorEnabled
GUIEditBoxIsPasswordBox
GUIEditBoxIsWordWrapEnabled
GUIEditBoxSetAutoScroll
GUIEditBoxSetDrawBackground
GUIEditBoxSetDrawBorder
GUIEditBoxSetMax
GUIEditBoxSetMultiLine
GUIEditBoxSetOverrideColor
GUIEditBoxSetPasswordBox
GUIEditBoxSetTextAlignment
GUIEditBoxSetWordWrap
GUIElementAddChild
GUIElementBringToFront
GUIElementDeserializeAttributes
GUIElementDraw
GUIElementDrop
GUIElementGetAbsoluteClippingRect
GUIElementGetAbsolutePosition
GUIElementGetElementFromId
GUIElementGetElementFromPoint
GUIElementGetID
GUIElementGetName
GUIElementGetNextElement
GUIElementGetParent
GUIElementGetRelativePosition
GUIElementGetTabGroup
GUIElementGetTabOrder
GUIElementGetText
GUIElementGetToolTipText
GUIElementGetType
GUIElementGetTypeName
GUIElementHasType
GUIElementIsEnabled
GUIElementIsMyChild
GUIElementIsNotClipped
GUIElementIsPointInside
GUIElementIsSubElement
GUIElementIsTabGroup
GUIElementIsTabStop
GUIElementIsVisible
GUIElementMove
GUIElementOnEvent
GUIElementOnPostRender
GUIElementRemove
GUIElementRemoveChild
GUIElementSendToBack
GUIElementSerializeAttributes
GUIElementSetAlignment
GUIElementSetEnabled
GUIElementSetID
GUIElementSetMaxSize
GUIElementSetMinSize
GUIElementSetName
GUIElementSetNotClipped
GUIElementSetRelativePosition
GUIElementSetRelativePositionByRect
GUIElementSetRelativePositionProportional
GUIElementSetSubElement
GUIElementSetTabGroup
GUIElementSetTabOrder
GUIElementSetTabStop
GUIElementSetText
GUIElementSetToolTipText
GUIElementSetVisible
GUIElementUpdateAbsolutePosition
GUIEnvironmentAddButton
GUIEnvironmentAddCheckBox
GUIEnvironmentAddColorSelectDialog
GUIEnvironmentAddComboBox
GUIEnvironmentAddContextMenu
GUIEnvironmentAddEditBox
GUIEnvironmentAddEmptySpriteBankByPath
GUIEnvironmentAddFileOpenDialog
GUIEnvironmentAddFontByPath
GUIEnvironmentAddGUIElement
GUIEnvironmentAddImage
GUIEnvironmentAddImageByTexture
GUIEnvironmentAddInOutFader
GUIEnvironmentAddListBox
GUIEnvironmentAddMenu
GUIEnvironmentAddMeshViewer
GUIEnvironmentAddMessageBox
GUIEnvironmentAddModalScreen
GUIEnvironmentAddScrollBar
GUIEnvironmentAddSpinBox
GUIEnvironmentAddStaticText
GUIEnvironmentAddTab
GUIEnvironmentAddTabControl
GUIEnvironmentAddTable
GUIEnvironmentAddToolBar
GUIEnvironmentAddTreeView
GUIEnvironmentAddWindow
GUIEnvironmentClear
GUIEnvironmentCreateImageList
GUIEnvironmentCreateSkin
GUIEnvironmentDeserializeAttributes
GUIEnvironmentDrawAll
GUIEnvironmentDrop
GUIEnvironmentGetBuiltInFont
GUIEnvironmentGetDefaultGUIElementFactory
GUIEnvironmentGetFileSystem
GUIEnvironmentGetFocus
GUIEnvironmentGetFontByPath
GUIEnvironmentGetGUIElementFactory
GUIEnvironmentGetHovered
GUIEnvironmentGetOSOperator
GUIEnvironmentGetRegisteredGUIElementFactoryCount
GUIEnvironmentGetRootGUIElement
GUIEnvironmentGetSkin
GUIEnvironmentGetSpriteBankByPath
GUIEnvironmentGetVideoDriver
GUIEnvironmentHasFocus
GUIEnvironmentLoadGUIByFile
GUIEnvironmentLoadGUIByPath
GUIEnvironmentPostEventFromUser
GUIEnvironmentReadGUIElement
GUIEnvironmentRegisterGUIElementFactory
GUIEnvironmentRemoveFocus
GUIEnvironmentRemoveFont
GUIEnvironmentSaveGUIByFile
GUIEnvironmentSaveGUIByPath
GUIEnvironmentSerializeAttributes
GUIEnvironmentSetFocus
GUIEnvironmentSetSkin
GUIEnvironmentSetUserEventReceiver
GUIEnvironmentWriteGUIElement
GUIFileOpenDialogDrop
GUIFileOpenDialogGetDirectoryName
GUIFileOpenDialogGetFileName
GUIFontDraw
GUIFontDrop
GUIFontGetCharacterFromPos
GUIFontGetDimension
GUIFontGetKerningHeight
GUIFontGetKerningWidth
GUIFontGetType
GUIFontSetInvisibleCharacters
GUIFontSetKerningHeight
GUIFontSetKerningWidth
GUIImageDrop
GUIImageGetColor
GUIImageGetImage
GUIImageIsAlphaChannelUsed
GUIImageIsImageScaled
GUIImageListDraw
GUIImageListDrop
GUIImageListGetImageCount
GUIImageListGetImageSize
GUIImageSetColor
GUIImageSetImage
GUIImageSetScaleImage
GUIImageSetUseAlphaChannel
GUIInOutFaderDrop
GUIInOutFaderFadeIn
GUIInOutFaderFadeOut
GUIInOutFaderGetColor
GUIInOutFaderIsReady
GUIInOutFaderSetColor
GUIInOutFaderSetColor2
GUIListBoxAddItem
GUIListBoxAddItemWithIcon
GUIListBoxClear
GUIListBoxClearItemOverrideColorByIndex
GUIListBoxClearItemOverrideColorByType
GUIListBoxDrop
GUIListBoxGetIcon
GUIListBoxGetItemAt
GUIListBoxGetItemCount
GUIListBoxGetItemDefaultColor
GUIListBoxGetItemOverrideColor
GUIListBoxGetListItem
GUIListBoxGetSelected
GUIListBoxHasItemOverrideColor
GUIListBoxInsertItem
GUIListBoxIsAutoScrollEnabled
GUIListBoxRemoveItem
GUIListBoxSetAutoScrollEnabled
GUIListBoxSetDrawBackground
GUIListBoxSetItem
GUIListBoxSetItemHeight
GUIListBoxSetItemOverrideColorByIndex
GUIListBoxSetItemOverrideColorByType
GUIListBoxSetSelectedByIndex
GUIListBoxSetSelectedByItem
GUIListBoxSetSpriteBank
GUIListBoxSwapItems
GUIMeshViewerDrop
GUIMeshViewerGetMaterial
GUIMeshViewerGetMesh
GUIMeshViewerSetMaterial
GUIMeshViewerSetMesh
GUIScrollBarDrop
GUIScrollBarGetLargeStep
GUIScrollBarGetMax
GUIScrollBarGetMin
GUIScrollBarGetPos
GUIScrollBarGetSmallStep
GUIScrollBarSetLargeStep
GUIScrollBarSetMax
GUIScrollBarSetMin
GUIScrollBarSetPos
GUIScrollBarSetSmallStep
GUISkinDraw2DRectangle
GUISkinDraw3DButtonPanePressed
GUISkinDraw3DButtonPaneStandard
GUISkinDraw3DMenuPane
GUISkinDraw3DSunkenPane
GUISkinDraw3DTabBody
GUISkinDraw3DTabButton
GUISkinDraw3DToolBar
GUISkinDraw3DWindowBackground
GUISkinDrawIcon
GUISkinDrop
GUISkinGetColor
GUISkinGetDefaultText
GUISkinGetFont
GUISkinGetIcon
GUISkinGetSize
GUISkinGetSpriteBank
GUISkinGetType
GUISkinSetColor
GUISkinSetDefaultText
GUISkinSetFont
GUISkinSetIcon
GUISkinSetSize
GUISkinSetSpriteBank
GUISpinBoxDrop
GUISpinBoxGetEditBox
GUISpinBoxGetMax
GUISpinBoxGetMin
GUISpinBoxGetStepSize
GUISpinBoxGetValue
GUISpinBoxSetDecimalPlaces
GUISpinBoxSetRange
GUISpinBoxSetStepSize
GUISpinBoxSetValue
GUISpriteBankDrop
GUIStaticTextDrop
GUIStaticTextEnableOverrideColor
GUIStaticTextGetActiveFont
GUIStaticTextGetBackgroundColor
GUIStaticTextGetOverrideColor
GUIStaticTextGetOverrideFont
GUIStaticTextGetTextHeight
GUIStaticTextGetTextWidth
GUIStaticTextIsDrawBackgroundEnabled
GUIStaticTextIsDrawBorderEnabled
GUIStaticTextIsOverrideColorEnabled
GUIStaticTextIsRightToLeft
GUIStaticTextIsTextRestrainedInside
GUIStaticTextIsWordWrapEnabled
GUIStaticTextSetBackgroundColor
GUIStaticTextSetDrawBackground
GUIStaticTextSetDrawBorder
GUIStaticTextSetOverrideColor
GUIStaticTextSetOverrideFont
GUIStaticTextSetRightToLeft
GUIStaticTextSetTextAlignment
GUIStaticTextSetTextRestrainedInside
GUIStaticTextSetWordWrap
GUITabControlAddTab
GUITabControlClear
GUITabControlDrop
GUITabControlGetActiveTab
GUITabControlGetTab
GUITabControlGetTabAt
GUITabControlGetTabCount
GUITabControlGetTabExtraWidth
GUITabControlGetTabHeight
GUITabControlGetTabMaxWidth
GUITabControlGetTabVerticalAlignment
GUITabControlInsertTab
GUITabControlRemoveTab
GUITabControlSetActiveTab
GUITabControlSetActiveTabByIndex
GUITabControlSetTabExtraWidth
GUITabControlSetTabHeight
GUITabControlSetTabMaxWidth
GUITabControlSetTabVerticalAlignment
GUITabDrop
GUITabGetBackgroundColor
GUITabGetNumber
GUITabGetTextColor
GUITabIsDrawingBackground
GUITabSetBackgroundColor
GUITabSetDrawBackground
GUITabSetTextColor
GUITableAddColumn
GUITableAddRow
GUITableClear
GUITableClearRows
GUITableDrop
GUITableGetActiveColumn
GUITableGetActiveColumnOrdering
GUITableGetCellData
GUITableGetCellText
GUITableGetColumnCount
GUITableGetColumnWidth
GUITableGetDrawFlags
GUITableGetRowCount
GUITableGetSelected
GUITableOrderRows
GUITableRemoveColumn
GUITableRemoveRow
GUITableSetActiveColumn
GUITableSetCellColor
GUITableSetCellData
GUITableSetCellText
GUITableSetCellTextWithColor
GUITableSetColumnOrdering
GUITableSetColumnWidth
GUITableSetDrawFlags
GUITableSetResizableColumns
GUITableSetSelected
GUITableSwapRows
GUITablehasResizableColumns
GUIToolBarAddButton
GUIToolBarDrop
GUITreeViewDrop
GUITreeViewGetImageLeftOfIcon
GUITreeViewGetImageList
GUITreeViewGetLastEventNode
GUITreeViewGetLinesVisible
GUITreeViewGetRoot
GUITreeViewGetSelected
GUITreeViewNodeAddChildBack
GUITreeViewNodeAddChildFront
GUITreeViewNodeClearChildren
GUITreeViewNodeDeleteChild
GUITreeViewNodeDrop
GUITreeViewNodeGetChildCount
GUITreeViewNodeGetData
GUITreeViewNodeGetExpanded
GUITreeViewNodeGetFirstChild
GUITreeViewNodeGetIcon
GUITreeViewNodeGetImageIndex
GUITreeViewNodeGetLastChild
GUITreeViewNodeGetLevel
GUITreeViewNodeGetNextSibling
GUITreeViewNodeGetNextVisible
GUITreeViewNodeGetOwner
GUITreeViewNodeGetParent
GUITreeViewNodeGetPrevSibling
GUITreeViewNodeGetSelected
GUITreeViewNodeGetSelectedImageIndex
GUITreeViewNodeGetText
GUITreeViewNodeHasChildren
GUITreeViewNodeInsertChildAfter
GUITreeViewNodeInsertChildBefore
GUITreeViewNodeIsRoot
GUITreeViewNodeIsVisible
GUITreeViewNodeMoveChildDown
GUITreeViewNodeMoveChildUp
GUITreeViewNodeSetData
GUITreeViewNodeSetExpanded
GUITreeViewNodeSetIcon
GUITreeViewNodeSetImageIndex
GUITreeViewNodeSetSelected
GUITreeViewNodeSetSelectedImageIndex
GUITreeViewNodeSetText
GUITreeViewSetIconFont
GUITreeViewSetImageLeftOfIcon
GUITreeViewSetImageList
GUITreeViewSetLinesVisible
GUIWindowDrop
GUIWindowGetClientRect
GUIWindowGetCloseButton
GUIWindowGetDrawBackground
GUIWindowGetDrawTitlebar
GUIWindowGetMaximizeButton
GUIWindowGetMinimizeButton
GUIWindowIsDraggable
GUIWindowSetDraggable
GUIWindowSetDrawBackground
GUIWindowSetDrawTitlebar
ImageCopyTo
ImageCopyToEx
ImageCopyToScaling
ImageCopyToScalingBoxFilter
ImageCopyToScalingEx
ImageCopyToWithAlpha
ImageDrop
ImageFill
ImageGetAlphaMask
ImageGetBitsPerPixel
ImageGetBitsPerPixelFromFormat
ImageGetBlueMask
ImageGetBytesPerPixel
ImageGetColorFormat
ImageGetDimension
ImageGetGreenMask
ImageGetImageDataSizeInBytes
ImageGetImageDataSizeInPixels
ImageGetPitch
ImageGetPixel
ImageGetRedMask
ImageIsRenderTargetOnlyFormat
ImageLoaderDrop
ImageLock
ImageSetPixel
ImageWriterDrop
IsDriverSupported
LightManagerDrop
LightSceneNodeDrop
LightSceneNodeEnableCastShadow
LightSceneNodeGetCastShadow
LightSceneNodeGetLightData
LightSceneNodeGetLightDataConst
LightSceneNodeGetLightType
LightSceneNodeGetRadius
LightSceneNodeSetLightData
LightSceneNodeSetLightType
LightSceneNodeSetRadius
LightSceneNodeSetVisible
LoggerDrop
LoggerGetLogLevel
LoggerLog
LoggerLogHint
LoggerLogHintw
LoggerSetLogLevel
LoogerLogw
MaterialGetFlag
MaterialGetTexture
MaterialGetTextureMatrix
MaterialRendererDrop
MaterialSetFlag
MaterialSetTexture
MaterialSetTextureMatrix
MeshBufferAppend
MeshBufferAppendBuffer
MeshBufferDrop
MeshBufferGetBoundingBox
MeshBufferGetChangedID_Index
MeshBufferGetChangedID_Vertex
MeshBufferGetHardwareMappingHint_Index
MeshBufferGetHardwareMappingHint_Vertex
MeshBufferGetIndexCount
MeshBufferGetIndexType
MeshBufferGetIndices
MeshBufferGetIndicesConst
MeshBufferGetMaterial
MeshBufferGetMaterialConst
MeshBufferGetNormal
MeshBufferGetNormalConst
MeshBufferGetPosition
MeshBufferGetPositionConst
MeshBufferGetTCoords
MeshBufferGetTCoordsConst
MeshBufferGetVertexCount
MeshBufferGetVertexType
MeshBufferGetVertices
MeshBufferGetVerticesConst
MeshBufferRecalculateBoundingBox
MeshBufferSetBoundingBox
MeshBufferSetDirty
MeshBufferSetHardwareMappingHint
MeshCacheAddMesh
MeshCacheClear
MeshCacheClearUnusedMeshes
MeshCacheDrop
MeshCacheGetMeshByIndex
MeshCacheGetMeshByName
MeshCacheGetMeshCount
MeshCacheGetMeshIndex
MeshCacheGetMeshName
MeshCacheGetMeshNameByIndex
MeshCacheIsMeshLoaded
MeshCacheRemoveMesh
MeshCacheRenameMesh
MeshCacheRenameMeshByIndex
MeshDrop
MeshGetBoundingBox
MeshGetMeshBufferByIndex
MeshGetMeshBufferByMaterial
MeshGetMeshBufferCount
MeshManipulatorCreateAnimatedMesh
MeshManipulatorCreateForsythOptimizedMesh
MeshManipulatorCreateMeshCopy
MeshManipulatorCreateMeshUniquePrimitives
MeshManipulatorCreateMeshWelded
MeshManipulatorCreateMeshWith1TCoords
MeshManipulatorCreateMeshWith2TCoords
MeshManipulatorCreateMeshWithTangents
MeshManipulatorDrop
MeshManipulatorFlipSurfaces
MeshManipulatorGetPolyCount
MeshManipulatorGetPolyCountByAnimatedMesh
MeshManipulatorMakePlanarTextureMapping
MeshManipulatorMakePlanarTextureMappingByBuffer
MeshManipulatorMakePlanarTextureMappingWithOffset
MeshManipulatorMakePlanarTextureMappingWithOffsetByBuffer
MeshManipulatorRecalculateNormals
MeshManipulatorRecalculateNormalsByBuffer
MeshManipulatorRecalculateTangents
MeshManipulatorRecalculateTangentsByBuffer
MeshManipulatorScale
MeshManipulatorScaleByBuffer
MeshManipulatorScaleTCoords
MeshManipulatorScaleTCoordsByBuffer
MeshManipulatorSetVertexColorAlpha
MeshManipulatorSetVertexColorAlphaByBuffer
MeshManipulatorSetVertexColors
MeshManipulatorSetVertexColorsByBuffer
MeshManipulatorTransform
MeshManipulatorTransformByBuffer
MeshSceneNodeAddShadowVolumeSceneNode
MeshSceneNodeDrop
MeshSceneNodeGetMesh
MeshSceneNodeIsReadOnlyMaterials
MeshSceneNodeSetMesh
MeshSceneNodeSetReadOnlyMaterials
MeshSetBoundingBox
MeshSetDirty
MeshSetHardwareMappingHint
MeshSetMaterialFlag
MeshWriterDrop
MeshWriterGetType
MeshWriterWriteMesh
MetaTriangleSelectorAddTriangleSelector
MetaTriangleSelectorDrop
MetaTriangleSelectorRemoveAllTriangleSelectors
MetaTriangleSelectorRemoveTriangleSelector
OSOperatorCopyToClipboard
OSOperatorDrop
OSOperatorGetOperatingSystemVersion
OSOperatorGetProcessorSpeedMHz
OSOperatorGetSystemMemory
OSOperatorGetTextFromClipboard
ParticleAffectorAffect
ParticleAffectorDrop
ParticleAffectorGetEnabled
ParticleAffectorGetType
ParticleAffectorSetEnabled
ParticleAnimatedMeshSceneNodeEmitterDrop
ParticleAnimatedMeshSceneNodeEmitterGetAnimatedMeshSceneNode
ParticleAnimatedMeshSceneNodeEmitterGetEveryMeshVertex
ParticleAnimatedMeshSceneNodeEmitterGetNormalDirectionModifier
ParticleAnimatedMeshSceneNodeEmitterGetType
ParticleAnimatedMeshSceneNodeEmitterIsUsingNormalDirection
ParticleAnimatedMeshSceneNodeEmitterSetAnimatedMeshSceneNode
ParticleAnimatedMeshSceneNodeEmitterSetEveryMeshVertex
ParticleAnimatedMeshSceneNodeEmitterSetNormalDirectionModifier
ParticleAnimatedMeshSceneNodeEmitterSetUseNormalDirection
ParticleAttractionAffectorDrop
ParticleAttractionAffectorGetAffectX
ParticleAttractionAffectorGetAffectY
ParticleAttractionAffectorGetAffectZ
ParticleAttractionAffectorGetAttract
ParticleAttractionAffectorGetPoint
ParticleAttractionAffectorGetType
ParticleAttractionAffectorSetAffectX
ParticleAttractionAffectorSetAffectY
ParticleAttractionAffectorSetAffectZ
ParticleAttractionAffectorSetAttract
ParticleAttractionAffectorSetPoint
ParticleBoxEmitterDrop
ParticleBoxEmitterGetBox
ParticleBoxEmitterGetType
ParticleBoxEmitterSetBox
ParticleCylinderEmitterDrop
ParticleCylinderEmitterGetCenter
ParticleCylinderEmitterGetLength
ParticleCylinderEmitterGetNormal
ParticleCylinderEmitterGetOutlineOnly
ParticleCylinderEmitterGetRadius
ParticleCylinderEmitterGetType
ParticleCylinderEmitterSetCenter
ParticleCylinderEmitterSetLength
ParticleCylinderEmitterSetNormal
ParticleCylinderEmitterSetOutlineOnly
ParticleCylinderEmitterSetRadius
ParticleEmitterDrop
ParticleEmitterEmitt
ParticleEmitterGetDirection
ParticleEmitterGetMaxLifeTime
ParticleEmitterGetMaxParticlesPerSecond
ParticleEmitterGetMaxStartColor
ParticleEmitterGetMaxStartSize
ParticleEmitterGetMinLifeTime
ParticleEmitterGetMinParticlesPerSecond
ParticleEmitterGetMinStartColor
ParticleEmitterGetMinStartSize
ParticleEmitterGetType
ParticleEmitterSetDirection
ParticleEmitterSetMaxAngleDegrees
ParticleEmitterSetMaxLifeTime
ParticleEmitterSetMaxParticlesPerSecond
ParticleEmitterSetMaxStartColor
ParticleEmitterSetMaxStartSize
ParticleEmitterSetMinLifeTime
ParticleEmitterSetMinParticlesPerSecond
ParticleEmitterSetMinStartColor
ParticleEmitterSetMinStartSize
ParticleEmittergetMaxAngleDegrees
ParticleFadeOutAffectorDrop
ParticleFadeOutAffectorGetFadeOutTime
ParticleFadeOutAffectorGetTargetColor
ParticleFadeOutAffectorGetType
ParticleFadeOutAffectorSetFadeOutTime
ParticleFadeOutAffectorSetTargetColor
ParticleGravityAffectorDrop
ParticleGravityAffectorGetGravity
ParticleGravityAffectorGetTimeForceLost
ParticleGravityAffectorGetType
ParticleGravityAffectorSetGravity
ParticleGravityAffectorSetTimeForceLost
ParticleMeshEmitterDrop
ParticleMeshEmitterGetMesh
ParticleMeshEmitterGetNormalDirectionModifier
ParticleMeshEmitterGetType
ParticleMeshEmitterIsUsingNormalDirection
ParticleMeshEmitterSetEveryMeshVertex
ParticleMeshEmitterSetMesh
ParticleMeshEmitterSetNormalDirectionModifier
ParticleMeshEmitterSetUseNormalDirection
ParticleMeshEmittergetEveryMeshVertex
ParticleRingEmitterDrop
ParticleRingEmitterGetCenter
ParticleRingEmitterGetRadius
ParticleRingEmitterGetRingThickness
ParticleRingEmitterGetType
ParticleRingEmitterSetCenter
ParticleRingEmitterSetRadius
ParticleRingEmitterSetRingThickness
ParticleRotationAffectorDrop
ParticleRotationAffectorGetPivotPoint
ParticleRotationAffectorGetSpeed
ParticleRotationAffectorGetType
ParticleRotationAffectorSetPivotPoint
ParticleRotationAffectorSetSpeed
ParticleSphereEmitterDrop
ParticleSphereEmitterGetCenter
ParticleSphereEmitterGetRadius
ParticleSphereEmitterGetType
ParticleSphereEmitterSetCenter
ParticleSphereEmitterSetRadius
ParticleSystemSceneNodeAddAffector
ParticleSystemSceneNodeClearParticles
ParticleSystemSceneNodeCreateAnimatedMeshSceneNodeEmitter
ParticleSystemSceneNodeCreateAttractionAffector
ParticleSystemSceneNodeCreateBoxEmitter
ParticleSystemSceneNodeCreateCylinderEmitter
ParticleSystemSceneNodeCreateFadeOutParticleAffector
ParticleSystemSceneNodeCreateGravityAffector
ParticleSystemSceneNodeCreateMeshEmitter
ParticleSystemSceneNodeCreatePointEmitter
ParticleSystemSceneNodeCreateRingEmitter
ParticleSystemSceneNodeCreateRotationAffector
ParticleSystemSceneNodeCreateScaleParticleAffector
ParticleSystemSceneNodeCreateSphereEmitter
ParticleSystemSceneNodeDoParticleSystem
ParticleSystemSceneNodeDrop
ParticleSystemSceneNodeGetAffectors
ParticleSystemSceneNodeGetEmitter
ParticleSystemSceneNodeRemoveAllAffectors
ParticleSystemSceneNodeSetEmitter
ParticleSystemSceneNodeSetParticleSize
ParticleSystemSceneNodeSetParticlesAreGlobal
RandomizerDrop
RandomizerFRand
RandomizerRand
RandomizerRandMax
RandomizerReset
ReadFileGetFileName
ReadFileGetPos
ReadFileGetSize
ReadFileRead
ReadFileSeek
SNamedPathFromPath
SNamedPathGetInternalName
SNamedPathGetPath
SNamedPathSetPath
SViewFrustumClipLine
SViewFrustumGetBoundingBox
SViewFrustumGetFarLeftDown
SViewFrustumGetFarLeftUp
SViewFrustumGetFarRightDown
SViewFrustumGetFarRightUp
SViewFrustumGetNearLeftDown
SViewFrustumGetNearLeftUp
SViewFrustumGetNearRightDown
SViewFrustumGetNearRightUp
SViewFrustumGetTransform
SViewFrustumGetTransformConst
SViewFrustumRecalculateBoundingBox
SViewFrustumSetFrom
SViewFrustumTransform
SceneManagerAddAnimatedMeshSceneNode
SceneManagerAddArrowMesh
SceneManagerAddBillboardSceneNode
SceneManagerAddBillboardTextSceneNode
SceneManagerAddCameraSceneNode
SceneManagerAddCameraSceneNodeFPS
SceneManagerAddCameraSceneNodeMaya
SceneManagerAddCubeSceneNode
SceneManagerAddDummyTransformationSceneNode
SceneManagerAddEmptySceneNode
SceneManagerAddExternalMeshLoader
SceneManagerAddExternalSceneLoader
SceneManagerAddHillPlaneMesh
SceneManagerAddLightSceneNode
SceneManagerAddMeshSceneNode
SceneManagerAddOctreeSceneNode
SceneManagerAddOctreeSceneNodeAnimated
SceneManagerAddParticleSystemSceneNode
SceneManagerAddQuake3SceneNode
SceneManagerAddSceneNode
SceneManagerAddSkyBoxSceneNode
SceneManagerAddSkyDomeSceneNode
SceneManagerAddSphereMesh
SceneManagerAddSphereSceneNode
SceneManagerAddTerrainMesh
SceneManagerAddTerrainSceneNodeByFile
SceneManagerAddTerrainSceneNodeByPath
SceneManagerAddTextSceneNode
SceneManagerAddToDeletionQueue
SceneManagerAddVolumeLightMesh
SceneManagerAddVolumeLightSceneNode
SceneManagerAddWaterSurfaceSceneNode
SceneManagerClear
SceneManagerCreateCollisionResponseAnimator
SceneManagerCreateDeleteAnimator
SceneManagerCreateFlyCircleAnimator
SceneManagerCreateFlyStraightAnimator
SceneManagerCreateFollowSplineAnimator
SceneManagerCreateMeshWriter
SceneManagerCreateMetaTriangleSelector
SceneManagerCreateNewSceneManager
SceneManagerCreateOctreeTriangleSelector
SceneManagerCreateRotationAnimator
SceneManagerCreateSceneNodeAnimator
SceneManagerCreateSkinnedMesh
SceneManagerCreateTerrainTriangleSelector
SceneManagerCreateTextureAnimator
SceneManagerCreateTriangleSelector
SceneManagerCreateTriangleSelectorFromBoundingBox
SceneManagerDrawAll
SceneManagerDrop
SceneManagerGetActiveCamera
SceneManagerGetAmbientLight
SceneManagerGetAnimatorTypeName
SceneManagerGetDefaultSceneNodeAnimatorFactory
SceneManagerGetDefaultSceneNodeFactory
SceneManagerGetFileSystem
SceneManagerGetGUIEnvironment
SceneManagerGetGeometryCreator
SceneManagerGetMeshCache
SceneManagerGetMeshFromFile
SceneManagerGetMeshFromPath
SceneManagerGetMeshLoader
SceneManagerGetMeshLoaderCount
SceneManagerGetMeshManipulator
SceneManagerGetParameters
SceneManagerGetRegisteredSceneNodeAnimatorFactoryCount
SceneManagerGetRegisteredSceneNodeFactoryCount
SceneManagerGetRootSceneNode
SceneManagerGetSceneCollisionManager
SceneManagerGetSceneLoader
SceneManagerGetSceneLoaderCount
SceneManagerGetSceneNodeAnimatorFactory
SceneManagerGetSceneNodeFactory
SceneManagerGetSceneNodeFromId
SceneManagerGetSceneNodeFromName
SceneManagerGetSceneNodeFromType
SceneManagerGetSceneNodeRenderPass
SceneManagerGetSceneNodeTypeName
SceneManagerGetSceneNodesFromType
SceneManagerGetShadowColor
SceneManagerGetVideoDriver
SceneManagerIsCulled
SceneManagerLoadSceneByFile
SceneManagerLoadSceneByPath
SceneManagerPostEventFromUser
SceneManagerRegisterNodeForRendering
SceneManagerRegisterSceneNodeAnimatorFactory
SceneManagerRegisterSceneNodeFactory
SceneManagerSaveSceneByFile
SceneManagerSaveSceneByPath
SceneManagerSetActiveCamera
SceneManagerSetAmbientLight
SceneManagerSetLightManager
SceneManagerSetShadowColor
SceneNodeAddAnimator
SceneNodeAddChild
SceneNodeClone
SceneNodeDeserializeAttributes
SceneNodeDrop
SceneNodeGetAbsolutePosition
SceneNodeGetAbsoluteTransformation
SceneNodeGetAutomaticCulling
SceneNodeGetBoundingBox
SceneNodeGetID
SceneNodeGetMaterial
SceneNodeGetMaterialCount
SceneNodeGetName
SceneNodeGetParent
SceneNodeGetPosition
SceneNodeGetRelativeTransformation
SceneNodeGetRotation
SceneNodeGetScale
SceneNodeGetSceneManager
SceneNodeGetTransformedBoundingBox
SceneNodeGetTriangleSelector
SceneNodeGetType
SceneNodeIsDebugDataVisible
SceneNodeIsDebugObject
SceneNodeIsTrulyVisible
SceneNodeIsVisible
SceneNodeOnAnimate
SceneNodeOnRegisterSceneNode
SceneNodeRemove
SceneNodeRemoveAll
SceneNodeRemoveAnimator
SceneNodeRemoveAnimators
SceneNodeRemoveChild
SceneNodeRender
SceneNodeSerializeAttributes
SceneNodeSetAutomaticCulling
SceneNodeSetDebugDataVisible
SceneNodeSetID
SceneNodeSetIsDebugObject
SceneNodeSetMaterialFlag
SceneNodeSetMaterialTexture
SceneNodeSetMaterialType
SceneNodeSetName
SceneNodeSetParent
SceneNodeSetPosition
SceneNodeSetRotation
SceneNodeSetScale
SceneNodeSetTriangleSelector
SceneNodeSetVisible
SceneNodeUpdateAbsolutePosition
ShadowVolumeSceneNodeDrop
ShadowVolumeSceneNodeSetShadowMesh
ShadowVolumeSceneNodeUpdateShadowVolumes
TerrainSceneNodeDrop
TerrainSceneNodeGetBoundingBox
TerrainSceneNodeGetBoundingBox2
TerrainSceneNodeGetCurrentLODOfPatches
TerrainSceneNodeGetHeight
TerrainSceneNodeGetIndexCount
TerrainSceneNodeGetIndicesForPatch
TerrainSceneNodeGetMesh
TerrainSceneNodeGetMeshBufferForLOD
TerrainSceneNodeGetRenderBuffer
TerrainSceneNodeGetTerrainCenter
TerrainSceneNodeLoadHeightMap
TerrainSceneNodeLoadHeightMapRAW
TerrainSceneNodeOverrideLODDistance
TerrainSceneNodeScaleTexture
TerrainSceneNodeSetCameraMovementDelta
TerrainSceneNodeSetCameraRotationDelta
TerrainSceneNodeSetDynamicSelectorUpdate
TerrainSceneNodeSetLODOfPatch
TextSceneNodeDrop
TextSceneNodeSetText
TextSceneNodeSetTextColor
TriangleSelectorDrop
TriangleSelectorGetSceneNodeForTriangle
TriangleSelectorGetSelector
TriangleSelectorGetSelectorConst
TriangleSelectorGetSelectorCount
TriangleSelectorGetTriangleCount
TriangleSelectorGetTriangles
TriangleSelectorGetTrianglesByBox
TriangleSelectorGetTrianglesByLine
VideoModeListDrop
VideoModeListGetDesktopDepth
VideoModeListGetDesktopResolution
VideoModeListGetVideoModeCount
VideoModeListGetVideoModeDepth
VideoModeListGetVideoModeResolution
VideoModeListGetVideoModeResolutionByMode
VolumeLightSceneNodeGetFootColor
VolumeLightSceneNodeGetSubDivideU
VolumeLightSceneNodeGetSubDivideV
VolumeLightSceneNodeGetTailColor
VolumeLightSceneNodeGetType
VolumeLightSceneNodeSetFootColor
VolumeLightSceneNodeSetSubDivideU
VolumeLightSceneNodeSetSubDivideV
VolumeLightSceneNodeSetTailColor
getpath
getstringc
getstringw
C++ example:

Code: Select all

// start up the engine
    IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8,
        core::dimension2d<u32>(640,480));

    video::IVideoDriver* driver = device->getVideoDriver();
    scene::ISceneManager* scenemgr = device->getSceneManager();

    device->setWindowCaption(L"Hello World!");

    // load and show quake2 .md2 model
    scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode(
        scenemgr->getMesh("quake2model.md2"));

    // if everything worked, add a texture and disable lighting
    if (node)
    {
        node->setMaterialTexture(0, driver->getTexture("texture.bmp"));
        node->setMaterialFlag(video::EMF_LIGHTING, false);
    }

    // add a first person shooter style user controlled camera
    scenemgr->addCameraSceneNodeFPS();

    // draw everything
    while(device->run() && driver)
    {
        driver->beginScene(true, true, video::SColor(255,0,0,255));
        scenemgr->drawAll();
        driver->endScene();
    }

    // delete device
    device->drop();
FreeBASIC example:

Code: Select all

#include "Irrlicht-c.bi"

' create the render device (window or fullscreen)
var dev = CreateDevice()
DeviceSetWindowCaption(dev,"test03.bas press [alt][F4]")

' get the driver (renderer)
var drv = DeviceGetVideoDriver(dev)

var scm = DeviceGetSceneManager(dev)
var path = getPath("media/faerie.md2")
var mesh = SceneManagerGetMeshFromPath(scm,path)
var node = SceneManagerAddAnimatedMeshSceneNode(scm,,mesh)
if (node) then
  path = getPath("media/faerie.bmp")
  var texture = DriverGetTextureFromPath(drv,path)
  SceneNodeSetMaterialTexture(node,0,texture)
  SceneNodeSetMaterialFlag(node,EMF_LIGHTING, false)
end if

var cam = SceneManagerAddCameraSceneNode(scm,,vector3df(50,0,0),vector3df(0,0,0))

' while window is open
while DeviceRun(dev) andalso drv<>NULL
  ' and is active
  if DeviceIsWindowActive(dev) then
    ' draw a frame 
    DriverBeginScene(drv,,,SColor(0,128,128)) ' begin a render frame
     
    SceneManagerDrawAll(scm) 
    
    DriverEndScene(drv) ' show the result on screen
    DeviceSleep(dev,1000\60) ' down't eat all CPU cycles :-)
  else
    ' handle only window events 
    DeviceYield(dev)
  endif

wend
' delete the device
DeviceDrop(dev)
Last edited by D.J.Peters on Oct 12, 2022 18:05, edited 11 times in total.
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by VANYA »

Hi Joshy!

Win32:
all examples work well

win64:
example CreateDeviceEx.bas -> crashed
example CreateDeviceWithEventReceiver.bas -> incorrect mouse events

Good job anyway!
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

@VANYA first thank you for testing and reportig the bug !
I self never switched to 64-bit in this early stage while I code 48 hours with a minimum of sleep :-)

First I fix the the event mismatch.
The bit fields of struct SMouseInput comes in my mind at first

Code: Select all

type SMouseInput
  ' ...
  as boolean Shift :1   ' True if shift was also pressed
  as boolean Control :1   ' True if ctrl was also pressed
  as u32 ButtonStates   ' A bitmap of button states.
' ..
end type
But I found out the event mismatch 32/64 bit are the enum member EMOUSE_INPUT_EVENT
I will check is it the member alignment of C++ VS FreeBASIC or the size of the enum it self.
How ever if I use U32 instead of the enum it works on 32/64-bit.

If GNU C++ Enum's not 64-bit FreeBASIC compatible then the CreateDeviceEx() crash should have the same problem and fixable :-)

Again thank you for reporting this issue
(big projects like the Irrlicht engine needs a lot of tests and reports from users)

Joshy

here are how I located the source of event trouble

Code: Select all

' Any kind of mouse event.
type SMouseInput
  as s32 X ' X position of mouse cursor
  as s32 Y ' Y position of mouse cursor
  ' mouse wheel delta, often 1.0 or -1.0, but can have other values < 0.f or > 0.f
  ' Only valid if event was EMIE_MOUSE_WHEEL 
  as f32 Wheel
  ' True if shift was also pressed
  as boolean Shift :1
  ' True if ctrl was also pressed
  as boolean Control :1
  ' A bitmap of button states. You can use isButtonPressed() to determine if a button is pressed or not.
  ' Currently only valid if the event was EMIE_MOUSE_MOVED
  as u32 ButtonStates
  ' Type of mouse event
#if 0  
  as EMOUSE_INPUT_EVENT Event
#else  
  as u32 Event ' <-- !!! this fixed the problem !!!
#endif  
  declare function IsButtonPressed(byval button as u32) as boolean
  declare function isLeftPressed() as boolean
  declare function isMiddlePressed() as boolean
  declare function isRightPressed() as boolean
end type
' Is the left button pressed down?
function SMouseInput.isLeftPressed() as boolean
  return iif(ButtonStates and EMBSM_LEFT,true,false)
end function
' Is the right button pressed down?
function SMouseInput.isRightPressed() as boolean
  return iif(ButtonStates and EMBSM_RIGHT,true,false)
end function
' Is the middle button pressed down?
function SMouseInput.isMiddlePressed() as boolean
  return iif(ButtonStates and EMBSM_MIDDLE,true,false)
end function  
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

32-bit
FreeBASIC sizeof(irr.SIrrlichtCreationParameters) is 54
C++ sizeof(irr.SIrrlichtCreationParameters) is 54

64-bit
FreeBASIC sizeof(irr.SIrrlichtCreationParameters) is 80
C++ sizeof(irr.SIrrlichtCreationParameters) is 72

In this case irr.CreateDeviceEx(parameters) must crash on 64-bit ;-)

Many enums to test !

Joshy
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

First problems sizeof(ENUMS) fixed try again please

32-bit
FreeBASIC sizeof(irr.SIrrlichtCreationParameters) is 54
C++ sizeof(irr.SIrrlichtCreationParameters) is 54

64-bit
FreeBASIC sizeof(irr.SIrrlichtCreationParameters) is 72
C++ sizeof(irr.SIrrlichtCreationParameters) is 72

Joshy
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by VANYA »

First problems sizeof(ENUMS) fixed try again please
example CreateDeviceEx.bas works fine.
jepalza
Posts: 149
Joined: Feb 24, 2010 10:08
Location: Spain (Bilbao)

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by jepalza »

Interesting theme.

In the past, I did an adaptation of the wrapper FB to version 1.8.1, but it had errors that I could not repair, and I removed the download link.
One of the biggest problems, was relative to the "shaders" within the Quake3 BSP. Some "shaders" he treated them as "transparent" and if they were on the ground and you stepped on them when you walked, you crossed them and fell into the void. I don't know what 1.8.6 will be like, but it would be nice to be able to load 100% correct BSP.
I have a lot of information from the attempts I made to read a BSP correctly. In everything I can help, I'll be around here.

Translated with google translator, sorry for the errors.
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

@jepalza I work really hard on the complete FreeBASIC Irrlicht bindings and published the first ~760 commands included all GUI widgets (see first post).

I'm sure you know how the Irrlicht engine works maybe you like to help and write some simple GUI tests in FreeBASIC ?

I can't spent more free time to write examples too.

Independent from your support, if I done with Network, Audio and Physics engine I'm sure we can fix the problem you notice about Quake 3 scenenode :-)

I will do my best to get a stable and most powerful 2D/3D engine bindings for FreeBASIC because I use it for my own commercial hardware model train controller also.

Joshy
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

New upload FreeBASIC and source code linux 32/64-bit are included now.

Tested on Windows XP 32-bit, Windows 10 32/64-bit, Linux Mint 64-bit successful.

By the way if you have a working FreeBASIC setup on Linux with all dependencies the code::blocks project will compile also.
(of course gcc/g++ must be installed also)

I use the same libs are listed in the linux section of "fbgfx.bi"

Joshy
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

How to compile the irrlicht-c code::blocks project.

you need both extracted folders on same drive on Windows or folder in case of Linux

Exampe of Windows
d:\mystuff\irrlicht-1.8.6-c\
d:\mystuff\irrlicht-1.8.6-c-src\

Exampe of Linux in your home folder
irrlicht-1.8.6-c/
irrlicht-1.8.6-c-src/

navigate with your file manger to
irrlicht-1.8.6-c-src/source/Irrlicht/

and open the project file
irrlicht-1.8.6-c-src/source/Irrlicht/Irrlicht-c.cbp

press the yellow build button thats all :-)

Joshy
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by VANYA »

Hi Joshy!

Unfortunately, I can't do anything on Linux. When trying to use your compiled library, the error related to the glibc version is:
undefined reference to `pow@GLIBC_2.29'


I have Linux with version GLIBC 2.27

----------

When trying to compile a C ++ project Irrlicht, there are a huge number of errors:
||=== Build: L32 in Irrlicht-c (compiler: GNU GCC Compiler) ===|
||error: ../obj/lin32/source/Irrlicht/aesGladman/aescrypt.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/aeskey.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/aestab.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/fileenc.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/hmac.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/prng.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/pwd2key.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/sha1.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/aesGladman/sha2.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/blocksort.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/bzcompress.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/bzlib.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/crctable.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/decompress.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/huffman.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/bzip2/randtable.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/C3DSMeshFileLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CAnimatedMeshHalfLife.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CAnimatedMeshMD2.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CAnimatedMeshMD3.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CAnimatedMeshSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CAttributes.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CB3DMeshFileLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CBillboardSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CBoneSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CBSPMeshFileLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CBurningShader_Raster_Reference.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CCameraSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CCgMaterialRenderer.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CColladaFileLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CColladaMeshWriter.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CColorConverter.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CCSMLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CCubeSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDefaultGUIElementFactory.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDefaultSceneNodeAnimatorFactory.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDefaultSceneNodeFactory.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDepthBuffer.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDMFLoader.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CDummyTransformationSceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CEmptySceneNode.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CFileList.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CFileSystem.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CFPSCounter.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGeometryCreator.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGUIButton.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGUICheckBox.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGUIColorSelectDialog.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGUIComboBox.o: No such file or directory|
||error: ../obj/lin32/source/Irrlicht/CGUIContextMenu.o: No such file or directory|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build failed: 50 error(s), 0 warning(s) (0 minute(s), 2 second(s)) ===|
jepalza
Posts: 149
Joined: Feb 24, 2010 10:08
Location: Spain (Bilbao)

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by jepalza »

D.J.Peters wrote: I'm sure you know how the Irrlicht engine works maybe you like to help and write some simple GUI tests in FreeBASIC ?

Joshy
Something like this?
viewtopic.php?f=14&t=31076&p=289017#p288869

From original C++ "irrlicht-1.8.6-c-src\examples\05.UserInterface"
Last edited by jepalza on Jan 13, 2022 4:37, edited 1 time in total.
jepalza
Posts: 149
Joined: Feb 24, 2010 10:08
Location: Spain (Bilbao)

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by jepalza »

Don't know how to use "events" at this moment. My example is only without them.

One bug? (maybe):

Code: Select all

	' And at last, we create a nice Irrlicht Engine logo in the top left corner.
	GUIEnvironmentAddImageByTexture(  env,    DriverGetTextureFromPath(drv,getpath("./media/irrlichtlogo2.png"))   , type(10,10)) 
This line, hungs up code!!
D.J.Peters
Posts: 8586
Joined: May 28, 2005 3:28
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by D.J.Peters »

I added many commands ~1050 ATM. maybe 50% of the complete Irrlicht SDK
and splitted the download in two parts Windows *.zip and Linux *.tar.gz
I will add the missing stuff soon.

@VANYA I build the codeblocks project on different boxes without any problem
you posted only the linking stage can you post the log from compiling stage also ?
(may be your code:blocks IDE can't create the folder structure with all *.o object files ?

@jepalza Thank you for testing if I got ~80% implemented I will do a deeper look for problems I'm sure we get all fixed soon.

Joshy
VANYA
Posts: 1834
Joined: Oct 24, 2010 15:16
Location: Ярославль
Contact:

Re: FreeBASIC binding of Irrlicht 3D engine 1.8.6

Post by VANYA »

D.J.Peters wrote:@VANYA I build the codeblocks project on different boxes without any problem
you posted only the linking stage can you post the log from compiling stage also ?
(may be your code:blocks IDE can't create the folder structure with all *.o object files ?
Hi Joshy!

I built the library, although I did not immediately understand how to do it in CodeBlocks. I thought that CodeBlocks will build for the required platform by default, but I was wrong. It's okay now. The examples provided work correctly. Tested on Linux x86-64.
Post Reply