SoftPixel Engine Wrapper 2.0 (only for B3D)

Übersicht Sonstiges Projekte

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen

LukasBanana

Betreff: SoftPixel Engine Wrapper 2.0 (only for B3D)

BeitragMo, März 22, 2010 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi folks,

seit langem habe ich nicht mehr an dem SoftPixel Engine Wrapper gearbeitet, sondern mehr an der eigentlichen Engine.
Als mir gestern Jo0oker (hier aus dem Forum) seine Variante geschickt hat, und ich fest stellen musste, dass er leider noch nicht so sehr weit gekommen war, habe ich mal wieder Interesse daran gefunden, das ganze noch mal von grund auf neu zu machen.
Jo0okers Idee der Variante ist aber schon sehr gut und genau so soll der neue Wrapper von mir erden.
Mein Ansporn ist im Grunde nur die Tatsache, dass sich schon einige aus dem B3D Forum geäußert haben, dass sie endlich von DX7 loskommen und mit DX9 endlich ins 21. Jahrhundert einsteigen wollen ^^

Ich habe zudem bereits vor längerem ein externes kleines Programm geschrieben, welches die delcs und bb Datei zum Wrapper automatisch generieren kann, in dem es den C++ Code ließt.
Der Wrapper wird die schöne Tatsache ausnutzen, dass B3D es erlaubt, die original Funktionen - wie z.B. "Graphics3D" usw. - zu überschreiben.
Die "SoftPixelEngineWrapper.bb" Datei sieht dann in etwas so aus:

Code: [AUSKLAPPEN]

Function Graphics3D(Width%, Height%, Depth% = 32, Mode% = 0)
    spwGraphics3D(Width%, Height%, Depth%, Mode%) ; <- dies ist die Funktion aus der DLL
End Function


Wie die "SoftPixelEngineWrapper.delcs" Datei aussieht, könnt ihr euch auch selbst vorstellen.

Das beste kommt noch: ich werde die erste Version bereits in eine Woche, wenn bei uns die Ferien anfangen veröffentlichen, pünktlich mit dem Release der SPE 1.9 für C++ Wink
Natürlich werden dann noch nicht alle B3D Funktionen ge-'wrapt' sein, aber die wichtigsten + SPE spezial Funktionen wie z.B. "CreateIcoSphere", "CreateTeapot" und ganz besonders "LoadShader", "SetShader" usw. sollten dann schon einmal zur Verfügung stehen um sich erst einmal an den neuen Wrapper zu gewöhnen.
Wie auch bei Jo0okers Variante muss man, sofern man noch keien neuen SPE Funktionen verwenden will, lediglich die BB Datei mit "Include ..." einbinden.

Ich hoffe es besteht noch ausreichend Interesse an einem solchen Projekt.

Gruß,
Lukas

PS: @Jo0oker: danke bis her erst mal für deine guten Einfälle Smile
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana
 

Sliver

BeitragMo, März 22, 2010 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Find ich gut!

Smile

ozzi789

BeitragMo, März 22, 2010 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Ich hoffe es besteht noch ausreichend Interesse an einem solchen Projekt.

Das muss wohl ein schlechter Witz sein... klar gibt es Interesse!!
Gibt sicher einige hier die zu Faul sind für BMax und an B3D hängen Very Happy


Ich freu mich, thnx&mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

das wurgel

BeitragMo, März 22, 2010 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Heißt das man muss nur Include "diesunddas" vor einem fertigen 3D Projekt schreiben und schon läuft es mit DX9!? Shocked
Das wird ein schniekes teil
1 ist ungefähr 3

Silver_Knee

BeitragMo, März 22, 2010 23:35
Antworten mit Zitat
Benutzer-Profile anzeigen
WOOOHOOOOO =)

Jo0oker

BeitragDi, März 23, 2010 9:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, genau so geht das mit den Includes.

Das war ja auch mein Grundgedanke, dass man nur eine Datei includes muss und schon läuft das eigene Projekt mit der SPE.

Jedoch ist es nicht so leicht wie es jetzt klingt, dass wird LukasBanana
aber auch nich merken, da man oft viel anpassen muss.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

LukasBanana

BeitragDi, März 23, 2010 10:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo das stimmt, man muss einiges anpassen, weil die gesammt Struktur in B3D natürlich eine andere ist als die der SPE.
Aber ich komme jetzt allgemein besser voran, weil ich mir inzwischen ein paar zusatz tools geschrieben haben, die für mich die komplett Arbeit des Generierens der Decls und BB Dateien übernimmt Very Happy

Im Wrapper (C++) sieht z.B. die Funktion "Graphics3D" so aus:
Code: [AUSKLAPPEN]
SPW_EXPORT void SPW_BBCALL spwGraphics3D(int Width, int Height, int Depth = 32, int Mode = 0)
{
    g_Device = createDevice(
        g_DriverType, dim::size2di(Width, Height), Depth, "SoftPixel Engine Wrapper for Blitz3D", Mode == 1
    );
   
    g_UserControl       = g_Device->getUserControl();
    g_VideoDriver       = g_Device->getVideoDriver();
    g_SceneManager      = g_Device->getSceneManager();
    g_CollisionDetector = g_Device->getCollisionDetector();
    g_FileSystem        = g_Device->getFileSystem();
    g_OSInformator      = g_Device->getOSInformator();
    g_StencilManager    = g_SceneManager->getStencilManager();
   
    g_Font = g_VideoDriver->loadFont();
    g_VideoDriver->clearBuffers();
   
    InitScancodeList();
}

In der Decls dann so:
Code: [AUSKLAPPEN]
spwGraphics3D(Width%, Height%, Depth%, Mode%) : "spwGraphics3D@16"

Und in der BB Datei dann so:
Code: [AUSKLAPPEN]
Function Graphics3D(Width%, Height%, Depth% = 32, Mode% = 0)
    spwGraphics3D(Width%, Height%, Depth%, Mode%)
End Function

Praktisch, dass man die original Funktionen von B3D überschreiben kann, dadurch kann man auch ganz neue Default-Parameter setzen.
Z.B. hab ich für die Funktion "Color" nicht 3 sondern 4 Parameter vorgesehen. Wobei der 4 einen Default-Wert von 255 hat, damit eure Programme, die zunächst noch mit nur 3 Werten arbeiten, immer noch ohne Veränderung laufen Wink
Der 4. ist natürlich Alpha. Etwas was mich schon immer gestört hat in B3D, dass man für einfache Primitive wie Linien, Punkte, Kreise, 2D Images usw. keine Transparenz zum Zeichnen angeben konnte.
Das wird jetzt alles anders! Cool

Gruß,
Lukas
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Jo0oker

BeitragDi, März 23, 2010 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
InitScancodeList(); <----
Würde ich aber noch einmal ändern, ist nicht gerade die sauberste Lösung Wink

Ich hatte diesen Funktionsaufruf damals in der Include gemacht, dass macht mehr sinn, da sonst vor Graphics keine Scancodes vorhanden sind.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

LukasBanana

BeitragDi, März 23, 2010 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
@Jo0oker:
'UserInput' ist in der SPE erst nach dem Erstellen des Devices möglich!
Deshalb kann ich das auch erst in der "Graphics3D" Funktion machen.

@All:
Bereits jetzt, also schon nach 3 Tagen sind 63 Funktionen verfügbar:

Hier mal die bisherige BB Datei:
Code: [AUSKLAPPEN]

;*
;* **********************************
;*                                   *
;* HLC Games - Software Entertainment *
;*                                     *
;* (c) Copyright 2003 - Lukas Hermanns  *
;*                                       *
;* ****************************************
;*  ___    ___    ___          _____
;* /\  \  /\  \  /\  \        /  ___\
;* \ \  \_\_\  \ \ \  \      /\  \__/
;*  \ \   ___   \ \ \  \     \ \  \
;*   \ \  \__/\  \ \ \  \____ \ \  \___
;*    \ \__\ \ \__\ \ \______\ \ \_____\
;*     \/__/  \/__/  \/______/  \/_____/
;*
;* ****************************************
;*
;* ********************** HLC SoftPixelEngine - (3.1.2008) ************************
;*
;* (c) Copyright 2008 - Lukas Hermanns
;*
;* SoftPixel Engine Wrapper for BlitzBasic
;* Auto generated code from 16:03:01 23.3.2010
;*

Function WrapperVersion$()
    Return spwWrapperVersion$()
End Function

Function UseDirect3D9()
    spwUseDirect3D9()
End Function

Function UseOpenGL()
    spwUseOpenGL()
End Function

Function UseSoftware()
    spwUseSoftware()
End Function

Function MultiSamples(MultiSamples%)
    spwMultiSamples(MultiSamples%)
End Function

Function Vsync(Enable%)
    spwVsync(Enable%)
End Function

Function Graphics3D(Width%, Height%, Depth% = 32, Mode% = 0)
    spwGraphics3D(Width%, Height%, Depth%, Mode%)
End Function

Function EndGraphics()
    spwEndGraphics()
End Function

Function MessageBox(Message$, ObjType% = 0)
    spwMessageBox(Message$, ObjType%)
End Function

Function Beep(Frequency%, Duration%)
    spwBeep(Frequency%, Duration%)
End Function

Function CreateCamera%(Parent% = 0)
    Return spwCreateCamera%(Parent%)
End Function

Function CreateLight%(ObjType% = 1, Parent% = 0)
    Return spwCreateLight%(ObjType%, Parent%)
End Function

Function CopyEntity%(Entity%, Parent% = 0)
    Return spwCopyEntity%(Entity%, Parent%)
End Function

Function CreatePivot%(Parent% = 0)
    Return spwCreatePivot%(Parent%)
End Function

Function CreateMesh%(Parent% = 0)
    Return spwCreateMesh%(Parent%)
End Function

Function CreateCube%(Parent% = 0)
    Return spwCreateCube%(Parent%)
End Function

Function CreateCone%(Segments% = 8, Solid% = True, Parent% = 0)
    Return spwCreateCone%(Segments%, Solid%, Parent%)
End Function

Function CreateCylinder%(Segments% = 8, Solid% = True, Parent% = 0)
    Return spwCreateCylinder%(Segments%, Solid%, Parent%)
End Function

Function CreateSphere%(Segments% = 8, Parent% = 0)
    Return spwCreateSphere%(Segments%, Parent%)
End Function

Function CreateIcoSphere%(Segments% = 3, Parent% = 0)
    Return spwCreateIcoSphere%(Segments%, Parent%)
End Function

Function CreateTetrahedron%(Parent% = 0)
    Return spwCreateTetrahedron%(Parent%)
End Function

Function CreateDodecahedron%(Parent% = 0)
    Return spwCreateDodecahedron%(Parent%)
End Function

Function CreateIcosahedron%(Parent% = 0)
    Return spwCreateIcosahedron%(Parent%)
End Function

Function CreateCuboctahedron%(Parent% = 0)
    Return spwCreateCuboctahedron%(Parent%)
End Function

Function CreateOctahedron%(Parent% = 0)
    Return spwCreateOctahedron%(Parent%)
End Function

Function CreateTeapot%(Parent% = 0)
    Return spwCreateTeapot%(Parent%)
End Function

Function LoadMesh%(File$, Parent% = 0)
    Return spwLoadMesh%(File$, Parent%)
End Function

Function LoadAnimMesh%(File$, Parent% = 0)
    Return spwLoadAnimMesh%(File$, Parent%)
End Function

Function LoadMD2%(File$, Parent% = 0)
    Return spwLoadMD2%(File$, Parent%)
End Function

Function LoadBSP%(File$, Gamma# = 0.0, Parent% = 0)
    Return spwLoadBSP%(File$, Gamma#, Parent%)
End Function

Function BSPLighting(BSP%, UseLightmaps%)
    spwBSPLighting(BSP%, UseLightmaps%)
End Function

Function LoadSprite%(File$, Flags% = 0, Parent% = 0)
    Return spwLoadSprite%(File$, Flags%, Parent%)
End Function

Function RotateSprite(Sprite%, Angle#)
    spwRotateSprite(Sprite%, Angle#)
End Function

Function ScaleSprite(Sprite%, Width#, Height#)
    spwScaleSprite(Sprite%, Width#, Height#)
End Function

Function HandleSprite(Sprite%, X#, Y#)
    spwHandleSprite(Sprite%, X#, Y#)
End Function

Function AnimateMD2(MD2%, Mode% = 1, Speed# = 1.0, FirstFrame% = 0, LastFrame% = 0)
    spwAnimateMD2(MD2%, Mode%, Speed#, FirstFrame%, LastFrame%)
End Function

Function EntityParent(Entity%, Parent%, isGlobal% = False)
    spwEntityParent(Entity%, Parent%, isGlobal%)
End Function

Function GetParent%(Entity%)
    Return spwGetParent%(Entity%)
End Function

Function ShowEntity(Entity%)
    spwShowEntity(Entity%)
End Function

Function HideEntity(Entity%)
    spwHideEntity(Entity%)
End Function

Function FreeEntity(Entity%)
    spwFreeEntity(Entity%)
End Function

Function PositionEntity(Entity%, X#, Y#, Z#, isGlobal% = False)
    spwPositionEntity(Entity%, X#, Y#, Z#, isGlobal%)
End Function

Function MoveEntity(Entity%, X#, Y#, Z#)
    spwMoveEntity(Entity%, X#, Y#, Z#)
End Function

Function TranslateEntity(Entity%, X#, Y#, Z#, isGlobal% = False)
    spwTranslateEntity(Entity%, X#, Y#, Z#, isGlobal%)
End Function

Function RotateEntity(Entity%, X#, Y#, Z#, isGlobal% = False)
    spwRotateEntity(Entity%, X#, Y#, Z#, isGlobal%)
End Function

Function TurnEntity(Entity%, X#, Y#, Z#, isGlobal% = False)
    spwTurnEntity(Entity%, X#, Y#, Z#, isGlobal%)
End Function

Function ScaleEntity(Entity%, X#, Y#, Z#, isGlobal% = False)
    spwScaleEntity(Entity%, X#, Y#, Z#, isGlobal%)
End Function

Function PointEntity(Entity%, Target%, Roll# = 0.0)
    spwPointEntity(Entity%, Target%, Roll#)
End Function

Function ScaleMesh(Mesh%, X#, Y#, Z#)
    spwScaleMesh(Mesh%, X#, Y#, Z#)
End Function

Function FlipMesh(Mesh%)
    spwFlipMesh(Mesh%)
End Function

Function RotateMesh(Mesh%, X#, Y#, Z#)
    spwRotateMesh(Mesh%, X#, Y#, Z#)
End Function

Function PositionMesh(Mesh%, X#, Y#, Z#)
    spwPositionMesh(Mesh%, X#, Y#, Z#)
End Function

Function UpdateNormals(Mesh%)
    spwUpdateNormals(Mesh%)
End Function

Function EntityTexture(Entity%, Texture%, Frame% = 0, Index% = 0)
    spwEntityTexture(Entity%, Texture%, Frame%, Index%)
End Function

Function PaintEntity(Entity%, Brush%)
    spwPaintEntity(Entity%, Brush%)
End Function

Function CreateSurface%(Mesh%, Brush% = 0)
    Return spwCreateSurface%(Mesh%, Brush%)
End Function

Function ClearSurface(Surface%, ClearVertices% = True, ClearTriangles% = True)
    spwClearSurface(Surface%, ClearVertices%, ClearTriangles%)
End Function

Function GetSurface%(Mesh%, Index%)
    Return spwGetSurface%(Mesh%, Index%)
End Function

Function AddVertex(Surface%, X#, Y#, Z#, U# = 0.0, V# = 0.0, W# = 0.0)
    spwAddVertex(Surface%, X#, Y#, Z#, U#, V#, W#)
End Function

Function AddTriangle(Surface%, v0%, v1%, v2%)
    spwAddTriangle(Surface%, v0%, v1%, v2%)
End Function

Function CountSurfaces%(Mesh%)
    Return spwCountSurfaces%(Mesh%)
End Function

Function CountVertices%(Surface%)
    Return spwCountVertices%(Surface%)
End Function

Function CountTriangles%(Surface%)
    Return spwCountTriangles%(Surface%)
End Function

Function VertexCoords(Surface%, Index%, X#, Y#, Z#)
    spwVertexCoords(Surface%, Index%, X#, Y#, Z#)
End Function

Function VertexNormal(Surface%, Index%, X#, Y#, Z#)
    spwVertexNormal(Surface%, Index%, X#, Y#, Z#)
End Function

Function VertexColor(Surface%, Index%, Red%, Green%, Blue%, Alpha% = 255)
    spwVertexColor(Surface%, Index%, Red%, Green%, Blue%, Alpha%)
End Function

Function VertexTexCoords(Surface%, Index%, U#, V#, W# = 0.0, Layer% = 0)
    spwVertexTexCoords(Surface%, Index%, U#, V#, W#, Layer%)
End Function

Function UpdateMeshBuffer(Mesh%, Surface% = -1)
    spwUpdateMeshBuffer(Mesh%, Surface%)
End Function

Function VertexX#(Surface%, Index%)
    Return spwVertexX#(Surface%, Index%)
End Function

Function VertexY#(Surface%, Index%)
    Return spwVertexY#(Surface%, Index%)
End Function

Function VertexZ#(Surface%, Index%)
    Return spwVertexZ#(Surface%, Index%)
End Function

Function VertexNX#(Surface%, Index%)
    Return spwVertexNX#(Surface%, Index%)
End Function

Function VertexNY#(Surface%, Index%)
    Return spwVertexNY#(Surface%, Index%)
End Function

Function VertexNZ#(Surface%, Index%)
    Return spwVertexNZ#(Surface%, Index%)
End Function

Function VertexRed%(Surface%, Index%)
    Return spwVertexRed%(Surface%, Index%)
End Function

Function VertexGreen%(Surface%, Index%)
    Return spwVertexGreen%(Surface%, Index%)
End Function

Function VertexBlue%(Surface%, Index%)
    Return spwVertexBlue%(Surface%, Index%)
End Function

Function VertexAlpha%(Surface%, Index%)
    Return spwVertexAlpha%(Surface%, Index%)
End Function

Function VertexU#(Surface%, Index%)
    Return spwVertexU#(Surface%, Index%)
End Function

Function VertexV#(Surface%, Index%)
    Return spwVertexV#(Surface%, Index%)
End Function

Function VertexW#(Surface%, Index%)
    Return spwVertexW#(Surface%, Index%)
End Function

Function TriangleVertex%(Surface%, Index%, Corner%)
    Return spwTriangleVertex%(Surface%, Index%, Corner%)
End Function

Function EntityColor(Entity%, Red%, Green%, Blue%)
    spwEntityColor(Entity%, Red%, Green%, Blue%)
End Function

Function EntityAlpha(Entity%, Alpha#)
    spwEntityAlpha(Entity%, Alpha#)
End Function

Function EntityFX(Entity%, Mode%)
    spwEntityFX(Entity%, Mode%)
End Function

Function EntityBlend(Entity%, Mode%)
    spwEntityBlend(Entity%, Mode%)
End Function

Function EntityOrder(Entity%, Order%)
    spwEntityOrder(Entity%, Order%)
End Function

Function EntityX#(Entity%, isGlobal% = False)
    Return spwEntityX#(Entity%, isGlobal%)
End Function

Function EntityY#(Entity%, isGlobal% = False)
    Return spwEntityY#(Entity%, isGlobal%)
End Function

Function EntityZ#(Entity%, isGlobal% = False)
    Return spwEntityZ#(Entity%, isGlobal%)
End Function

Function EntityPitch#(Entity%, isGlobal% = False)
    Return spwEntityPitch#(Entity%, isGlobal%)
End Function

Function EntityYaw#(Entity%, isGlobal% = False)
    Return spwEntityYaw#(Entity%, isGlobal%)
End Function

Function EntityRoll#(Entity%, isGlobal% = False)
    Return spwEntityRoll#(Entity%, isGlobal%)
End Function

Function MeshWidth#(Mesh%)
    Return spwMeshWidth#(Mesh%)
End Function

Function MeshHeight#(Mesh%)
    Return spwMeshHeight#(Mesh%)
End Function

Function MeshDepth#(Mesh%)
    Return spwMeshDepth#(Mesh%)
End Function

Function EntityName$(Entity%)
    Return spwEntityName$(Entity%)
End Function

Function EntityDistance#(SrcEntity%, DestEntity%)
    Return spwEntityDistance#(SrcEntity%, DestEntity%)
End Function

Function CameraViewport(Camera%, X%, Y%, Width%, Height%)
    spwCameraViewport(Camera%, X%, Y%, Width%, Height%)
End Function

Function CameraRange(Camera%, Near#, Far#)
    spwCameraRange(Camera%, Near#, Far#)
End Function

Function LightColor(Light%, Red%, Green%, Blue%)
    spwLightColor(Light%, Red%, Green%, Blue%)
End Function

Function AmbientLight(Red%, Green%, Blue%)
    spwAmbientLight(Red%, Green%, Blue%)
End Function

Function RenderWorld(Tween# = 1.0)
    spwRenderWorld(Tween#)
End Function

Function UpdateWorld()
    spwUpdateWorld()
End Function

Function Flip()
    spwFlip()
End Function

Function WireFrame(Enable%)
    spwWireFrame(Enable%)
End Function

Function WireFrameType(ObjType%)
    spwWireFrameType(ObjType%)
End Function

Function EntityWireFrame(Entity%, ObjType%)
    spwEntityWireFrame(Entity%, ObjType%)
End Function

Function EntityType(Entity%, CollisionType%, Recursive% = False)
    spwEntityType(Entity%, CollisionType%, Recursive%)
End Function

Function EntityRadius(Entity%, Radius#)
    spwEntityRadius(Entity%, Radius#)
End Function

Function ResetEntity(Entity%)
    spwResetEntity(Entity%)
End Function

Function Collisions(SrcType%, DestType%, Method%, Response%)
    spwCollisions(SrcType%, DestType%, Method%, Response%)
End Function

Function CountCollisions%(Entity%)
    Return spwCountCollisions%(Entity%)
End Function

Function EntityPickMode(Entity%, Geometry% = 0, Obscurer% = True)
    spwEntityPickMode(Entity%, Geometry%, Obscurer%)
End Function

Function CameraPick%(Camera%, X%, Y%)
    Return spwCameraPick%(Camera%, X%, Y%)
End Function

Function KeyDown%(Scancode%)
    Return spwKeyDown%(Scancode%)
End Function

Function KeyHit%(Scancode%)
    Return spwKeyHit%(Scancode%)
End Function

Function KeyReleased%(Scancode%)
    Return spwKeyReleased%(Scancode%)
End Function

Function MouseDown%(Scancode%)
    Return spwMouseDown%(Scancode%)
End Function

Function MouseHit%(Scancode%)
    Return spwMouseHit%(Scancode%)
End Function

Function MouseReleased%(Scancode%)
    Return spwMouseReleased%(Scancode%)
End Function

Function MouseX%()
    Return spwMouseX%()
End Function

Function MouseY%()
    Return spwMouseY%()
End Function

Function MouseXSpeed%()
    Return spwMouseXSpeed%()
End Function

Function MouseYSpeed%()
    Return spwMouseYSpeed%()
End Function

Function MouseZSpeed%()
    Return spwMouseZSpeed%()
End Function

Function ShowPointer()
    spwShowPointer()
End Function

Function HidePointer()
    spwHidePointer()
End Function

Function MoveMouse(X%, Y%)
    spwMoveMouse(X%, Y%)
End Function

Function WaitMouse()
    spwWaitMouse()
End Function

Function MouseWait()
    spwMouseWait()
End Function

Function LoadShader%(sVertexShaderPath$, sPixelShaderPath$, VertexEntryPoint$, PixelEntryPoint$)
    Return spwLoadShader%(sVertexShaderPath$, sPixelShaderPath$, VertexEntryPoint$, PixelEntryPoint$)
End Function

Function SetShader(Entity%, Shader%)
    spwSetShader(Entity%, Shader%)
End Function

Function SetShaderInt(Shader%, Name$, Value%)
    spwSetShaderInt(Shader%, Name$, Value%)
End Function

Function SetShaderFloat(Shader%, Name$, Value#)
    spwSetShaderFloat(Shader%, Name$, Value#)
End Function

Function SetShaderVec3(Shader%, Name$, X#, Y#, Z#)
    spwSetShaderVec3(Shader%, Name$, X#, Y#, Z#)
End Function

Function FreeShader(Shader%)
    spwFreeShader(Shader%)
End Function

Function Color(Red%, Green%, Blue%, Alpha% = 255)
    spwColor(Red%, Green%, Blue%, Alpha%)
End Function

Function GetColor(X%, Y%)
    spwGetColor(X%, Y%)
End Function

Function ColorRed%()
    Return spwColorRed%()
End Function

Function ColorGreen%()
    Return spwColorGreen%()
End Function

Function ColorBlue%()
    Return spwColorBlue%()
End Function

Function Plot(X%, Y%)
    spwPlot(X%, Y%)
End Function

Function Line(X1%, Y1%, X2%, Y2%)
    spwLine(X1%, Y1%, X2%, Y2%)
End Function

Function Rect(X%, Y%, Width%, Height%, Solid% = True)
    spwRect(X%, Y%, Width%, Height%, Solid%)
End Function

Function CreateTexture%(Width%, Height%, Flags% = 0, Frame% = 0)
    Return spwCreateTexture%(Width%, Height%, Flags%, Frame%)
End Function

Function LoadTexture%(File$, Flags% = 0)
    Return spwLoadTexture%(File$, Flags%)
End Function

Function FreeTexture(Texture%)
    spwFreeTexture(Texture%)
End Function

Function ScaleTexture(Texture%, Width#, Height#)
    spwScaleTexture(Texture%, Width#, Height#)
End Function

Function CreateBrush%(Red% = 0, Green% = 0, Blue% = 0)
    Return spwCreateBrush%(Red%, Green%, Blue%)
End Function

Function LoadBrush%(File$, Flags% = 0, Width# = 1.0, Height# = 1.0)
    Return spwLoadBrush%(File$, Flags%, Width#, Height#)
End Function

Function FreeBrush(Brush%)
    spwFreeBrush(Brush%)
End Function

Function BrushTexture(Brush%, Texture%, Frame% = 0, Index% = 0)
    spwBrushTexture(Brush%, Texture%, Frame%, Index%)
End Function

Function PaintMesh(Mesh%, Brush%)
    spwPaintMesh(Mesh%, Brush%)
End Function

Function LoadImage%(File$)
    Return spwLoadImage%(File$)
End Function

Function DrawImage(ObjHandle%, X%, Y%, Frame% = 0)
    spwDrawImage(ObjHandle%, X%, Y%, Frame%)
End Function

Function DrawImageStretch(ObjHandle%, X%, Y%, Width%, Height%, MapX1# = 0.0, MapY1# = 0.0, MapX2# = 1.0, MapY2# = 1.0)
    spwDrawImageStretch(ObjHandle%, X%, Y%, Width%, Height%, MapX1#, MapY1#, MapX2#, MapY2#)
End Function

Function DrawImageRotate(ObjHandle%, X%, Y%, Angle#, Radius#)
    spwDrawImageRotate(ObjHandle%, X%, Y%, Angle#, Radius#)
End Function

Function ClsColor(Red%, Green%, Blue%)
    spwClsColor(Red%, Green%, Blue%)
End Function

Function CameraClsColor(Camera%, Red%, Green%, Blue%)
    spwCameraClsColor(Camera%, Red%, Green%, Blue%)
End Function

Function TextureBuffer%(Texture%, Frame% = 0)
    Return spwTextureBuffer%(Texture%, Frame%)
End Function

Function BackBuffer%()
    Return spwBackBuffer%()
End Function

Function SetBuffer(Buffer%)
    spwSetBuffer(Buffer%)
End Function

Function Text(X%, Y%, TextString$, CenterX% = False, CenterY% = False)
    spwText(X%, Y%, TextString$, CenterX%, CenterY%)
End Function



; ================================================================
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Xaymar

ehemals "Cgamer"

BeitragDi, März 23, 2010 17:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann man schon testen und evtle bugs melden? Klingt sehr vielversprechend:)
Warbseite

LukasBanana

BeitragDi, März 23, 2010 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich arbeite erst seit 3 Tagen daran ^^
Aber ich will schon jetzt am Wochenende die erste Version veröffentlichen! Very Happy
Ich bin schon einige meiner ersten/ alten B3D Tests am durch checken mit dem Wrapper.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

ozzi789

BeitragDi, März 23, 2010 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich mir das mal erlauben darf, EPICWIN Very Happy
Melde mich gerne als Tester Wink
Weiter so!


mfg ozzi
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

LukasBanana

BeitragDi, März 23, 2010 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Freut mich, dass da immer noch einige Interesse dran haben ^^

Übrigens hab ich falsch nach den Anzahl Funktionen geguckt, es sind schon fast 200 Funktionen Very Happy

Gleich vorab: die SPE hat noch etwas Schwierigkeiten, wenn es sich bei den Texturen bzw. Bilder um NPOT Texturen handelt (Non-Power-Of-Two), d.h. Texturen mit einer Größe von z.B. 200x150 und nicht 256x128.
Aber eigentlich sollte man - zumindest bei 3D Grafik - ohnehin darauf achten, dass die Texturen eine Größe von 2^n * 2^n hat.

Gleich mal ne Frage an euch: weiß jemand von euch, was genau die Funktion "ScaleTexture" macht??
Es sieht so aus, also würde nicht die Texture skaliert, sondern die Vertex-TexCoords derer Modelle, die diese Texture haben.
Ich bin im Moment noch etwas Ratlos, wie ich das im Wrapper umsetzen kann.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Xaymar

ehemals "Cgamer"

BeitragDi, März 23, 2010 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Die ScaleTexture verändert womöglich ein Grid woraus die Texturpositionen berechnet werden.(Ich hoffe zumindest das ich das noch so richtig im Kopf habe)
Warbseite

Noobody

BeitragDi, März 23, 2010 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ScaleTexture beeinflusst soweit ich weiss einfach die Texturmatrix. In OpenGL ist das einfach glMatrixMode( GL_TEXTURE ); glScalef( ..... ), aber wie das in DirectX aussieht, weiss ich nicht.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

LukasBanana

BeitragDi, März 23, 2010 23:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, das ist kein Problem. Die SPE kann für jeden Layer eines jeden Objektes die Texture Matrix festlegen.
Sowohl für OpenGL als auch für Direct3D9 (und auch für den SoftwareRenderer ^^)
Aber das muss dann wohl für jedes Objekt getan werden, dass diese Texture hat.
Ich glaub ich weiß wie ich das machen kann =)
Danke für den Tipp Very Happy
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

LukasBanana

BeitragDo, März 25, 2010 12:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,
ich habe eben gerade in meinem Forum den Download-link zur aller ersten Alpha-Version des neuen Wrappers veröffentlicht! Very Happy

Hier ist der Link zum Beitrag:
http://www.hlc-games.de/forum/...&t=112

Wenn ihr euch jetzt fragt, warum ich hier nicht direkt den Download-link geschickt habe, dann kann ich das folgender maßen beantworten:
Ich will natürlich, dass mehr an meinem Forzum vorbeikommen, damit sich das irgendwann auch mal ein wenig füllt Wink
Ich hab da jetzt auch ein unter-forum namens "Multilingual" eingebaut, für die, die nicht so gut in Englisch sind oder keine Lust haben, immer alles zu übersetzen. Das ist so zu sagen die neue Laberecke, in der alles in jeder Sprache gefragt und beantwortet werden darf ^^
Wär also schön, wenn ihr bug-reports in meinem Forum postet.

Gruß,
Lukas

PS: denkt daran: es ist erst mal eine ALPHA version ^^ also erwartet nicht gleich, dass eure alten Programme alle damit laufen Wink
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Jo0oker

BeitragFr, März 26, 2010 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin Leute,
ich habe nen Programm geschrieben, welches aus der DECLS eine .bmx macht, so dass man die SPE nun auch in BMax nutzen kann.

Allerdings fehlen noch standard Parameter.
Werde das Programm heute Abend mal veröffentlichen.

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

LukasBanana

BeitragFr, März 26, 2010 15:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Hört sich gut an Smile
Allerdings kann ich das leider nicht nutzen, da ich kein BMax habe.
Kann mal jemand en Code sample schicken wie das da aussieht? Würd' mich ma interessieren.
Mein YouTube Channel: http://www.youtube.com/user/SoftPixel
Mein Twitter Profil: https://twitter.com/LukasBanana
Meine Projekte auf github.com: https://github.com/LukasBanana
Meine Projekte auf bitbucket.org: https://bitbucket.org/LukasBanana

Jo0oker

BeitragFr, März 26, 2010 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Es geht fast wie in C/C++
über die WinAPI mit: LoadLibraryA

(Bin gerade am Notebook und hab da kein Sourcecode).

lg Jo0oker
Tehadon, das kostenlose 3D RPG
www.tehadon.de
http://www.blitzforum.de/worklogs/14/
Das Abenteuer wird beginnen!

Gehe zu Seite 1, 2, 3, 4, 5, 6, 7  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group