Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

1

14.02.2013, 19:56

Getter für IDXGISwapChain

Hallo Leute,
ich bin gerade dabei meinen DirectX11 Code besser zu strukturieren.
Dabei brauche ich jetzt eine getter funktion die mir IDXGISwapChain aus der D3D-Klasse zurückgibt für meine Render-Funktion in der Game-Klasse.
Leider darf man laut meinem Compiler keine Funktion schreiben die eine IDXGISwapChain zurückgibt:

Zitat

Eine Funktion die die abstrakte Klasse IDXGISwapChain zurückgibt ist nicht zulässig

Hat vielleicht jemand eine Idee wie ich jetzt an meine SwapChain komme?

Edit: Ausser die Variablen public zu machen.

Danke im Voraus,
Crazy007
Der Error sitzt meistens vor dem Bildschirm! :D

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

14.02.2013, 20:02

Ich glaube eher, dass Du da etwas ganz falsches zurückzugeben versuchst. Code zeigen hilft.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

3

14.02.2013, 20:10

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class D3DClass
{
public:
    //Methods
    D3DClass(HWND hWnd);
    ~D3DClass();

    //Getters
    IDXGISwapChain getSwapChain() {return *pSwapChain;};

private:
    //Members
    IDXGISwapChain *pSwapChain;
    ID3D11RenderTargetView *pRenderTargetView;
    ID3D11Device *pDevice;
    ID3D11DeviceContext *pDeviceContext;
};


Hier mal der D3DClass.hpp code
Der Error sitzt meistens vor dem Bildschirm! :D

4

14.02.2013, 20:11

Du musst bei deinem Getter einen Pointer auf das SwapChain zurück geben ;)

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

5

14.02.2013, 20:12

Sorry hab ich nur hier vergessen im code ists schon drin
Der Error sitzt meistens vor dem Bildschirm! :D

idontknow

unregistriert

6

14.02.2013, 20:52

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class D3DClass
{
public:
    //Methods
    D3DClass(HWND hWnd);
    ~D3DClass();

    //Getters
    IDXGISwapChain* getSwapChain() {return pSwapChain;}; // <- kein *pSwapChain!

private:
    //Members
    IDXGISwapChain *pSwapChain;
    ID3D11RenderTargetView *pRenderTargetView;
    ID3D11Device *pDevice;
    ID3D11DeviceContext *pDeviceContext;
};


7

14.02.2013, 20:55

oh, das hab ich übersehen ^^

Zitat

Das programm, dass ich eben geschrieben hab ließ sich ohne einen einzigen Fehler kompilieren und und funktioniert so wie es soll. Das macht mir Angst, da ist was Faul

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

8

14.02.2013, 21:08

Oh danke idontknow!
Jetzt funktionierts!
Der Error sitzt meistens vor dem Bildschirm! :D

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

14.02.2013, 22:22

Ich fände interessant, wieso genau du meinst, einen Getter für die Swapchain zu brauchen. ;)

LukasBanana

Alter Hase

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

10

15.02.2013, 10:43

Ist das nur ne Beispielklasse oder steht das wirklich so in deinem Projekt?
Weil wenn du deinen Code strukturieren willst, wiso heißt deine Kasse dann "D3DClass"?
Wie wär's mit "D3DRenderSystem" und "D3DRenderContext"?

Werbeanzeige