Kann jemand mit folgender Swat-Meldung etwas anfangen?
Warnung(vidmem:Clr4Entry): VIDMEM_CLR4_CANNOT_HANDLE_NON_INTEGRAL_WIDTH
Wilfried
Kann jemand mit folgender Swat-Meldung etwas anfangen?
Warnung(vidmem:Clr4Entry): VIDMEM_CLR4_CANNOT_HANDLE_NON_INTEGRAL_WIDTH
Wilfried
Noch nie gesehen. Ich würde spontan darauf tippen:
Bitmap-Größe ist keine ganze Zahl
Oder Position ist keine ganze Zahl
Oder die gewählte Farbe ist keine ganze Zahl (Farbe 13,0001 aus der 16-Farbpalette oder so)
Hi,
CLR4 deutet auf 16 Farben. Vielleicht mault er, wenn er einen größeren Farbindex bekommt?
Gruß
Rainer
Die Bitmap wird vom Iconeditor mit BMF_4Bit geliefert und sie wird in der Applikation richtig dargestellt.
Das Huge-Array hat exakt die richtige Größe.
Die verwendeten Farben sind aus den 16 Farben im Iconeditor gewählt.
NON_INTEGRAL_WIDTH = nicht ganzzahlige Breite ? Könnten die gepackten Bitmapdaten die Ursache sein?
Wilfried
Die Warnung tritt auch bei ungepackten Bitmapdaten auf.
Schau mal, was ich in den Sourcen gefunden habe. Vielleicht hilft es ja.
;----------------------------------------------------------------------------
; Warnings constants
;----------------------------------------------------------------------------
VIDMEM_CLR4_CANNOT_HANDLE_NON_INTEGRAL_WIDTH enum Warnings
; The clr4 module cannot currently handle non-integral (divisible by 4)
; widths, due to a problem in the character drawing code. This will
; eventually be fixed, but for now when using this module, if you plan
; to draw text to the bitmap, make sure the bitmap width is divisible by
; 4 or else you may encounter memory corruption problems if a string is
; drawn off the right side of the bitmap.
;
Gruß
Rainer
Von 99 x 99 auf 100 x 100 geändert: Die Warnung bleibt leider bestehen:-(
Trotzdem Danke Rainer!
Mist. Versuch doch mal 104 oder 96 Pixel. Wegen Teilbarkeit durch 8.
Ansonsten ist es eine Warnung. Wenn du nicht vor hast, Text über den rechten Rand zu schreiben, kann eigentlich nichts passieren (hoffentlich).
Gruß
Rainer
Das Problem hat sich geklärt: Ich hatte eine Unstimmigkeit zwischen den Bitmapgrößen bei GrCreateBitmap und der tatsächlichen Größe.
Danke nochmal an Rainer und Jörg!
Gruß
Wilfried
Gerne doch. Kannst du das Problem genauer beschreiben (meinetwegen per PM), man kann ja auch aus den Fehlern anderen lernen. Ich kann mir gerade gar nicht vorstellen, was das Problem war.
Gruß
Rainer
Klar!
Ich hab's noch mal genauer untersucht:
UHR_BREITE 105
UHR_HOEHE 105
Das waren meine Konstanten, die sowohl für die View-Document-Größe als auch für GrCreateBitmap in MSG_GEN_PROCESS_OPEN_APPLICATION benutzt werden. Ich weiß allerdings nicht mehr, warum ich diese Werte genommen habe. Meine Bitmap (vom Iconeditor erzeugt war 99 x 99 groß (damit ich einen eindeutigen Mittelpunkt hatte). Diese Größe hab ich auf 100 x 100 vergrößert, ohne dass die Warnung verschwand. Danach habe ich die Werte für die Konstanten verändert und herausgefunden, dass die Warnung verschwindet, sobald UHR_BREITE durch 4 teilbar ist. Der Wert für UHR_HOEHE ist offenbar nicht relevant.
Entscheidend ist, dass die Breite in GrCreateBitmap durch 4 teilbar ist.
Die Bitmap ist übrigens vom Typ BMF_4BIT.
Gruß
Wilfried
P.S.: Damit ist meine Uhr fertig:-)
Ich hoffe, sie ist besser als die Geos-Kuckucksuhr von CK, die nur zweimal am Tag die richtige Uhrzeit anzeigt.
Es ist halt eine Uhr die die aktuelle Zeit anzeigt.
Schön wäre es noch, wenn die Uhr stets im Vordergrund bliebe. Ich weiß aber nicht, ob und wie das möglich ist.
versuch mal im Primary
ATTR_GEN_WINDOW_CUSTOM_LAYER_PRIORITY = {LAYER_PRIO_ON_TOP};
ATTR_GEN_WINDOW_CUSTOM_LAYER_ID = {0};
Details dazu stehen im SDK_C Beispiel GENINTER
Rainer
Warum nimmst du 4 Bit Bitmaps? Bei 8 Bit hast du doch wesentlich mehr Möglichkeiten. Ob die Performance von 4 Bit Bitmaps besser ist, weiß ich nicht, habe daran aber Zweifel.
Gruß
Rainer
Das ist ja genau das, wonach ich gesucht habe:-).
Ich kann mit Farben leider nicht allzuviel anfangen, daher reichen mir die 16 Farben:-(.
Hallo Wilfried,
Ich denke jetzt mal an Version 7.x mit einem Nutzer-definierten Ziffernblatt (neudeutsch Skin). Da bist du mit 16 Farben echt eingeschränkt. Für dich ist es doch einfach nur einen andere Konstante, die du benutzt. Die Performance habe ich nicht getestet, aber wenn du jedes Byte erst in 2 Pixel zerpflücken musst, kann das eigentlich nicht schneller sein. Und bei 100x100 Pixel ist der Speicherplatz die letzte Sorge, die ich hätte. Das 4-Pixel-Problem bist du dann wahrscheinlich auch los. OK, genug agitiert
Gruß
Rainer
Hast Du es denn hingekriegt, dass die Uhr flackerfrei ist?! Hast Du vor, das Ding zu veröffentlichen?
Rainer: Das Ziffernblatt meiner Uhr hab ich mit dem Iconeditor erzeugt. Und der will (bei mir) partout keinen Quellcode für 256 Farben schreiben. An eine Weiterentwicklung dieses Projekts hab ich bisher gar nicht gedacht.
Konstantin: Die Uhr läuft (bei mir unter Win XP) tatsächlich flackerfrei. Ich kann sie auf der nächsten Zoom-Konferenz mal zeigen.
Gruß
Wilfried
Es ist halt eine Uhr die die aktuelle Zeit anzeigt.
Schön wäre es noch, wenn die Uhr stets im Vordergrund bliebe. Ich weiß aber nicht, ob und wie das möglich ist.
Wenn man sie aus dem Ordner "Hilfsprogramme" heraus startet, sollte sie immer im Vordergrund bleiben.