Thema geschlossen  Thema schreiben 
Verfasser Nachricht
3m!n
Legende
*****


Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 951
Beitrag: #1
xPSP  [TuT] C Bilder anzeigen....

Hallo,
in diesem Tutorial zeige ich euch,wie ihr Bilder in C anzeigt.

Vorraussetzungen

  • PSPSDK
  • Grundwissen in C
  • Ein kluges Köpfchen

Tutorial

Als erstes kommen die Header-Files:

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


Danach definieren wir die Funktionen,um das eintippen leichter zumachen Wink

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


Danach folgt die Module Informationen:

Code:
PSP_MODULE_INFO("Image Tutorial", 0, 1, 1);


Das ganze läuft nach folgendem Schema:
PSP_MODULE_INFO("MODULE_INFO",MODE,VERSION,VERSION

und danach folgen die Callbacks:

Code:
/* 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;
}


Danach folgt der Main-Code:

Code:
int main() {
char buffer[200];
Image* ourImage;
pspDebugScreenInit();
SetupCallbacks();
initGraphics();
ourImage = loadImage("ourImage.png");
if(!ourImage) {
//laden des Bildes ist fehlgeschlagen
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;
}


Der Rest sollte kein Problem sein. Wink
Thanks to PSP-Programming.com
Werde noch viel viel mehr hinzufügen,also keine panik Wink

mfg
emink123

01.04.2011 17:18
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
m33 (Apr-9-2011), Relok (Apr-1-2011), dark-awesome (Apr-1-2011)
dark-awesome
stehn


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

Status: Offline
Danke erhalten: 2192
Beitrag: #2
RE: [TuT] C Bilder anzeigen....

Heute ist dein großer TuT Tag stimmts Big Grin

Aber Thanks weiter so Smile


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 01.04.2011 17:21 von dark-awesome.

01.04.2011 17:21
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
3m!n
Legende
*****


Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 951
Beitrag: #3
RE: [TuT] C Bilder anzeigen....

Folgen noch welche,
als mein Router schrott war,hatte ich keine anderen Hobbys,
und habe TuTs geschrieben Tongue

01.04.2011 17:22
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
Italia-boy (Apr-1-2011)
_Kai_
be linux
**


Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009

Status: Abwesend
Danke erhalten: 2809
Beitrag: #4
xPSP  RE: [TuT] C Bilder anzeigen....

Wirklich sehr ausführlich [ /ironie]

Code:
while(x<480) {
while(y<272) {
blitAlphaImageToScreen(0 ,0 ,32 , 32, ourImage, x, y);
y += 32;
}


Hättest wenigstens beschreiben können was du hier vor hast. Klar du füllst das Display mit einer Textur aus 32x32 Pixel Kacheln. Aber welcher Anfänger kommt da schon drauf ?


PSVita mit 16gb Memorystick und PlayStation+
+ Uncharted + Army Corps of Hell + Assassins Creed
+ NFS Most Wanted + COD Black Ops + Resistance
+ Everybodys Golf + Modnation Racers
Für PSN ID => PN
01.04.2011 18:18
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
dark-awesome (Apr-4-2011)
dark-awesome
stehn


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

Status: Offline
Danke erhalten: 2192
Beitrag: #5
xPSP  RE: [TuT] C Bilder anzeigen....

Ähm wenn ich verbessern darf Big Grin

Du hast den Code nicht ganz voll endet Wink
Wie schon glaub ich PSP-Hilfe angedeutet hat xD

Das ende müsste eigentlich so aussehen:

PHP-Code:
while(x<480)
           {
               while(
y<272
               {         
                   
blitAlphaImageToScreen(,,32 32ourImagexy);
                   
+= 32;
               }
               
+= 32;
               
0;
           }
           
           
flipScreen();
    }
    
    
sceKernelSleepThread();
    return 
0;


Also der ganze Code dann so:

Spoiler: (anzeigen)
Und das makefile ist auch für einen Anfänger nicht so klar Wink
Als Anfänger weis man nicht welche Libs und Objs man brauch ^^
Also so sollte es aussehen:

PHP-Code:
TARGET our-image_datei
OBJS 
main.o graphics.o framebuffer.o

CFLAGS 
= -O2 -G0 -Wall
CXXFLAGS 
= $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS 
= $(CFLAGS)

LIBDIR =
LIBS = -lpspgu -lpng -lz -lm
LDFLAGS 
=

EXTRA_TARGETS EBOOT.PBP
PSP_EBOOT_TITLE 
Image

PSPSDK
=$(shell psp-config --pspsdk-path)
include $(
PSPSDK)/lib/build.mak 


Außer dem brauch man noch die graphics.c und den graphics.h Wink

DownloadDownload

Edit: Die einfachste Methode das Bild anzuzeigen wäre:

PHP-Code:
int main() 
{
    
Imagetestpng;
    
pspDebugScreenInit();
    
SetupCallbacks();
    
initGraphics();
    
testpng loadImage("testpng.png");

    if(!
testpng
   {
         
//laden des Bildes ist fehlgeschlagen
         
printf("laden des Bildes fehlgeschlagen!\n");
    } 
    else 
    {
         
sceDisplayWaitVblankStart();
         
blitAlphaImageToScreen(,,480 272testpng00);
         
flipScreen();
    }

    
sceKernelSleepThread();
    return 
0;


Was ich glaube für Anfänger besser zu verstehen ist Wink

EDIT:

Und noch was du hattest ja noch erklären können das es blitAlphaImageToScreen() und blitImageToScreen() gibt und was der unterschied zwischen beiden ist.

Das blitAlphaImageToScreen() dafür da ist wenn man Bilder mit Transparenz ausgeben will.
Und blitImageToScreen() für Bilder ohne Transparenz ist.

Das finde ich auch nicht ganz unwichtig Wink


West Zeit / Westside

Dieser Beitrag wurde zuletzt bearbeitet: 09.04.2011 17:55 von dark-awesome.

09.04.2011 02:48
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
~Hook~ (May-3-2012), Neutrosider (Apr-9-2011)
PSP_Joker
King
*


Beiträge: 2.537
Gruppe: User
Registriert seit: Apr 2009

Status: Offline
Danke erhalten: 2814
Beitrag: #6
RE: [TuT] C Bilder anzeigen....

Ich hab dir ja vorher schon nicht geglaubt, dass du einen HEN oder überhaupt ansatzweise was coden kannst, aber nach dem "Tutorial" bin ich mir 100% sicher, dass du nichts kannst.



Also das Schönste, was wir tun können, ist tanzen.
17.04.2011 18:12
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
HacKmaN (Apr-17-2011)
3m!n
Legende
*****


Beiträge: 1.652
Gruppe: User
Registriert seit: Aug 2010

Status: Offline
Danke erhalten: 951
Beitrag: #7
RE: [TuT] C Bilder anzeigen....

Zitat:
Thanks to PSP-Programming.com

Hab es frei übersetzt,
erstmal denken,dann sprechen bzw. schreiben !

17.04.2011 18:14
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
PSP_Joker
King
*


Beiträge: 2.537
Gruppe: User
Registriert seit: Apr 2009

Status: Offline
Danke erhalten: 2814
Beitrag: #8
RE: [TuT] C Bilder anzeigen....

Noob :
Hallo,
in diesem Tutorial zeige ich euch,wie ihr Bilder in C anzeigt.


Das ist nicht mal ansatzweise ein Tutorial. Du sagst einfach, was in den Files ist. Und dazu ist da auch 0 von dir, sondern einfach was aus der Datei was rausgesucht und eingefügt. Den Filenamen und den Inhalt kann sich jeder denken. Tolles Tutorial. Und "Thanks to XY" ist total der Hinweis darauf, dass du es quasi nur geklaut hast, Respekt. Du kannst ja nicht mal erklären, was da passiert. Highskiller.



Also das Schönste, was wir tun können, ist tanzen.
17.04.2011 18:38
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
HacKmaN (Apr-17-2011)
_Kai_
be linux
**


Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009

Status: Abwesend
Danke erhalten: 2809
Beitrag: #9
xPSP  RE: [TuT] C Bilder anzeigen....

Da muss ich PSP_Joker schon Recht geben, das ist genau der Code aus dem Example. Außerdem ist die Erklärung ein wenig mager Big Grin

"Danach folgt der Main-Code .... Der Rest sollte kein Problem sein" Big Grin


PSVita mit 16gb Memorystick und PlayStation+
+ Uncharted + Army Corps of Hell + Assassins Creed
+ NFS Most Wanted + COD Black Ops + Resistance
+ Everybodys Golf + Modnation Racers
Für PSN ID => PN
17.04.2011 18:41
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Folgende User bedanken sich:
PSP_Joker (Apr-17-2011), HacKmaN (Apr-17-2011)
Thema geschlossen  Thema schreiben 

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




» zum Seitenanfang