Autor Beitrag
Currywurst
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50

Win XP Pro
D3 Pro, D5 Std, D6 Pers
BeitragVerfasst: Mo 15.12.03 18:26 
also ich möchte möglichst einfach 2d grafiken hardwarebeschleunigt darstellen... da bin ich nun beim guten alten directdraw gelandet und hab mich mit diesem tut hier befasst www.alistairkeys.co.uk/ddraw1.shtml

leider gehts da aber nur um den fullscreen mode, ich wills aber im fenster, soweit bin ich nun schon

ausblenden volle Höhe Delphi-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:
30:
31:
32:
uses
  DirectDraw;
 
var
  DD7:           IDirectDraw7;
  Primary:       IDirectDrawSurface7;
 
//... 

DirectDrawCreateEx(nil, DD7, IID_IDirectDraw7, nil);
DD7.SetCooperativeLevel(0, DDSCL_NORMAL);

//... und schon kanns losgehen:

var
  SurfaceDesc: TDDSurfaceDesc2;
begin
  FillChar(SurfaceDesc, SizeOf(SurfaceDesc), 0);
  SurfaceDesc.dwSize:=SizeOf(SurfaceDesc);

  SurfaceDesc.dwFlags:=DDSD_CAPS;
  SurfaceDesc.ddsCaps.dwCaps:=DDSCAPS_PRIMARYSURFACE or DDSCAPS_VIDEOMEMORY;
  DD7.CreateSurface(SurfaceDesc, Primary, nil);

  //... das war die primary surface, nun noch nen clipper, und schon
  DD7.CreateClipper(0, Clipper, nil);
  Clipper.SetHWnd(0, Handle);
  Primary.SetClipper(Clipper);

  //.. kanns losgehen, z.b. so: 
 FillRect(Primary, Nil, Farbe);
  //(die fillrect func is jetzt mal egal, es funzt jedenfalls alles soweit)


nun möchte ich aber eine zweite surface (später auch weitere) als buffer, darauf zeichne ich, und wenn ich fertig bin blitte ich das aufs primary. klingt einfach, is im tut auch für fullscreen sehr gut beschrieben, aber eben für windowed krieg ichs nich hin, hab schon alle möglichen abwandlungen von der homepage da ausprobiert, aber geh halt einfach nicht...

also zwei möglichkeiten,
1: jemand sagt mir wie ich das hinbekomme :-)
2: jemand kennt eine andere möglichkeit....

zu 2. will ich aber sagen, schaut euch meinen code hier und das tut an!, tut lesen und verstehen in 20 minuten, die wesentlichen codezeilen kann ich an meinen fingern abzählen UND ich brauche keine komponenten (sehr wichtig)

das ganze is nur spielerei und ich will mich dafür nich tagelang mit irgendwelchen directx tutorials quälen müssen oder zig units/unzählige codezeilen haben, also wär mir 1. lieber :-)