Thema geschlossen  Thema schreiben 
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Verfasser Nachricht
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #1
xPSP  C++ Bild anzeigen

Guten Tag,

heute habe ich mal folgendes Problem.
Ich habe versucht ein einfaches Bild auszugeben. Leider war mein Erfolg eher mäßig.

Das ist das Bild welches ich anzeigen wollte:


Das ist das Ergebnis auf dem Bildschirm:


Hier ist mein Code:

Code:
#include <pspdisplay.h>
#include <pspctrl.h>
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspgu.h>
#include <stdio.h>
#include "graphics.h"

#define printf pspDebugScreenPrintf
#define MAX(X, Y) ((X) > (Y) ? (X) : (Y))

PSP_MODULE_INFO("Image Display Program", 0, 1, 1);

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}
int main() {
    char buffer[200];
    Image* ourImage;
    pspDebugScreenInit();
    SetupCallbacks();
    initGraphics();
    sprintf(buffer, "ourImage.png");
    ourImage = loadImage(buffer);
    if(!ourImage) {
                  printf("laden des Bildes fehlgeschlagen!\n");
    } else {
                  int x = 0;
                  int y = 0;
                  sceDisplayWaitVblankStart();
                  while(x<480) {
                               while(y<272) {
                                            blitAlphaImageToScreen(0 ,0 ,32 , 32, ourImage, x, y);
                                            y += 32;
                               }
                               x += 32;
                               y = 0;
                  }
    flipScreen();
    }
    sceKernelSleepThread();
    return 0;
}


Weiß jemand was hier schief gelaufen ist?

MfG[/php]

Dieser Beitrag wurde zuletzt bearbeitet: 13.05.2010 10:34 von ~ferra~.

13.05.2010 10:33
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Chaosduckman
Halbprofi
***


Beiträge: 170
Gruppe: User
Registriert seit: May 2010

Status: Offline
Danke erhalten: 43
Beitrag: #2
RE: C++ Bild anzeigen

Buffer zu klein?
Sry sonst wüsste ich nichts...

13.05.2010 10:50
Alle Beiträge dieses Benutzers finden
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #3
xPSP  RE: C++ Bild anzeigen

Ich habe den Fehler gefunden, danke Wink

13.05.2010 11:34
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
flofrucht
Banned


Beiträge: 2.470
Gruppe: Banned
Registriert seit: Jul 2009

Status: Abwesend
Danke erhalten: 4709
Beitrag: #4
RE: C++ Bild anzeigen

Könntest du uns bitte den Fehler auch sagen ?
mfg.flo

13.05.2010 12:08
Alle Beiträge dieses Benutzers finden
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #5
xPSP  RE: C++ Bild anzeigen

flofrucht :
Könntest du uns bitte den Fehler auch sagen ?
mfg.flo


Der richtige Code müsste so aussehen:

Code:
#include &lt;pspdisplay.h&gt;
#include &lt;pspctrl.h&gt;
#include &lt;pspkernel.h&gt;
#include &lt;pspdebug.h&gt;
#include &lt;pspgu.h&gt;
#include &lt;stdio.h&gt;
#include "graphics.h"

#define printf pspDebugScreenPrintf
#define MAX(X, Y) ((X) &gt; (Y) ? (X) : (Y))

PSP_MODULE_INFO("Image Display Program", 0, 1, 1);

/* Exit callback */
int exit_callback(int arg1, int arg2, void *common) {
sceKernelExitGame();
return 0;
}

/* Callback thread */
int CallbackThread(SceSize args, void *argp) {
int cbid;

cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);

sceKernelSleepThreadCB();

return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks(void) {
int thid = 0;

thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid &gt;= 0) {
sceKernelStartThread(thid, 0, 0);
}

return thid;
}
int main() {
    char buffer[200];
    Image* ourImage;
    pspDebugScreenInit();
    SetupCallbacks();
    initGraphics();
    sprintf(buffer, "ourImage.png");
    ourImage = loadImage(buffer);
    if(!ourImage) {
                  printf("laden des Bildes fehlgeschlagen!\n");
    } else {
                  int x = 0;
                  int y = 0;
                  sceDisplayWaitVblankStart();
                                            blitAlphaImageToScreen(0, 0, 480, 272, ourImage, x, y);
                  
    flipScreen();
    }
    sceKernelSleepThread();
    return 0;
}


MfG ferra

13.05.2010 12:49
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
flofrucht (May-13-2010)
flofrucht
Banned


Beiträge: 2.470
Gruppe: Banned
Registriert seit: Jul 2009

Status: Abwesend
Danke erhalten: 4709
Beitrag: #6
RE: C++ Bild anzeigen

ahh Vielen Dank,bitte gewöhne dir immer gleich an die Lösung auch zu posten Wink
Kann der Thread geclosed werden ?
mfg.flo

13.05.2010 12:51
Alle Beiträge dieses Benutzers finden
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #7
xPSP  RE: C++ Bild anzeigen

flofrucht :
ahh Vielen Dank,bitte gewöhne dir immer gleich an die Lösung auch zu posten Wink
Kann der Thread geclosed werden ?
mfg.flo


Ja, kann er. danke

MfG ferra

13.05.2010 13:01
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
~ferra~
Experte
****


Beiträge: 583
Gruppe: User
Registriert seit: Apr 2010

Status: Offline
Danke erhalten: 461
Beitrag: #8
xPSP  RE: C++ Bild anzeigen

Guten Morgen,

zum Glück ist hier noch offen.

Eine Frage habe ich noch bezgl der Bilder.
Wie lösche ich den einzelne Bilder aus dem Speicher. Ansonsten würde ja die PSP irgendwann freezen.

MfG ferra

24.05.2010 08:38
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
flofrucht
Banned


