Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
=]Mid[=]Night[= Super JLI'ler

Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 24.11.2002, 11:02 Titel: ein paar Fragen |
|
|
Also:
1. Wie geht das mit den Alphakanälen/echter Transparenz in DirectDraw, das wird in Kapitel 17 kurz erwähnt, aber nicht erklärt.
2. Entsteht bei dem folgenden Code ein Memory-Leak? (ich habe keinen Speicher reserviert oder sowas.)
char* Buffer;
//Spielschleife
{
[...]
sprintf(Buffer, "FPS: %.2f", Frames);
//Ausgabe der Frames
[...]
}//Ende der Schleife?
[/b] |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 24.11.2002, 12:04 Titel: |
|
|
1. DDraw unterstützt kein Alphablending.
2. Dabei entsteht kein MemoryLeak ist aber trotzdem falsch, da 'Buffer' irgendwo hin zeigt.
entweder machst du "char buffer[...]" oder "char * buffer = new char[...]" _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
=]Mid[=]Night[= Super JLI'ler

Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 24.11.2002, 12:11 Titel: |
|
|
Das mit den Frames funktioniert auch so, wie ich es gemacht habe.
Zuerst hatte ich auch immer eine feste Länge für die Frameanzeige reserviert, aber wenn diese zu lang war, dann wurden hinter den eigentlichen Frames noch irgendwelche Zeichen angezeigt. |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 24.11.2002, 12:13 Titel: |
|
|
Dass das funktioniert ist aber nur Glück. Und wenn bei fester Länge komische Zeichen kommen, hast du beim Stringkopieren was falsch gemacht... warscheinlich die abschließende, binäre NULL vergessen/überschrieben. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
=]Mid[=]Night[= Super JLI'ler

Anmeldedatum: 20.11.2002 Beiträge: 380 Wohnort: Aachen Medaillen: Keine
|
Verfasst am: 24.11.2002, 12:18 Titel: |
|
|
aaaah, mit dem \0-Zeichen funktioniert das. thx.
aber ich hab grad ein neues Problem, die OutputDebugString-Funktion funktioniert bei mir nicht, es wird nirgendwo der outgeputtete String angezeigt!!! |
|
Nach oben |
|
 |
Daxtor Mini JLI'ler
Anmeldedatum: 17.09.2002 Beiträge: 32 Wohnort: Torgau Medaillen: Keine
|
Verfasst am: 24.11.2002, 21:29 Titel: |
|
|
Hi,
du must F5 drücken um das Programm auszuführen, nachdem wird der String in der Ausgabeleiste unten (unter dem Reiter Debug) angezeigt.
cu Daxtor |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 14.03.2003, 21:15 Titel: |
|
|
Hazel hat Folgendes geschrieben: | 1. DDraw unterstützt kein Alphablending. |
Wenn net mit DDraw, mit was verändert man dann den Alphakanal  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 14.03.2003, 21:53 Titel: |
|
|
Diese Frage wurde (leider) schon sehr oft gestellt und deshalb bitte ich einfach mal darum, die Suchfunktion des Forums zu benutzen - wozu ist sie denn sonst da?
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
Christian Rousselle Site Admin

Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.03.2003, 00:47 Titel: |
|
|
Um das nochmal klar zu stellen,
char* Buffer;
sprintf(Buffer,"Was auch immer");
ist SEHR falsch !!! Verwende bitte folgendes:
char Buffer[128]; // oder irgendwas, dass auf jeden Fal länger ist als dein String
Zum Alphablending. DirectDraw unterstützt das leider nicht. Man kann es jedoch selber machen.
Christian |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 20.03.2003, 20:32 Titel: |
|
|
Christian Rousselle hat Folgendes geschrieben: | Zum Alphablending. DirectDraw unterstützt das leider nicht. Man kann es jedoch selber machen.
Christian |
Ich hab da mal ne dumme Frage. Aber zur Sicherheit stell ich sie trotzdem. Ist mit "selber machen" gemeint, Pixel um Pixel mit GetPixel und SetPixel zu "mischen"? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 20.03.2003, 21:03 Titel: |
|
|
Korrekt...aber ich würde lieber das Surface locken und direkt im Speicher rumfummeln. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 22.03.2003, 13:16 Titel: |
|
|
Gibts irgendeinen Nachteil, wenn man das Surface nicht lockt? _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 22.03.2003, 14:36 Titel: |
|
|
Um auf das Surface zuzugreifen muß man es sogar locken - da man sonst keinen gemappten Speicherbereich zugewiesen bekommt. Der GHrafikkartenspeicher, in dem sich das Surface befindet wird beim locken in den Ram gemappt.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
|
Nach oben |
|
 |
Hazel JLI MVP


Alter: 40 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 22.03.2003, 15:21 Titel: |
|
|
Ich dachte SetPixel und GetPixel wären GDI-Funktionen... wenn man GDI benutzen will, brauch man net locken. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
 |
|