#1 25.02.2005 19:09:06

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Header für Tutorial-Framework

Die Community hatte sich ja schon ursprünglich dazu entschlossen Tutorials auf Spellmakers Framework aufzubauen. Wie ich in http://www.delphidev.de/phpBB2/viewtopic.php?t=151 gesehen habe, existieren sogar schon Tuts, welche das Framework verwenden.

Nun gibt es leider zur Zeit einen http://www.delphidev.de/phpBB2/viewtopi … p;start=15 wegen der Header. Die einen meinen Ampaze's sind die "besten", nur diese werden ja bekanntlich nicht mehr weiterentwickelt. Clooties Header wären eine Alternative, finden nur offensichtlich aufgrund diverser Eigenheiten keinen grossen Anklang.

Ausserdem gibt es ja noch eine dritte Variante: Managed DirectX im dotnet Framework.

Nun möchte ich von Euch wissen, welche die "offiziellen" Delphidev Header werden sollen (alle Tutorials sollten dann damit funktionieren)!

Offline

 

#2 25.02.2005 19:18:33

artzuk
GodlikeMember
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 1164

Re: Header für Tutorial-Framework

Ich bin eindeutig für Ampaze's headers. Schließlich haben die Meisten mit diesen angefangen und dann haben sie auch nicht solche Eigenarten ... ob die schneller sind, als Clooties wage ich jetzt einfach mal ganz frech zu bezweifeln, da es in den headern von Ampaze manche unoptimierte bzw. schlecht umgesetzte Dinger gibt.


Mein kleiner .NET Blog: http://artzuk-interactive.de/

Offline

 

#3 25.02.2005 20:58:44

Chris
ExtremeMember
Ort: Erlangen, Bay
Registriert: 24.01.2005
Beiträge: 694
Web-Seite

Re: Header für Tutorial-Framework

Ampaze.
Einfach. Intuitiv.
Var, Proc, Const wie in DX SDK

mfg Chris


Nimm meinen Rat an - ich brauch ihn sowieso nicht

Offline

 

#4 26.02.2005 10:08:32

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Header für Tutorial-Framework

Ampaze.


My software never has bugs. It just develops random features.

Offline

 

#5 26.02.2005 11:25:41

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

Wirklich zukunftweisend ist natürlich eh nur Managed DirectX. Spätestens wenn die Delphi 2005 PE draussen ist, könnten auch alle damit arbeiten, deshalb hab ich jetzt mal für Managed DirectX gevotet.

Offline

 

#6 27.02.2005 11:44:08

Holly
Member
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 76
Web-Seite

Re: Header für Tutorial-Framework

und wer schreibt alles um? es is ja schon nervig, wenn ne neue DX-version rausgekommen ist und man wieder von neuem anfangen hätte können.....klar wird mDX irgendwann der standard sein, aber z.zt. hätte ich echt keinen bock darauf umzusteigen, da ich mich erstmal in die ganze materie einarbeiten muss, um irgendwann mal größere sachen aufzubaun.

ich hab für ampaze gevotet, da ich damit angefangen habe und ich sie verstehe und kenne. mDX kommt für mich erstmal nicht in frage. wäre die ganze arbeit (fast) für umsonst gewesen


HOLLY


Enjoy the 3 dimensions of livin'....

Offline

 

#7 27.02.2005 20:07:52

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

@Holly:
Das Tut, welches Du letztens hier veröffentlicht hast, arbeitet doch auch nur mit den Clootie Headern oder irre ich da?

Ich hab mir das mal angeschaut: Bei den Ampaze Headern muss man einen Font über das Windows HFONT erstellen. Clootie hält sich da ans SDK und bietet das FontDesc an. Ich weiss zwar nicht ob es da noch weitere solcher Unterschiede gibt, aber es müsste meiner Meinung nach einfacher sein mit den Clootie Headern zu arbeiten, wenn man sich darauf verlassen kann, dass Funktionen so funktionieren, wie sie im SDK beschrieben sind.

Offline

 

#8 27.02.2005 20:09:41

Holly
Member
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 76
Web-Seite

Re: Header für Tutorial-Framework

also das sind schon die ampaze-header....is ja auch das framework von spellmaker.....und es gibt mehrere arten eine font zu erstellen


HOLLY


