|
Verfasser |
Nachricht |
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
Bild anzeigen -> C
Hey Leute,
steh wieder mal vor einem Problem...
Hab im SDK die Funktion blitImageToScreen gefunden, und damit sollte es doch (laut Beschreibung usw.) gehen, Bilder auf der PsP anzeigen zu lassen.
Nur hab ich kein blassen Schimmer wie ich das anstellen soll, kann mir vl. jemand ein kleines Beispiel schreiben ?
|
|
27.03.2010 22:59 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: Bild anzeigen -> C
Erst lädst du das Bild
bild = loadPngImage(".....bild.png");
Dann zeigst du es an mit z.b.
blitImageToScreen(0, 0, 480, 272, bild, 0, 0);
Du kannst auch das Bild mit bin2c umwandeln und direkt in deinen Source Code mit rein nehmen.
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
|
|
27.03.2010 23:20 |
|
|
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
wie sieht das dann aus wenn ich es irgendwo auf dem Bilschirm platzieren will ? zb: an x=10; y=10 und Bild ist 10x10
|
|
27.03.2010 23:40 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: Bild anzeigen -> C
wie sieht das dann aus wenn ich es irgendwo auf dem Bilschirm platzieren will ? zb: an x=10; y=10 und Bild ist 10x10
Ich bin mir gerade nicht ganz sicher aber ich glaube so müsste das gehen:
blitImageToScreen(int=x, int=y, 10, 10, bild, 0, 0);
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
|
|
27.03.2010 23:54 |
|
|
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
Welche Header brauch ich da? Hab momentan den graphics.h...
|
|
28.03.2010 00:25 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: Bild anzeigen -> C
Welche Header brauch ich da? Hab momentan den graphics.h...
Puhh da bin ich überfragt, probieren geht über studieren
Auf jeden Fall brauchst du die Funktion initGraphics();
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
Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2010 00:46 von _Kai_.
|
|
28.03.2010 00:38 |
|
|
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
Die pspdisplay.h kanns net sein, da da keine initGraphics Methode bzw blitImageToScreen drinn is; wie gesagt, nur in der graphics.h, aber wenn ich die include wirft er mir nen fehler von wegen nicht vorhanden...
|
|
28.03.2010 00:56 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: Bild anzeigen -> C
blitImageToScreen(int=x, int=y, 10, 10, bild, 0, 0);
Sorry da lag ich etwas falsch die Position sind die letzten 2 Parameter
Parameter 1 und 2: Ab wo da Bild gezeichnet werden soll, in deinem Fall natürlich 0,0
Parameter 3 und 4: Größe wie groß das Bild sein soll, in deinem Fall 10,10
Parameter 5: Das Bild
Paramter 6 und 7: Position X und Y auf dem Bildschirm wohin das Bild gezeichnet werden soll.
Welchen Error bekommst du denn genau ?
Hier hast du mal ein Beispiel:
#include pspkernel.h // Die größer kleiner Zeichen werden hier nicht angezeigt ^^
#include png.h
#include "graphics.h"
Callbacks und der ganze Kram
int main() {
char buffer[300];
Image* bild;
SetupCallbacks();
initGraphics();
sprintf(buffer, "bild.png");
bild = loadImage(buffer);
blitAlphaImageToScreen(0 ,0 ,10 , 10, bild, 0, 0);
flipScreen();
sceKernelSleepThread();
return 0;
}
Funktioniert bei mir einwandfrei
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
Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2010 02:07 von _Kai_.
|
|
28.03.2010 01:29 |
|
|
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
ptest.o: In function `main':
ptest.c.text+0x78): undefined reference to `initGraphics'
ptest.c.text+0xf4): undefined reference to `loadImage'
ptest.c.text+0x118): undefined reference to `blitAlphaImageToScreen'
ptest.c.text+0x120): undefined reference to `flipScreen'
collect2: ld returned 1 exit status
make: *** [picTest.elf] Error 1
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspctrl.h>
#include <pspdisplay.h>
#include <pspsdk.h>
#include <string.h>
#include "graphics.h"
#include <stdlib.h>
#include <png.h>
Callback Kram ;)
int main(int argc, char* argv[])
{
pspDebugScreenInit();
SetupCallbacks();
initGraphics();
char* startpath = argv[0];
int l = strlen(startpath);
int i;
for(i=l; i > -1; i--)
{
if(startpath[i] == '/') { break; }
}
startpath[i+1] = 0;
printf("%s\n", startpath);
Image* s = loadImage(*startpath+"test.png");
if (s == NULL) { printf("Fehler beim Laden von test.png!"); }
else
{
blitAlphaImageToScreen(0,0, 480, 272, s, 0,0);
flipScreen();
}
sceKernelSleepThread();
return 0;
}
Sollte eigendlich funktionieren, das mit dem Pfad geht auf jeden Fall, hab ich schon getestet, und wie man oben sieht, erkennt er die paar Funktionen nicht
vlt. noch Makefile:
PSPSDK = $(shell psp-config --pspsdk-path)
PSPLIBSDIR = $(PSPSDK)/..
TARGET = picTest
OBJS = ptest.o
LIBS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = picTest
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
include $(PSPSDK)/lib/build.mak
//edit: Die graphics.h ist natürlich im selben Verzeichnis wie die .c Datei
Dieser Beitrag wurde zuletzt bearbeitet: 28.03.2010 10:00 von psp_progger.
|
|
28.03.2010 09:54 |
|
|
|
_Kai_
be linux
Beiträge: 2.680
Gruppe: Programmierung
Registriert seit: Nov 2009
Status:
Abwesend
Danke erhalten: 2809
|
RE: Bild anzeigen -> C
vlt. noch Makefile:
PSPSDK = $(shell psp-config --pspsdk-path)
PSPLIBSDIR = $(PSPSDK)/..
TARGET = picTest
OBJS = ptest.o
LIBS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = picTest
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
include $(PSPSDK)/lib/build.mak
//edit: Die graphics.h ist natürlich im selben Verzeichnis wie die .c Datei
PSPSDK = $(shell psp-config --pspsdk-path)
PSPLIBSDIR = $(PSPSDK)/..
TARGET = pictest
OBJS = ptest.o graphics.o framebuffer.o
LIBS = -lpspgu -lpng -lz -lm
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = picTest
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
include $(PSPSDK)/lib/build.mak
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
|
|
28.03.2010 10:09 |
|
Folgende User bedanken sich: |
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
Die Makefile hatte ich schonmal so, nur eben die neuen Errors ^^:
make: *** No rule to make target `graphics.o', needed by `picTest.elf'. Stop.
|
|
28.03.2010 10:58 |
|
|
|
psp_progger
Junior Mitglied
Beiträge: 15
Gruppe: User
Registriert seit: Mar 2010
Status:
Offline
Danke erhalten: 0
|
RE: Bild anzeigen -> C
Ok, hat jetzt geklappt, hab einfach ausm SDK ein Sample genommen, da waren die graphics.h und fra...h auch noch in ner .c Datei vorhanden, und die konnten dann gelinkt werden
Thx für deine Hilfe =) , bekommst natürlich ein großes Danke inklusive Button
|
|
29.03.2010 00:55 |
|
|
|