amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > clip 32 bit coordinates to 16 bit [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

29.12.2011, 11:40 Uhr

AGSzabo
Posts: 1663
Nutzer
Hellau,

die Aufgabe ließt sich einfach: meine zu zeichnenden Objekte haben ihre left top width and height in 32 bit, die graphics.library kann aber bei ihren Zeichenfunktionen nur mit 16 bit arbeiten. Es muss eine Konvertierung her. Für left, bzw top funktioniert dieser code (left in d0):


code:
.clip		cmp.l	#$7fff,d0
		blt	.low
		move.w	#$7fff,d0
		bra	.ok
.low		cmp.l	#$ffff8000,d0
		bge	.ok
		move.w	#$8000,d0
.ok


Aber für width und height muss es imo anders laute, denn die müssen am Rand beschnitten werden. Mein erster Ansatz ist so (left in d0, width in d2):

code:
.width		add.l	d0,d2
		subq.l	#1,d2

		cmp.l	#$7fff,d2
		blt	.low
		move.w	#$7fff,d2
		bra	.ok
.low		cmp.l	#$ffff8000,d2
		bge	.ok
		move.w	#$8000,d2
.ok
		sub.w	d0,d2
		addq.w	#1,d2


Funktioniert das in jedem Fall? Oder muss ich, wenn d2 (width) zum schluss negativ ist, es auf $7fff setzen? Oder wenn es zum schluss $8000 ist, wieder eins abziehen? Oder ganz was anderes?

danke

[ Dieser Beitrag wurde von AGSzabo am 29.12.2011 um 11:50 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > clip 32 bit coordinates to 16 bit [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.