Brauche ein Handle

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
sechsrad
Rüpel
Beiträge: 112
Registriert: 01.02.2008 13:31

Brauche ein Handle

Beitrag von sechsrad »

Hallo , hBmp soll ein Handle werden von ImgID.
Dieses UseImage gib es ja nicht mehr,.
Wie wird jetzt ab Pure 4 das Handle erstellt?
mfg

ImgID = CreateImage ( #PB_Any, 720, 576 ) Bitmap
hBmp = UseImage(ImgID)
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

ImgID = CreateImage(#PB_Any, 720, 576 )
hBmp = ImageID(ImgID)
Windows 10 Pro, 64-Bit / Outtakes | Derek
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

meines Wissens:
mit PB_Any erstellte Images geben das Handle zurück.
ImageID() gibt für PB-IDs das Handle zurück.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Andersherum
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

hbmTest = CreateImage(#PB_Any,300,200)

GetObject_(ImageID(hbmTest),SizeOf(BITMAP),bmp.BITMAP)

Debug bmp\bmWidth
Debug bmp\bmHeight

hbmTest = CreateImage(0,300,200)

GetObject_(hbmTest,SizeOf(BITMAP),bmp.BITMAP)

Debug bmp\bmWidth
Debug bmp\bmHeight
Windows 10 Pro, 64-Bit / Outtakes | Derek
sechsrad
Rüpel
Beiträge: 112
Registriert: 01.02.2008 13:31

Beitrag von sechsrad »

Was sin denn "PB-IDs"?

mfg
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

die "Nummern" unter denen du Elemente erstellst.
z.b. CreateImage( 0, 300, 200 ) da ist die 0 die PB-ID oder PB_Nummer.
diese ist nicht das Handle, sondern das bekommst du mit ImageID(Nr).


@Edel / @fluid:

hm....

Code: Alles auswählen

hbmTest = CreateImage(#PB_Any,300,200)

GetObject_(ImageID(hbmTest),SizeOf(BITMAP),bmp.BITMAP)
 Debug bmp\bmWidth
 Debug bmp\bmHeight
GetObject_(hbmTest,SizeOf(BITMAP),bmp.BITMAP)
 Debug bmp\bmWidth
 Debug bmp\bmHeight
afaik: für PB_Any ist die PB_Nr. das Handle.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hier nochmal pseudo für den Kaeru:

Code: Alles auswählen

ID = Create...(#PB_Any, ...
handle = ImageID(ID); FileID(ID) usw.

handle = Create...(ID, ...
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Kaeru Gaman hat geschrieben:die "Nummern" unter denen du Elemente erstellst.
z.b. CreateImage( 0, 300, 200 ) da ist die 0 die PB-ID oder PB_Nummer.
diese ist nicht das Handle, sondern das bekommst du mit ImageID(Nr).


@Edel / @fluid:

hm....

Code: Alles auswählen

hbmTest = CreateImage(#PB_Any,300,200)

GetObject_(ImageID(hbmTest),SizeOf(BITMAP),bmp.BITMAP)
 Debug bmp\bmWidth
 Debug bmp\bmHeight
GetObject_(hbmTest,SizeOf(BITMAP),bmp.BITMAP)
 Debug bmp\bmWidth
 Debug bmp\bmHeight
afaik: für PB_Any ist die PB_Nr. das Handle.
Du solltest da aber erst die Struktur leeren
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

eine constante ID kann maximal 10000 sein, und stellt den Index eines internen Handle-Tables dar.
eine dynamische (mit PB_Any erzeugte) ID hingegen ist nicht dieser Index.

die Verbindung

Code: Alles auswählen

ID = Create...(#PB_Any, ...
handle = Create...(ID, ...
funktioniert nicht:
die zurückgegebene ID wird nicht als ID akzeptiert, weil sie zu hoch ist.

also MUSS die zurückgegebene ID in irgendeiner direkten Verbindung zum Handle stehen,
weil es NICHT der index eines Handle-Tables ist, von dem dieses Handle ausgelesen werden könnte.

... soviel weiß ich mit ziemlicher Sicherheit.
wie PB allerdings unter der Haube wirklich läuft, darüber hüllt sich ja das Team teilweise in Schweigen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten