Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GEOS-InfoBase-Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 15. Dezember 2020, 11:52

Swat-Warnung

Kann jemand mit folgender Swat-Meldung etwas anfangen?

Warnung(vidmem:Clr4Entry): VIDMEM_CLR4_CANNOT_HANDLE_NON_INTEGRAL_WIDTH



Wilfried

2

Dienstag, 15. Dezember 2020, 13:56

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)
There are two rules in life:
1. Never give out all of the information.

3

Dienstag, 15. Dezember 2020, 17:36

Hi,
CLR4 deutet auf 16 Farben. Vielleicht mault er, wenn er einen größeren Farbindex bekommt?
Gruß
Rainer
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

4

Mittwoch, 16. Dezember 2020, 10:57

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

5

Mittwoch, 16. Dezember 2020, 11:12

Die Warnung tritt auch bei ungepackten Bitmapdaten auf.

6

Mittwoch, 16. Dezember 2020, 12:41

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

7

Mittwoch, 16. Dezember 2020, 16:57

Von 99 x 99 auf 100 x 100 geändert: Die Warnung bleibt leider bestehen:-(

Trotzdem Danke Rainer!

8

Mittwoch, 16. Dezember 2020, 18:11

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

9

Samstag, 19. Dezember 2020, 13:03

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

10

Samstag, 19. Dezember 2020, 14:03

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

11

Samstag, 19. Dezember 2020, 17:17

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:-)

12

Samstag, 19. Dezember 2020, 21:24

Ich hoffe, sie ist besser als die Geos-Kuckucksuhr von CK, die nur zweimal am Tag die richtige Uhrzeit anzeigt. ;)
There are two rules in life:
1. Never give out all of the information.

13

Sonntag, 20. Dezember 2020, 10:40

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.

14

Sonntag, 20. Dezember 2020, 13:26

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

15

Sonntag, 20. Dezember 2020, 13:39

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

16

Sonntag, 20. Dezember 2020, 18:19

Das ist ja genau das, wonach ich gesucht habe:-).

Ich kann mit Farben leider nicht allzuviel anfangen, daher reichen mir die 16 Farben:-(.

17

Sonntag, 20. Dezember 2020, 19:22

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
Es gibt 10 Arten von Menschen - die einen wissen was binär ist, die anderen nicht.

18

Sonntag, 20. Dezember 2020, 21:37

Hast Du es denn hingekriegt, dass die Uhr flackerfrei ist?! Hast Du vor, das Ding zu veröffentlichen?
Bye,
MeyerK

19

Montag, 21. Dezember 2020, 11:09

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

20

Montag, 21. Dezember 2020, 12:10

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.
Gruß Achim



PC/GEOS unter Linux in der DOSEMU = UNSCHLAGBAR!

Thema bewerten