[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Color System Behavior



The following two programs illustrate a difference between Color
distributed for Genera 8.1 (Color 421.26, tape dated 5/91) and Color
distributed for Genera 8.0.1 (Color 416.47, tape 7/90 + ECO 1 of 8/90).
In 8.0.1 Both programs "work" and produce the same clean window and
line on the screen (Color, HiRes, 24 Bit, 3650).  In 8.1 the first
produces a mess (double images, etc.) and the second "works" as under
8.0.1. 

Note that the difference between them is in placement of the :width
1920 so that the first routine produces a screen that is 1920
wide (it is a multiple of 32, it is less than 2048 as per the
documentation).  In the second case, the passed values are over ridden
by the defaults imposed by the sync-program as implied (though not
clearly stated) by the documentation.  Thus in the first case the
Screen has a width of 1920 and in the second case the width is 1280
(the displayable width of the screen) (verifiable by looking at the
flavor instance variables).

We have a large body of code that depends on the screen width of 1920 
which cannot be changed, so the questions are:
Is there a reason for this (and is there a way around it)?
Is the way around it to revert to Color 416.47 with 8.1?
Is the only way around it to revert to Genera 8.0.1?

(defun kill-the-screen ()
  (let* ((screenb (color:make-color-screen
		    :setup :standard
		    :name "imagcalc screen"
		    :expose-p t ;nil 
		    :save-bits nil
		    :sync-program 'tv:color-sync-1024-lines
		    :width 1920 :height 1024
		    ))
	 (windb (tv:make-window 'tv:window :superior screenb :width 1200 :height 1000
				:expose-p t)))
    (graphics:draw-line 10 1000 1000 10 :thickness 2 :stream windb)
    (values screenb windb)))

(defun the-screen-works ()
  (let* ((screenb (color:make-color-screen
		    :setup :standard
		    :width 1920 :height 1024
		    :name "imagcalc screen"
		    :expose-p t ;nil 
		    :save-bits nil
		    :sync-program 'tv:color-sync-1024-lines
		    ))
	 (windb (tv:make-window 'tv:window :superior screenb :width 1200 :height 1000
				:expose-p t)))
    (graphics:draw-line 10 1000 1000 10 :thickness 2 :stream windb)
    (values screenb windb)))