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

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

11

06.06.2009, 17:38

ich würde es immer noch so in der art machen

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class renderer
{
    ID3D10Device* device;

public:
    MyEffect*   CreateEffect(const std::wstring& _path);
};

class MyEffect
{
    ID3D10Effect* effect

public:
    MyEffect(ID3D10Effect* e)
    {
        effect = e;
    }
};

MyEffect* renderer::CreateEffect(const std::wstring& _path)
{
    ID3D10Effect* d3d10Effect = 0;
    MyEffect*     effect = 0;

    // Hier wird der DX-Effect erstellt mit Hilfe der Device


    effect = new MyEffect(d3d10Effect);
    return effect;
}

mal schnell eingegeben, fehler können drin sein ;)

12

06.06.2009, 17:43

Dann müsste ich aber meiner Effect klasse, eine D3D10 spezifisches D3D10Effect* im Konstruktor übergeben, was ich auch vermeiden will.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

13

06.06.2009, 17:50

Zitat von »"OnSoL"«

Dann müsste ich aber meiner Effect klasse, eine D3D10 spezifisches D3D10Effect* im Konstruktor übergeben, was ich auch vermeiden will.


Das kannst du ja auch wrappen, respektive wird nur vom Erzeuger CreateEffect gebraucht.

Zitat

mal schnell eingegeben, fehler können drin sein

Semikolon vergessen. ;)

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

14

06.06.2009, 18:27

du hast ein eklasse mit ner device und eine klasse mit dem effekt, aber keine der beiden klassen soll irgendwas directX10 mässiges im constructor haben, wobei du die device benötigst, um den effekt erstellen zukönnen.....
da wirste wohl die auswahl an chancen haben ;).

jaja, dieses semikolons immer :)

15

06.06.2009, 18:38

Dann werd ich es wohl mit dem C'tor machen und den Factories in meiner Window Klasse. Wieso brauch Directx auch immer dieses Device, um Shader, texturen, etc zu erstellen. Mit OpenGL hät ich dieses Problem nicht :(

BlackSnake

Community-Fossil

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

16

06.06.2009, 19:45

ist doch ganz cool, kannste mehrere devices erstellen ;)

Asmodiel

Treue Seele

Beiträge: 150

Wohnort: Schweiz

Beruf: Applikationsentwickler

  • Private Nachricht senden

17

06.06.2009, 19:48

... dann nimm OpenGL? ;)
Kann's sein, dass Du von C kommst? :P
Eat a beaver - Save a tree.

18

06.06.2009, 20:24

Asmodiel: Ja, das hab ich zuerst gelernt und dann C++ als addon, aber die konzepte sind schon ein wenig anders. Trotzdem würd ich sagen, das mir das Objekt orientierte mehr liegt als das strukturelle programmieren.

Asmodiel

Treue Seele

Beiträge: 150

Wohnort: Schweiz

Beruf: Applikationsentwickler

  • Private Nachricht senden

19

06.06.2009, 21:49

Ai, die Konzepte sind eigentlich viel anders... Ich habe früher in C programmiert, könnte heute aber wohl keinen "richtigen" C-Code mehr hinkriegen. ;)

Noch etwas wichtiges, das ich bisher nicht beachtet habe: Machst Du Dir selbst eine Device-Klasse (die ein Device-Objekt kapselt und weitere Hilfsfunktionen anbietet) oder möchtest Du immer direkt mit dem ID3D10Device-Objekt arbeiten? Ich bin bisher von ersterem ausgegangen, war da wohl etwas müde. ;)
Eat a beaver - Save a tree.

20

06.06.2009, 22:20

Ich baue mir einen Wrapper für das Device, samt Fenster. In diesem Wrapper wird Rendering, WindowManager spezifisches gekapselt.
Ich bin aber noch am überlegen,ob ich den Renderer da rauslöse. Ausserdem wird in dem Wrapper gerade auch EventManagment gemacht. Ich finde EventManagment und WindowManager gehört zussammen.

Werbeanzeige