To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxtOpen lugnet.robotics.nxt in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / 353
352  |  354
Subject: 
Re: What do these macros do?
Newsgroups: 
lugnet.robotics.nxt, lugnet.robotics
Date: 
Tue, 16 Jan 2007 15:28:06 GMT
Viewed: 
11504 times
  
In lugnet.robotics.nxt, Jeff Elliott wrote:
Ok, well, replying to my own message in the best of internet style...

I got impatient and starting prodding.  After a few hard resets, I came up with
the following:

Yes, the Get/SetDisplayNormal() permits you to write directly to screen memory.

Lots of very cool stuff deleted.

Sorry I missed your original message, Jeff.  You can write to both the Normal
and Popup screen memory and toggle back and forth between which one gets
displayed.

This code flips between the two buffers for 10 seconds and then makes sure the
current buffer is set back the Normal:

  gettick flipthen
  add flipthen, flipthen, 10000 // ten seconds
  GetDisplayFlags(d)
LoopIt:
//  SwapDisplayMemory
  xor d, d, DISPLAY_POPUP ; show popup memory
  SetDisplayFlags(d)
  wait 5
  gettick flipnow
  brcmp LT, LoopIt, flipnow, flipthen

  // make sure the current display is the normal display
  GetDisplayFlags(d)
  and d, d, ~DISPLAY_POPUP
  SetDisplayFlags(d)

Unfortunately, there isn't really an easier way to clear the screen other than
to use some sort of system call which draws on the screen.  That's because only
those system calls set the display as "dirty" and if that doesn't happen then
the firmware will not do the right thing when you draw directly to the screen
memory.  There isn't any way to directly set the dirty flag because it is not
exposed via the IOMAP structure.

John Hansen



Message has 2 Replies:
  Re: What do these macros do?
 
(...) Thanks for your response, John. That tip about the dirty flag not being IOMAPpable is very, very useful; I could have wasted a lot of time working that out the hard way. I'm working on a graphical display widget to show a 'radar' (well, sonar) (...) (17 years ago, 21-Jan-07, to lugnet.robotics.nxt, lugnet.robotics)
  Re: What do these macros do?
 
(...) Is it possible to write in the display popup buffer? So that we can do double buffering? I made some quick tests, but it seems the drawing routines always write in the normal display buffer... Julien (17 years ago, 23-Jan-07, to lugnet.robotics.nxt, lugnet.robotics)

Message is in Reply To:
  Re: What do these macros do?
 
Ok, well, replying to my own message in the best of internet style... I got impatient and starting prodding. After a few hard resets, I came up with the following: Yes, the Get/SetDisplayNormal() permits you to write directly to screen memory. This (...) (17 years ago, 11-Jan-07, to lugnet.robotics.nxt, lugnet.robotics)

12 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR