vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Microsoft Technical Submit  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.5  | Shop Copyright ©2000-2008
 
zurück
Knüller: vb@rchiv CD Vol.4
Knüller: vb@rchiv Offline-Reader - Die Offline-Wissensdatenbank

vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4
 
Tools & Components Anzeigen 
 
Unser Tipp: Alle Online-Forenbeiträge aus dem vb@rchiv - gesammelt in einer Offline-Wissendatenbank, mit Internet-Update-Funktion, u.v.m.

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Rund um DirectX
DX8 PrimitiveUP-Problem 
Autor: Leg0las
Datum: 09.04.08 21:32

Hi

Ich habe ein Problem, das sich einfach nicht lösen lassen will:
Ich will ein Spiel mit DX8 unter VB6 programmieren. Da das ganze in 2D sein soll verwende ich dazu Fonts für Schriften und Sprites für die Graphiken.
Ich will nun Linien zeichnen und habe im Internet dazu die Linestrip-Methode gefunden. Aber wenn ich wie im Beispiel von http://www.activevb.de/tutorials/directx/d3d_2dg1/d3d2dg1.html zum Beispiel ein Rechteck zeichnen will, funktioniert das zwar beim gedownloadeten Projekt, aber bei mir funktioniert weder das Zeichnen eines Rechteck noch eines einfachen Linestrips. Es wird einfach alles außer dem Rechteck/Linestrip dargestellt.

Zur Initialisierung habe ich folgenden Code:
  On Error GoTo ErrorHandler
    Dim DispMode As D3DDISPLAYMODE
    Dim D3DWindow  As D3DPRESENT_PARAMETERS
    Set DX = New DirectX8
    Set D3D = DX.Direct3DCreate()
    If D3D Is Nothing Then Exit Sub
    DispMode.Format = D3DFMT_R5G6B5
    DispMode.Width = ResolutionX 'Variable für meine Auflösung
    DispMode.Height = ResolutionY 'Variable für meine Auflösung
    With D3DWindow
     .SwapEffect = D3DSWAPEFFECT_FLIP
     .BackBufferCount = 1
     .BackBufferWidth = ResolutionX 
     .BackBufferHeight = ResolutionY 
     .BackBufferFormat = DispMode.Format
     .hDeviceWindow = Haupt.hWnd 'Haupt ist mein Formular
    End With
    Set D3DDevice8 = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, _
      Haupt.hWnd, _
                                      D3DCREATE_SOFTWARE_VERTEXPROCESSING, _
                                      D3DWindow)
    If D3DDevice8 Is Nothing Then Exit Sub
    D3DDevice8.SetVertexShader FVF
    D3DDevice8.SetRenderState D3DRS_LIGHTING, False
    Set gD3DX8 = New D3DX8
    Set DX8Sprite = gD3DX8.CreateSprite(D3DDevice8)
    Set DX8Font1 = CreateFont(Haupt.lbl_Font1.Font) 'Label das die richtige 
    ' Schriftart und
    Set DX8Font2 = CreateFont(Haupt.lbl_Font2.Font) 'Größe hat
    With rectFont 'Rectangle für meine Fonts
      .Left = 1: .Top = 1: .Right = 4000: .bottom = 4000
    End With
    Exit Sub
 ErrorHandler:
    MsgBox "Fehler beim Initialisieren von DirectX 8!"
    End
Das Rechteck erstelle ich so:
 TriStrip(0) = CreateTLVertex(10, 10, 0, 1, RGB(255, 255, 255), 0, 0, 0) _
   'Funktion aus dem
 TriStrip(1) = CreateTLVertex(210, 10, 0, 1, RGB(255, 0, 0), 0, 0, 0) _
 'Beispielprojekt bei
 TriStrip(2) = CreateTLVertex(10, 210, 0, 1, RGB(0, 255, 0), 0, 0, 0) 'dem 
 ' alles funktioniert
 TriStrip(3) = CreateTLVertex(210, 210, 0, 1, RGB(0, 0, 255), 0, 0, 0)
Und der Renderer sieht so aus:
 D3DDevice8.Clear 0, ByVal 0, D3DCLEAR_TARGET, 0, 1#, 0
 D3DDevice8.BeginScene
 D3DDevice.DrawPrimitiveUP D3DPT_TRIANGLESTRIP, 2, TriStrip(0), Len(TriStrip(0))
 D3DDevice8.EndScene
 D3DDevice8.Present ByVal 0, ByVal 0, 0, ByVal 0
Die Sprite- und Fontaufrufe im Renderer habe ich nicht dazugeschrieben, aber ich habe es schon ohne probiert und es funktioniert trotzdem nicht.

Weiß vielleicht jemand ob ich irgendwo eine Einstellung in VB6 selbst änder muss oder ob ich trotz stundenlanger Suche einen Fehler im Code habe?

Danke schon im Vorraus!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DX8 PrimitiveUP-Problem212Leg0las09.04.08 21:32
Re: DX8 PrimitiveUP-Problem92sudave10.04.08 09:28
Re: DX8 PrimitiveUP-Problem87Leg0las10.04.08 19:54
Re: DX8 PrimitiveUP-Problem83Leg0las10.04.08 20:52
Re: DX8 PrimitiveUP-Problem88sudave10.04.08 22:36

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2008 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.

Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel