amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Cliping Fehler [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2004-09-10, 19:05 h

Mad_Dog
Posts: 1944
User
Bei einem GimmeZeroZero Fenster wird ja bekanntlich ein extra Layer installiert. Jetzt könnte man meinen, daß dadurch eigentlich verhindert werden sollte, daß Grafikfunktionen über die Fensterdimensionen hinauszeichnen.

Leider habe ich bei meinem Programm "Supershapes" das Problem, daß das Cliping manchmal nicht richtig funktioniert und auf den Workbenchscreen gemalt wird. :( Seltsamerweise funktioniert das Cliping manchmal und manchmal (selten) nicht.

Bei dem Lines-Demo von der Developer CD wird ja auch kein extra Layer installiert und dort gibt's keine Probleme.

Gibt's da irgend einen Bug in der layers.library?

--

http://www.norman-interactive.com

[ - Answer - Quote - Direct link - ]

2004-09-10, 20:38 h

geit
Posts: 332
[Former member]

Welches GFX-System verwendest Du?

Es kann durchaus sein, das die Line-Funktionen der Grafikkarten-Treiber ein Problem haben mit bestimmten Richtungen und Modes haben. Der Amithlon-Treiber hat z.B. dieses Problem und zeichnet die Linien wild in der Gegend rum.

Daher kann es gut sein, dass die Clipping Routine berechnet der Kram ist im Fenster und die Routine malt dann aus dem Fenster raus.

Das hängt natürlich von der Implementierung des Clippings ab. Wenn das jeder Pixel vor dem setzen geprüft wird, gibt es natürlich diese Probleme nicht. Aber IMHO wird bei Linien vorher gecheckt, ob es drin ist oder nicht und dann ggf. die Coordinaten geändert, um die Linie zu kürzen.

Guido Mersmann


[ - Answer - Quote - Direct link - ]

2004-09-10, 21:02 h

Mad_Dog
Posts: 1944
User
Ich verwende CybergraphX. Bei Verwendung von StormMesa tritt dieses Problem allerdings nicht auf.
--

http://www.norman-interactive.com

[ - Answer - Quote - Direct link - ]

2004-09-11, 08:37 h

thomas
Posts: 7718
User
Zitat:
bei meinem Programm "Supershapes"

Hast du da mal einen Link ? Ich kann das noch nicht so ganz glauben. Es gibt zwar manchmal Grafikmüll auf der Workbench, aber meistens ist das System dann schon so kaputt, daß kaum noch was funktioniert und nach einem Reset arbeitet alles wieder so, wie es soll.

Mir ist es jedenfalls noch nie passiert, daß ein Programm außerhalb seines Fensters zeichnen konnte. Weder mit CGX, noch mit P96, weder auf einem Amiga, noch WinUAE, Amithlon, MorphOS oder OS4

Gruß Thomas
--
Email: thomas-rapp@web.de
Home: home.t-online.de/home/thomas-rapp/

[ - Answer - Quote - Direct link - ]

2004-09-11, 12:26 h

Holger
Posts: 8116
User
Zitat:
Original von Mad_Dog:
Bei einem GimmeZeroZero Fenster wird ja bekanntlich ein extra Layer installiert. Jetzt könnte man meinen, daß dadurch eigentlich verhindert werden sollte, daß Grafikfunktionen über die Fensterdimensionen hinauszeichnen.

Das sollte bei jedem Fenster der Fall sein. Der extra-Layer eines GZZ-Fenster verhindert zusätzlich, daß man in den Randbereich des Fensters zeichnen kann. Da man das auch mit einem einfachen ClipRect erreichen kann, sollte man den Overhead eines GZZ-Fensters vermeiden. Für AmigaBasic war's damals nützlich, für eine ernstzunehmende Anwendung nicht.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2004-09-11, 12:28 h

DariusBrewka
Posts: 899
[Banned user]
Vieleicht hast du den falschen RastPort angegeben?, statt MyWindow->RPort Screen->RastPort oder so ähnlich.

Womit zeichnest du?, mit Draw()/Line(), SetPixel().

Andererseits habe ich mit WinUAE so einige Probleme, dass einiges (aber nur extrem selten dorthin gezeichnet wird, wo es nicht hingehört, was aber bei vielen Applikationen passiert und somit nicht auf meine Kappe geht). Das ist aber nur bei BlockOperationen der Fall.

gruss

[ - Answer - Quote - Direct link - ]

2004-09-11, 16:50 h

Mad_Dog
Posts: 1944
User
Das Programm gibt's auf meiner Homepage:

http://w3studi.informatik.uni-stuttgart.de/~walternn/Supershapes.lha


Gezeichnet wird mittels move() und draw(). Keine Sorge: Ich benutze schon den richtigen RastPort.

Wie gesagt: Das Problem tritt nur manchmal auf...
--

http://www.norman-interactive.com

[ - Answer - Quote - Direct link - ]

2004-09-13, 15:14 h

Holger
Posts: 8116
User
Kann man auch den Source-Code sehen?
Dann kann man leichter nach der Ursache suchen...

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Cliping Fehler [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.