Blitz3D FASM SDK (Assembler x86)
Tweet code-archives
Example of code:
Blitz3D FASM SDK:
https://github.com/Blitz3DFASM/Blitz3DFASMSDK
B3D.dll link:
https://www.blitzcoder.org/forum/topic.php?id=922
Example of code:
;******************************************************
;* Blitz3D on FASM *
;******************************************************
format PE GUI 4.0
entry start
include 'win32a.inc'
include 'blitz3dsdk.inc'
; ------------------------ data -----------------------
section '.data' data readable writeable
buffer BBCanvas 0
camera BBCamera 0
light BBLight 0
cone BBModel 0
cube BBModel 0
sphere BBModel 0
title db 'Blitz3D 3D Graphics Exmple on FASM', 0
text db 'Class of cube is: ', 0
empty_str db 0
class_name dd 0 ; Pointer to string
; ------------------------- code ------------------------
section '.code' code readable executable
start:
cinvoke bbBeginBlitz3D
cinvoke bbSetBlitz3DTitle, title, empty_str
cinvoke bbGraphics3D, 640, 480, 32, 3
cinvoke bbBackBuffer
mov [buffer],eax
cinvoke bbSetBuffer, [buffer]
cinvoke bbCreateCamera, 0 ; paerent 0
mov [camera], eax
cinvoke bbCreateLight, 1, 0 ; 1 - direct light, parent null
mov [light], eax
cinvoke bbCreateCone, 32, BBTRUE, 0 ; 32 segments, solid, parent null
mov [cone], eax
cinvoke bbPositionEntity, [cone], -3f, 0f, 5f
cinvoke bbEntityColor, [cone], 255f, 32f, 32f
cinvoke bbCreateCube, 0 ; parent null
mov [cube], eax
cinvoke bbPositionEntity, [cube], 0f, 0f, 6.5f
cinvoke bbEntityColor, [cube], 70f, 155f, 30f
cinvoke bbCreateSphere, 7, 0 ; detail level - 7, parent null
mov [sphere], eax
cinvoke bbPositionEntity, [sphere], 3f, 0f, 5f
cinvoke bbEntityColor, [sphere], 0f, 128f, 255f
cinvoke bbEntityClass, [cube]
mov [class_name], eax ; Save pointer to string
main_loop:
cinvoke bbKeyHit, KEY_ESCAPE ; Wait Esc
or eax, eax
jnz exit_from_main_loop
cinvoke bbTurnEntity, [cube], 0.5f, 2f, 1f
cinvoke bbTurnEntity, [cone], 0f, 1f, 0.5f
cinvoke bbTurnEntity, [sphere], 2f, 1f, 0.5f
cinvoke bbRenderWorld, 1 ; Render world to buffer
cinvoke bbFlip, BBTRUE ; Flip buffers
jmp main_loop;
exit_from_main_loop:
cinvoke bbEndBlitz3D
invoke ExitProcess,0
section '.idata' import data readable writeable
library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL',\
b3d,'B3D.DLL'
include 'api\kernel32.inc'
include 'api\user32.inc'
include 'b3d.inc'
section '.rsrc' resource data readable
ICON equ '3D.ico'
include 'res.inc'
To administrators: it is not clear why you moved this topic to Blitz3D programming, this topic does not concern the Basic language in any way. Here we are talking about programming B3D.dll lib in the x86 assembly language with using FASM ( Flat Assembler ) compilator.
Therefore, it would be more logical to return the topic to the section MiniB3d/OpenB3D https://www.blitzcoder.org/forum/topics.php?category=1
Welcome to the forums X32E and thanks for sharing this interesting library.
Here we are talking about programming B3D.dll lib in the x86 assembly language with using FASM ( Flat Assembler ) compilator.
MiniB3D/OpenB3D are both derived OpenGL projects of Blitz3D and has nothing to do with Blitz3D SDK.
This library is also referring to the Blitz3D SDK DLL, which is more like Blitz3D/DX7.
Therefore, it would be more logical to return the topic to the section MiniB3d/OpenB3D https://www.blitzcoder.org/forum/topics.php?category=1
That points to BlitzMax programming, not MiniB3D/OpenB3D so yes moving to this subforum since this uses FASM which is the closest thing.
Hi, why i can not change topic post? For example to update image and url links. Such restrictions very unusable.
It does have an edit feature, but with expiration of 1 week. You should add a code-archive
tag which will extend it to 3 months of editing and since it fits with your topic.
Just added the tag so you can now edit it. Next time, your recent reply should be posted in the Report an Issue (link below).
Reply To Topic (minimum 10 characters)
Please log in to reply