Beiträge: 2.470
Gruppe: Banned
Registriert seit: Jul 2009

Status: Abwesend
Danke erhalten: 4709
Beitrag: #9
RE: C++ Bild anzeigen

Hmm ich kenne mich zwar nicht so gut aus aber per MemoryClean warsch.
schau mal auf psp.jim.sh.
sry das ich nicht geclosed habe der Thread ist iwie.untergegangen..
mfg.flo

24.05.2010 17:19
Alle Beiträge dieses Benutzers finden
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #10
RE: C++ Bild anzeigen

Falls noch Interesse besteht XD

Mit clearImage(Color color, Image* image); kann man ein einzelnes Bild löschen Wink

Beispiel:

Code:
#include ...
....

#define black 0xFF000000

...code...

Image* sample;

sample = loadImage("sample.png");

...code...

if(pad.Buttons &amp; PSP_CTRL_CROSS)
{
   clearImage(black, sample);
}

...code...


Hoffe du hast es verstanden, wenn du das gemeint hast Big Grin

PS: Ich weis das der Thread 13.05.2010 ist, aber vielleicht hat ja einer das Problem Wink


West Zeit / Westside

18.04.2011 22:29
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Ceikor
Ex-Developer
****


Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008

Status: Abwesend
Danke erhalten: 701
Beitrag: #11
xPSP  RE: C++ Bild anzeigen

stehn :
Falls noch Interesse besteht XD

Mit clearImage(Color color, Image* image); kann man ein einzelnes Bild löschen Wink


LOL oh man du hast keine ahnung Big Grin

Du überschreibst nur den speicher und gibst ihn nicht frei, da kannst duch auch gleich dem pointer sampler ein neues bild zuweisen dann kannst dir das sparen ist nähmlich völlig sinnlos was du da geschrieben hast -.-

Aber naja pspking halt Big Grin

20.04.2011 12:10
Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
PSP_Joker (Apr-20-2011), HacKmaN (Apr-20-2011)
HacKmaN
Ex-Developer
*


Beiträge: 2.423
Gruppe: User
Registriert seit: Oct 2009

Status: Offline
Danke erhalten: 3319
Beitrag: #12
xPSP  RE: C++ Bild anzeigen

Ceikor :

stehn :
Falls noch Interesse besteht XD

Mit clearImage(Color color, Image* image); kann man ein einzelnes Bild löschen Wink


LOL oh man du hast keine ahnung Big Grin

Du überschreibst nur den speicher und gibst ihn nicht frei, da kannst duch auch gleich dem pointer sampler ein neues bild zuweisen dann kannst dir das sparen ist nähmlich völlig sinnlos was du da geschrieben hast -.-

Aber naja pspking halt Big Grin


Geb dir Recht... Speicherverschwendung pur Wink

20.04.2011 12:13
Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
xXAnonymXx (May-1-2011), PSP_Joker (Apr-20-2011), Ceikor (Apr-20-2011)
dark-awesome
stehn


Beiträge: 3.204
Gruppe: Banned
Registriert seit: Jul 2010

Status: Offline
Danke erhalten: 2192
Beitrag: #13
RE: C++ Bild anzeigen

Ich hab ihn in der Sache halt falsch verstanden. Sorry aber deswegen steht dort ja "wenn du das gemeint hast" Wink


West Zeit / Westside

20.04.2011 12:22
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Ceikor
Ex-Developer
****


Beiträge: 581
Gruppe: User
Registriert seit: Dec 2008

Status: Abwesend
Danke erhalten: 701
Beitrag: #14
xPSP  RE: C++ Bild anzeigen

-ferra- :
Wie lösche ich den einzelne Bilder aus dem Speicher.

Antwort von stehn

stehn :
Mit clearImage(Color color, Image* image); kann man ein einzelnes Bild löschen Wink


Also entweder kannst du nicht lesen oder was eher hinkommt du hast keine ahnung. Den du schreibst ja es löscht Big Grin macht es aber definitif nicht^^

Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2011 12:29 von Ceikor.

20.04.2011 12:27
Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
PSP_Joker (Apr-20-2011), HacKmaN (Apr-20-2011)
~Hook~
C-Coder
*****


Beiträge: 1.706
Gruppe: User
Registriert seit: Dec 2010

Status: Offline
Danke erhalten: 1129
Beitrag: #15
RE: C++ Bild anzeigen

ist doch egal, stehn ist ja kein profi, woher soll er wissen dass man so mehr speicher verbraucht?
Man muss ledeglich dem Zeiger ein neues Bild zuweißen und dass auch definieren...


PHP-Code:
<?php
    
echo 'Signatur';  
?>

20.04.2011 13:14
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
dark-awesome (Apr-20-2011)
Seiten (2): « Erste [1] 2 Nächste > Letzte »
Thema geschlossen  Thema schreiben 

Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
xGames [PGE] Lua, verschiedene texturen aus nur einem Bild verwenden AirMAX 3 3.201 10.10.2014 11:46
Letzter Beitrag: aron123
xPSP Bild in einem bestimmte Bereich zeichnen Blacky94 4 2.326 05.12.2012 00:05
Letzter Beitrag: SIM sk
xPSP Einfaches Bild zeichnen Blacky94 0 1.581 14.05.2012 20:01
Letzter Beitrag: Blacky94
xPSP [C] Variable anzeigen DoubleDD_aka_domis4 1 1.129 14.03.2012 22:11
Letzter Beitrag: Total_Noob
xPSP Lua animation mit 1 bild möglich? secret 11 3.311 08.08.2011 13:13
Letzter Beitrag: secret

Druckversion anzeigen
Thema einem Freund senden
Thema abonnieren | Thema zu den Favoriten hinzufügen




» zum Seitenanfang