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

CBenni::O

1x Contest-Sieger

  • »CBenni::O« ist der Autor dieses Themas

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

1

02.11.2009, 21:19

Problem mit tbModel->Init(): bGenerateExtraData

Hallo,
um den ladevorgang zu beschleunigen, wollte ich meine modelle, die nur zum rendern verwendet werden, die Extradaten nicht zu erstellen. Wenn ich nun statt

C-/C++-Quelltext

1
pPlanet->Init(cFilename)

das hier schreibe:

C-/C++-Quelltext

1
pPlanet->Init(cFilename,"","",0,8,0,8,0,0)

nimmt er statt der Überladenen funktion um das modell aus einer Datei zu laden, die für virtuelle dateien. da aber

Quellcode

1
char* cFilename

ist, bekomme ich erwartungsgemäß folgenden fehler:

Quellcode

1
2
error C2664: 'tbResult tbModel::Init(tbVFile *,char *,char *,D3DPOOL,DWORD,D3DPOOL,DWORD,BOOL,BOOL)': Konvertierung des Parameters 1 von 'char *' in 'tbVFile *' nicht möglich
1>        Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.


kann ich irgendwie eine spezielle funktion "erzwingen" oder mache ich irgendwas falsch?

danke schon mal ;)

mfg CBenni::O

Edit: 42 beiträge^^ juchuuuu
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

2

03.11.2009, 14:02

Zur not ist es ja nicht schwer eine Funktion zu erstellen,
die ein VFile aus dem Dateinamen erstellt und dann die VFile Version von tbModel aufruft.

CBenni::O

1x Contest-Sieger

  • »CBenni::O« ist der Autor dieses Themas

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

3

03.11.2009, 16:34

ja, schon, aber das ist ja nicht sinn der sache^^

wozu sind dann diese parameter da, wenn man sie icht verwenden kann? ;)

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

4

03.11.2009, 18:10

Damit du hin und wieder mal in dieses Forum tabben musst 8)

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

5

03.11.2009, 18:26

Gibt es denn auch eine entsprechende Funktion mit char? Also:

C-/C++-Quelltext

1
tbResult tbModel::Init(char *,char *,char *,D3DPOOL,DWORD,D3DPOOL,DWORD,BOOL,BOOL)

Im Normalfall sollte sich der Kompiler schon die richtige rauspicken, aber vllt. sind einfach die Parameter bei der anderen Funktion etwas anders und dann klappt das natürlich nicht.

6

03.11.2009, 19:33

Ein Blick in die tbModel.h könnte helfen
(mal abgesehen von einem Blick ins Buch, oder Verwendung von IntelliSense ;)):

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    // Aus Datei initialisieren

    tbResult Init(char* pcFilename,
                  char* pcTexturePrefix = "",
                  char* pcTexturePostfix = "",
                  D3DPOOL VBPool = D3DPOOL_DEFAULT,
                  DWORD dwVBUsage = D3DUSAGE_WRITEONLY,
                  D3DPOOL IBPool = D3DPOOL_DEFAULT,
                  DWORD dwIBUsage = D3DUSAGE_WRITEONLY,
                  BOOL bGenerateExtraData = TRUE,
                  BOOL bExtraDataOnly = FALSE);

CBenni::O

1x Contest-Sieger

  • »CBenni::O« ist der Autor dieses Themas

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

7

04.11.2009, 11:46

ja, das ist schon klar... die ist einfach mehrfach überladen... für VFiles, echte Dateien und Speicherplätze...
aber wieso verwendet er die funktion für VFile, wenn ich char* angebe? wenn ich nur einen char* angebe (der rest hat ja standard-werte) dann nimmt er die korrekte version...
ich hab es nun so gelöst:

C-/C++-Quelltext

1
2
3
tbVFile* vFile = new tbVFile;
vFile->Init(cFilename);
pPlanet->Init(vFile,"","",D3DPOOL_DEFAULT,8,D3DPOOL_DEFAULT,8,FALSE,FALSE)

:p klappt ja auch so^^

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Werbeanzeige