Enjoy the 3 dimensions of livin'....

Offline

 

#9 27.02.2005 20:30:33

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

Hast Du die Header noch mit denen Du dieses Tut geschrieben hast? Es scheint nämlich so als gebe es verschiedene Ampaze Header. In deinem Tutorial wird das Font so erstellt:

Code: delphi

  zeromemory(@fontdesc, sizeof(td3dxfontdesc));
  fontdesc.facename := 'Arial';
  fontdesc.height := 20;
  fontdesc.weight := fw_bold;
  d3dxcreatefontindirect(fd3ddevice, fontdesc, ffont);


Mit den Amp Headern von Martins Homepage kann man diesen Source allerdings nicht kompilieren, da der Funktionsaufruf im Header ganz andere Parameter erwartet:

Code: delphi

function d3dxcreatefontindirect(device : idirect3ddevice9; logfont : plogfont; out font : id3dxfont) : hresult;


Könntest Du mir Deine Header inkl. DLL's dann bitte zukommen lassen!

Offline

 

#10 27.02.2005 20:56:47

Holly
Member
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 76
Web-Seite

Re: Header für Tutorial-Framework

http://psychodb.computer-galaxie.net/Ps … ne/DX9.rar die header....

die header hatten sich in sachen font öfter mal verändert....das kam mir selber schleierhaft vor und ich hatte damit auch immer probleme big_smile


nochmal zu der header-geschichte und mDX: es geht mir ja eigentlich nich darum, ob ich die header verstehe (so kam dein obiger post rüber) sondern es liegt halt an der arbeit. zudem hab ich noch nie wirklich verstanden, was .net nun eigentlich sein soll, außer, dass es plattform-unabhängig ist. und somit ist mir das ganze ein rätsel und für mich noch nicht tragbar


HOLLY


Enjoy the 3 dimensions of livin'....

Offline

 

#11 27.02.2005 21:02:37

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

OK, danke schonmal dafür!

Ich würde sagen, damit ist die Sache dann auch schon geklärt, wenn man sich das vorläufige Ergebnis der Umfrage anschaut. Ich finde Dein Sonnen-Tut übrigens super! Hast Du noch andere?

Offline

 

#12 27.02.2005 21:06:27

Holly
Member
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 76
Web-Seite

Re: Header für Tutorial-Framework

thx big_smile

@tutorials: nein leider nicht.

@sonnen-tut: lobe mich nicht zu hoch, denn mein effekt ist das leider nicht. ist ein effekt von "meshuggah" oder wie der/das heißt. hab das ganze nur nach delphi portiert. aber der effekt is echt geil. wäre sogar für ne echtzeit-sonne in nem spiel zu gebrauchen


HOLLY

p.s.: kannst mich ja mal in icq adden


Enjoy the 3 dimensions of livin'....

Offline

 

#13 27.02.2005 21:09:40

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

Sorry, hab leider kein ICQ und auch keine anderen Messenger oben, da mich die Dinger mehr Zeit kosten als ich zur Verfügung habe. Lese aber gerne Emails, was zum Vorteil hat, dass ich sie auch auf der Arbeit lesen und beantworten kann. wink

Offline

 

#14 28.02.2005 08:27:00

firlefanz
GodlikeMember
Ort: Olpe in NRW
Registriert: 31.01.2005
Beiträge: 1035
Web-Seite

Re: Header für Tutorial-Framework

Hi!

Ich bin für Clootie, Ampaze ist auch ok.
Managed DirectX finde ich Quatsch. Zum einen habe ich Delphi7 gekauft und will damit weiterarbeiten, zum anderen wird sich wohl nicht jeder für ein Spiel das .Net Framework draufhauen oder?

Ich finde Spiele müssen auch ohne Frameworks laufen!
Daher interessiert mich auch Delphi2005 nicht die Bohne, das .Net Zeugs läuft ja eh nur auf den Win Plattformen, da reicht doch auch Delphi7, das kommt ohne Framework aus.

Firle

Offline

 

#15 28.02.2005 08:35:14

MexDelphi
ProMember
Ort: Göppingen
Registriert: 24.01.2005
Beiträge: 235
Web-Seite

Re: Header für Tutorial-Framework

Hi,

