JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=7f8dfd57bd9d64877dc6738f224f85d9Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

CreateSurfacFromBitmap

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 15:56    Titel: CreateSurfacFromBitmap Antworten mit Zitat

Wie kann ich denn die CreateSurfaceFromBitmap Funktion so "umbauen", das ich nicht auf DirectX zurückgreifen muss?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 16:23    Titel: Antworten mit Zitat

Sicherlich.
Code:

hBM=(HBITMAP)LoadImage(0, "Fatei.bmp", IMAGE_BITMAP, int_breite, int_höhe, LR_LOADFROMFILE);

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 19:30    Titel: Antworten mit Zitat

Ok, es klappt. Jetzt ein weiteres Problem: Ich verwende die Standard Nachrichtenschleife wie sie im Buch steht(mit Render() Funktion), doch es wird nicht gezeichnet. Woran könnte das liegen?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 19:33    Titel: Antworten mit Zitat

Rufst du auch flip() auf?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 19:41    Titel: Antworten mit Zitat

Nein, da ich momentan kein DirectX verwende, aber ich glaub weniger dass das an flip() liegt,oder doch?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Darkevel
Mini JLI'ler



Anmeldedatum: 11.11.2002
Beiträge: 10

Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 20:04    Titel: Antworten mit Zitat

mit der Nachrichtenschleife( on paint oder so) wird etwas nur angezeigt wenn du die grösse deines Fensters veränderst oder ein anderes aktivierst. Mit loadBitmap läd man nur das Bild stellt es aber nicht dar. Dazu muss man es halt noch auf den Bildschirm blitten. Wie das ohne DX8 geht weiß ich aber nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 20:20    Titel: Antworten mit Zitat

Nein, ich glaub du hast mich falsch verstanden, die Render Funktion funzt schon, sie wird nur in der Nachrichtenschleife nicht aufgerufen.
Hier mal der Code:
Code:

while(TRUE)
{
    if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {
          if(WM_QUIT == msg.message)
          {
               break;
          }
          TranslateMessage(&msg);       
          DispatchMessage(&msg);
       
    }
    else
    {
          //Würde funktionieren, wird aber nicht aufgerufen       
          Render();
    }
}


Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 16.11.2002, 21:18    Titel: Antworten mit Zitat

Hast du das mal mit einm Haltepunkt ausprobiert?
Wenn Render nämlich doch aufgerufen wird, ist nichts im Screen "ungültig", also es wird nichts gezeichnet. Verwendest du GetDC oder BeginPaint? Eventuell kannst du auch mit einem InvalidateRect() mehr Erfolg haben.
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 17.11.2002, 16:29    Titel: Antworten mit Zitat

Ich benutze BeginPaint, hab’s mal mit InvalidateRect() probiert, es funktioniert zwar aber das Bild flackert. Da muss ich wohl doch wieder DirectX verwenden, oder kennt jemand eine flip() ähnliche Funktion?

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 17.11.2002, 20:01    Titel: Antworten mit Zitat

OK - Wenn du außerhalb der Nachrichtenbehandlungsroutine (WM_PAINT) Einen Gerätekontext haben willst, solltest du GetDC und nicht BeginPaint benutzen. Dann hast du nebenher auch gleich Zugriff auf das ganze Fenster, nicht nur auf ungültige Bereiche. Das Problem mit dem Flackern läßt sich auch ganz leicht lösen: Benutze einen Hintergrundpuffer, den du zum Schluß, wenn alles gezeichnet ist auf den Screen blittest. Der HGPuffer ist einfach ein Bitmap in Fenstergröße.

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
mortl2
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88
Wohnort: Straubing/Bayern
Medaillen: Keine

BeitragVerfasst am: 18.11.2002, 15:50    Titel: Antworten mit Zitat

No DirectX!
Du wirst dich fragen warum, ich wollte eigentlich nur ein kleines Autorunprogramm schreiben(für 'ne CD), und Christian hat gesagt, dass bei der Buch CD der Grafische Teil nur mit dem GDI gemacht wurde.

Hier zum Nachlesen:
http://www.jliforum.de/board/viewtopic.php?t=291

Mortl
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 18.11.2002, 17:44    Titel: Antworten mit Zitat

So, wie ich das Beschrieben habe, wird kein DX verwendet - der HG-Puffer ist doch einfach nur ein Bitmap. Dadrin kann man ganz genauso zeichnen, wie auf dem Screen und das Bitmap lässt sich dann auf den Screen Blitten - es entsteht kein Flackereffekt, da der Screen nicht gelöscht werden muß.

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
DerJJ
Junior JLI'ler



Anmeldedatum: 24.12.2002
Beiträge: 84

Medaillen: Keine

BeitragVerfasst am: 24.12.2002, 12:38    Titel: Antworten mit Zitat

Also, jetzt nochmal für ganz blöde Very Happy
Also, ich will ein bild als kompletten hintergrund(im Fenster) habn,
aber ich weiß net so ganz wo das hinsoll...
bei mir kommt dann immer sowas wie hBM= ichtdeklarierter bezeichner...
also, kann auch sein das ich gestern bissl zuviel gesoffn hab und da nich so was raller, aber irgendwie funzt des net...
Und des mit dem bild als ressource einfügen kapier ich irgendwie überhaupt net...
will net ma einer sonn Tutoriel für Anfänger schreiben...
Wär echt brontal krass...
also, ich bedank mich schonmal für weitere antworten...
und: Bidde net lachen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DaN00b
JLI'ler



Anmeldedatum: 10.08.2002
Beiträge: 159

Medaillen: Keine

BeitragVerfasst am: 24.12.2002, 20:40    Titel: Antworten mit Zitat

Code:
 handle hBM;


mehr sag ich dazu net
_________________
Carpe Diem - Seize the day - Nütze den Tag!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Grafik und Sound Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum