Image Anzahl Limit

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Image Anzahl Limit

Beitrag von KeyKon »

Kurze Frage: Gibt es denn ein Limit wie viele Images gleichzeitig initialisiert sein können?
Bei mir scheitert das anlegen neuer Images immer kurz vor 10.000.

Wenn ja, woher kommt das Limit (PureBasic/Windows) und gibt es einen einfachen Workaround?
(Mein bisheriger Ansatz ist die Images als BMP in den Speicher zu sichern und von dort bei Bedarf wieder zu laden <.< )

Es geht übrigens um kleine Images (32x32), am Speicher hakts also nicht.

Ich nutze 5.44x64 unter Win10x64.

LG KeyKon
(\/) (°,,,°) (\/)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Image Anzahl Limit

Beitrag von RSBasic »

Meinst du diese Warnungsmeldung?
[ERROR] #Image Objektnummer ist sehr hoch (über 100000), sind Sie dazu sicher?
Benutzt du statische IDs für deine Grafiken oder #PB-Any?
Bei statischen IDs bekommst du automatisch eine Debugger-Warnung, die das Benutzen größerer Zahlen verhindert. Umgehen kannst du mit DisableDebugger oder du benutzt stattdessen #PB-Any.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Image Anzahl Limit

Beitrag von #NULL »

hier gibt's einen von mehreren threads im englischen form dazu: http://www.purebasic.fr/english/viewtop ... 13&t=67407
im grunde scheinbar einfach eine windows-seitige limitierung der anzahl der handles.

hier zum testen:

Code: Alles auswählen

NewList img()
For i=0 To 10000
  AddElement(img())
  img() = CreateImage(#PB_Any, 320, 32)
  If Not img()
    Debug "" + i + " nope"
  EndIf
  Delay(1)
Next


win=OpenWindow(#PB_Any, 50,100, 800, 600, "") :: AddKeyboardShortcut(win, #PB_Shortcut_Escape, 10)
Repeat
  e = WindowEvent()
Until e = #PB_Event_CloseWindow Or e = #PB_Event_Menu
Zuletzt geändert von #NULL am 01.02.2017 16:48, insgesamt 2-mal geändert.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Image Anzahl Limit

Beitrag von KeyKon »

Ne nutze ausschließlich #PB_Any, man kann das ganze auf ein kleines Beispiel reduzieren:

Code: Alles auswählen

EnableExplicit
Define i.i
Dim Images.i(20000)

For i = 0 To 20000
  Images(i) = CreateImage(#PB_Any,32,32)
  If Images(i) = 0
    Debug "Error"
    Break
  Else
    Debug i
  EndIf
Next
EDIT: k THX für den Link.
(\/) (°,,,°) (\/)
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

Re: Image Anzahl Limit

Beitrag von ts-soft »

RSBasic hat geschrieben:Meinst du diese Warnungsmeldung?
[ERROR] #Image Objektnummer ist sehr hoch (über 100000), sind Sie dazu sicher?
Über hunderttausend, finde ich auch ein bissel viel :lol:
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
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: Image Anzahl Limit

Beitrag von Bisonte »

Du willst doch nicht allen ernstes behaupten dass alle 10000 Bilder gleichzeitig zu sehen sind ?

Dann solltest du eventuell deine Programmierung überdenken.... :mrgreen:
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Image Anzahl Limit

Beitrag von RSBasic »

Bisonte hat geschrieben:Du willst doch nicht allen ernstes behaupten dass alle 10000 Bilder gleichzeitig zu sehen sind ?

Dann solltest du eventuell deine Programmierung überdenken.... :mrgreen:
Vielleicht programmiert er ein großes Spiel. Da ist schon möglich, dass man viele verschiedene Sprites hat.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Image Anzahl Limit

Beitrag von #NULL »

AddImageFrame() der beta 5.60b1 bringt übrigens auch nichts, das gesamtlimit bleibt bestehen.
wenn du keine sprites verwenden willst kannst du eventuell trotzdem 'spritesheets' in images halten und mittels ClipOutput() und entsprechendem offset ein ClipImage simulieren.
my pb stuff..
Bild..jedenfalls war das mal so.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Image Anzahl Limit

Beitrag von ccode_new »

Hallo,

wozu um alles in der Welt braucht man >=10000 Bilder gleichzeitig im Speicher?
Du willst doch nicht allen ernstes behaupten dass alle 10000 Bilder gleichzeitig zu sehen sind ?

Dann solltest du eventuell deine Programmierung überdenken....
Dieser Aussage kann ich nur zustimmen.

Du kannst ja auch mal versuchen die Bilder nur zu zeichnen und nicht als Gadget einzufügen.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
KeyKon
Beiträge: 1412
Registriert: 10.09.2004 20:51
Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit)
Wohnort: Ansbach
Kontaktdaten:

Re: Image Anzahl Limit

Beitrag von KeyKon »

Ich hab nirgendwo geschrieben dass ich diese gleichzeitig anzeigen muss oder will. Noch hab ich irgendwo jemals was von Gadgets geschrieben, es gibt genau ein Gadget und zwar ein Canvas^^

In den meisten Fällen fallen auch nicht so viele Bilder (Animationsschritte/Thumbnails) an. Nur wenn man von diesem Limit eben nichts weiß ist man doch verdutzt wenn bei längeren Härtetests unwillkürlich Fehler auftreten. Hat einige Zeit gedauert bis ich gemerkt hab dass das immer bei ca 10.000 der Fall ist.

In Zeiten von Rechnern mit 8GB+ RAM hatte ich mir halt gedacht ich spar mir bei jedem Anzeigen das neu manipulieren/laden der Bilder und lasse sie einfach im Speicher^^
Ist dann halt leider doch nicht so ohne extra management möglich.

LG KeyKon
(\/) (°,,,°) (\/)
Antworten