ich binn ebenfalls für Clootie ... nicht nur weil ich sie selbst benutze .. sondern weil wohl jeder Neuling Artzuk´s Problem haben wird ... wo bekomme ich die Header her ?? Macht doch wenig sinn etwas zu veröffentlichen, wenn es nur unter erschwerten Bedungungen oder garnicht genutzt werden kann. Wenn Ampaze dann müssen die hier auch zum dl beritliegen !


goto: http://mexdelphi.cybton.com

Offline

 

#16 28.02.2005 08:39:37

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Header für Tutorial-Framework

Naja die meisten haben das Framework sowieso schon installiert....

(Ok, ich habs gerade nich drauf, weil gestern System geplättet :x Man sollte nicht SP2 in ein laufendes System installieren, das schießt alles ab....(bekam an dauernd Bluescreens beim herunterfahren und der Soundtreiber war total abgeschossen, Norton AV blockiert, zudem dauerte das rebooten ewig.
Jetzt hab ich alles platt gemacht, jetzt gehts wieder... smile )

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#17 28.02.2005 10:21:36

MexDelphi
ProMember
Ort: Göppingen
Registriert: 24.01.2005
Beiträge: 235
Web-Seite

Re: Header für Tutorial-Framework

don´t touch a running system smile

ähm ... ich habs nicht drauf ...

btw.  war grad in der Code-Library ohne mich einzuloggen - äh - können jetzt alle ohne Anmeldung downloaden ?? ist das beabsichtigt ?


goto: http://mexdelphi.cybton.com

Offline

 

#18 28.02.2005 14:54:58

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Header für Tutorial-Framework

Zitat:

btw. war grad in der Code-Library ohne mich einzuloggen - äh - können jetzt alle ohne Anmeldung downloaden ?? ist das beabsichtigt ?

ja smile
trotzdem thx, mal einer der aufpasst

Zitat:

ähm ... ich habs nicht drauf ...

Das Framework wird mit SP2 mitgeliefert....hatte gestern abend nur SP1 und SP2 installiert (nicht mal treiber) und hatte das Framework drauf...

Zitat:

don´t touch a running system

Ich bekam bei VisualStudio .NET 2003 immer Bluescreens beim herunterfahren, sobald ich irgendwas kompiliert hatte...M$-Produkt halt...

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#19 28.02.2005 16:42:45

Christian
Webmaster
Ort: Wien
Registriert: 19.01.2005
Beiträge: 509
Web-Seite

Re: Header für Tutorial-Framework

Wenn wir uns für die Ampaze Header entscheiden, werden wir die natürlich, insofern wir das OK von ihm bekommen, hier zum Download anbieten.

Offline

 

#20 28.02.2005 19:42:05

Holly
Member
Ort: Leipzig
Registriert: 24.01.2005
Beiträge: 76
Web-Seite

Re: Header für Tutorial-Framework

wäre denn eigentlich auch jemand bereit, die header weiter zu führen? mal ganz davon abgesehen, dass diese sache bei .net nicht wirklich nötig wäre. ich hätte vielleicht hier und da mal zeit, aber erstens nicht ständig und zweitens hab ich auch nicht so die fähigkeiten, sowas zu machen  :mrgreen:


HOLLY


Enjoy the 3 dimensions of livin'....

Offline

 

#21 28.02.2005 19:43:32

Coolcat
ProGuru
Ort: Aachen, NRW
Registriert: 24.01.2005
Beiträge: 2780
Web-Seite

Re: Header für Tutorial-Framework

sry, würd ja gern, wie so vieles, aber keine Zeit...

Coolcat


My software never has bugs. It just develops random features.

Offline

 

#22 28.02.2005 22:37:46

maximov
Member
Ort: Hamburg
Registriert: 25.01.2005
Beiträge: 84

Re: Header für Tutorial-Framework

:mrgreen:

So! Um die .Net diskussion noch mal ein bisschen anzuheizen, habe ich mal ein aktuelles c# tut (aus dem DirectX Februar SDK update), mit hilfe des Lutz Roeder's .NET Refelctors, in www.chromesville.com-code convertiert. Dh. dieser code ist eigentlich c# code, kann aber mit dem CodeDOM von .NET einfach in einer anderen sprache representiert werden. In diesem fall eine ObjectPascal sprach, die explizit für .Net konzipiert ist und noch nichtmal offiziell erschienen ist.

Der vorteil für uns Pascal-programmierer liegt auf der hand: Wir sind nicht länger auf unseren sprachraum beschränkt. Das ist wie ein Babelfisch für programmierer! Ich verstehe nicht warum sich so viele dagegen wehren? Man muss ja nicht sofort alles andere vergessen. Aber man könnte sich langsam damit vertraut machen.

Abgesehen von den offensichtlichen Chrome-spezialitäten sollte das jeder verstehen können...  smile

Code: delphi

namespace  matricestutorial;

interface

uses
  microsoft.directx,
  microsoft.directx.direct3d,
  system.drawing,
  system.windows.forms;


type
      matrices = public class(form)
            { Fields }
            private device: device;
            private pause: boolean;
            private presentparams: presentparameters;
            private vertexbuffer: vertexbuffer;

            { Methods }
            public constructor; 
            public method initializegraphics: boolean; 
            private class method main; 
            public method oncreatedevice(sender: object; e: eventargs); 
            public method oncreatevertexbuffer(sender: object; e: eventargs); 
            protected method onkeypress(e: keypresseventargs); override; 
            protected method onpaint(e: painteventargs); override; 
            public method onresetdevice(sender: object; e: eventargs); 
            protected method onresize(e: eventargs); override; 
            private method render; 
            private method setupmatrices; 
      end;


implementation

  

constructor matrices;
begin
      self.presentparams := new presentparameters;
      inherited clientsize := new size(400, 300);
      self.text := 'Direct3D Tutorial 3 - Matrices'
end;

method matrices.initializegraphics: boolean;
var
      flag1: boolean;
begin
      try
            self.presentparams.windowed := true;
            self.presentparams.swapeffect := swapeffect.discard;
            parametersarray1 := new presentparameters {
                  self.presentParams
            };
            self.device := new device(0, devicetype.hardware, self, createflags.softwarevertexprocessing, parametersarray1);
            self.device.devicereset += @new eventhandler(self,onresetdevice);
            ;
            self.oncreatedevice(self.device, nil);
            self.onresetdevice(self.device, nil);
            self.pause := false;
            flag1 := true
      except
            on exception1: directxexception do
                  flag1 := false
      end;
      begin
            result := flag1;
            exit
      end
end;

 
method matrices.main;
begin
      using matrices1: matrices := new matrices do begin
            if (not matrices1.initializegraphics) then begin
                  messagebox.show('Could not initialize Direct3D.  This tutorial will exit.')
            end
            else begin
                  matrices1.show;
                  while (matrices1.created) do beginmatrices1.render;
                        application.doevents
                  end
            end
      end

end;

 
method matrices.oncreatedevice(sender: object; e: eventargs);
var
      device1: device;
begin
      device1 := (sender as device);
      self.vertexbuffer := new vertexbuffer(typeof(positioncolored), 3, device1, usage.none, (vertexformats.diffuse or vertexformats.position), pool.&default);
      self.vertexbuffer.created += @new eventhandler(self,oncreatevertexbuffer);
      ;
      self.oncreatevertexbuffer(self.vertexbuffer, nil)
end;

 
method matrices.oncreatevertexbuffer(sender: object; e: eventargs);
var
      buffer1: vertexbuffer;
      coloredarray1: array of positioncolored;
begin
      buffer1 := (sender as vertexbuffer);
      coloredarray1 := (buffer1.lock(0, lockflags.none) as array of positioncolored);
      coloredarray1[0].x := -1;
      coloredarray1[0].y := -1;
      coloredarray1[0].z := 0;
      coloredarray1[0].color := color.darkgoldenrod.toargb;
      coloredarray1[1].x := 1;
      coloredarray1[1].y := -1;
      coloredarray1[1].z := 0;
      coloredarray1[1].color := color.mediumorchid.toargb;
      coloredarray1[2].x := 0;
      coloredarray1[2].y := 1;
      coloredarray1[2].z := 0;
      coloredarray1[2].color := color.cornsilk.toargb;
      buffer1.unlock
end;

 
method matrices.onkeypress(e: keypresseventargs);
begin
      if ((e.keychar as byte) = 27) then begin
            inherited close
      end
end;

 
method matrices.onpaint(e: painteventargs);
begin
      self.render
end;

 
method matrices.onresetdevice(sender: object; e: eventargs);
var
      device1: device;
begin
      device1 := (sender as device);
      device1.renderstate.cullmode := cull.none;
      device1.renderstate.lighting := false
end;

 
method matrices.onresize(e: eventargs);
begin
      self.pause := ((inherited windowstate = formwindowstate.minimized) or not inherited visible)
end;

 
method matrices.render;
begin
      if ((self.device <> nil) and not self.pause) then begin
            self.device.clear(clearflags.target, color.blue, (1 as single), 0);
            self.device.beginscene;
            self.setupmatrices;
            self.device.setstreamsource(0, self.vertexbuffer, 0);
            self.device.vertexformat := (vertexformats.diffuse or vertexformats.position);
            self.device.drawprimitives(primitivetype.trianglelist, 0, 1);
            self.device.endscene;
            self.device.present
      end
end;

 
method matrices.setupmatrices;
var
      num1: integer;
      single1: single;
begin
      num1 := (environment.tickcount mod 1000);
      single1 := ((num1 * 6.283185) div 1000);
      self.device.transform.world := matrix.rotationy(single1);
      self.device.transform.view := matrix.lookatlh(new vector3(0, 3, -5), new vector3(0, 0, 0), new vector3(0, 1, 0));
      self.device.transform.projection := matrix.perspectivefovlh(0.7853982, 1, 1, 100)
end;

 
end.


...www.chromesville.comist noch nicht soweit, das man damit produktiv arbeiten kann. Is hier auch nur zu demonstrations-zwecken benutzt. Genau so gut hätte ich das Delphi CodeDOM nehmen können.

Der code ist jetzt natürlich 100% maschinen generiert und sieht vielleicht teilweise komisch aus. Man sieht aber auch ganz gut die benutzung von Managed DirectX.

smile

grüsse.


maximov (aka maDXam or IDKFA)

Offline

 

#23 01.03.2005 08:09:39

firlefanz
GodlikeMember
Ort: Olpe in NRW
Registriert: 31.01.2005
Beiträge: 1035
Web-Seite

Re: Header für Tutorial-Framework

Hi!

Also ich bin nicht der Meinung, dass alle oder fast alle das Framework drauf haben, ich habs nicht, und mein Grafiker hat es auch nicht. Ich finde, für ein kleines Freeware oder Shareware Spiel kann man nicht verlangen, dass sich der Gelegenheitszocker erstmal das Framework runterlädt. Meine Zielgruppe sind ja keine Experten wie wir, sondern der jedermann, der meist keine Ahnung hat.

Also da habe ich schon die haarsträubensten EMails bekommen, da will ich nicht noch als zusätzliche Hürde das blöde Framework reinnehmen, das ja Stand jetzt sowieso völlig sinnlos ist.

Ich muss aber auch dazu sagen, dass es im Prinzip nicht so wichtig ist, da es mir hauptsächlich darum geht, dass jemand mal ein Stück von meinem DX-Code anguckt oder mir einen Tip gibt, und das klappt ja hervorragend für alle Header, das ist ja fürs forum nicht so entscheidend, dass dann irgendwelche Samples nicht laufen, damit muss ich halt leben.

Nix für ungut, nur meine Meinung (als D3D Anfänger).  :mrgreen:

Firle

Offline

 

#24 01.03.2005 09:38:47

maximov
Member
Ort: Hamburg
Registriert: 25.01.2005
Beiträge: 84

Re: Header für Tutorial-Framework

Auf lange sicht wird Win32 für uns so einen stellenwert haben, wie jetzt DOS  big_smile Dann werden wir sagen "Wisst ihr noch damals Win32...wie fugly das war...aber irgendwie cool". Soll ja heute noch leute geben die TurboPascal machen...das war auch irgendwie cool  :mrgreen:


maximov (aka maDXam or IDKFA)

Offline

 

#25 01.03.2005 17:18:19

Thomas233
Member
Registriert: 24.01.2005
Beiträge: 94

Re: Header für Tutorial-Framework

Nanu ? Deja vu ?  big_smile

EDIT: Nein, nur zweimal auf denselben Link geklickt  sad


Liebe Grüße,
Thomas
---------------
http://www.weirdhospital.de.vu

Offline

 

Brett Fußzeile

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson