English Amiga Board


Go Back   English Amiga Board > Coders > Coders. System

 
 
Thread Tools
Old 13 February 2016, 13:04   #1
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Question Is a BeginRefresh() / EndRefresh() really required?

Hi,

I have read that for a SMARTREFRESH window the minimum 'refresh'-action to perform is to act on incoming IDCMP_REFRESHWINDOW messages with a call to BeginRefresh(window) followed directly by an EndRefresh(window,TRUE) to discard unneeded cliprects data. But the information I read did not tell me what happens when I turn off these messages.

Is it mandatory to listen to IDCMP_REFRESHWINDOW or does intuition handle the cliprects by itself when I clear the IDCMP_REFRESHWINDOW bit with ModifyIDCMP(window) so that I don't get these refresh messages? It seems worth to ask this for me because if it is mandatory, why is it possible to turn the messages off? Thus the bit doesn't have a true sense.

greets,
AGS

Last edited by AGS; 13 February 2016 at 13:25.
AGS is offline  
Old 14 February 2016, 20:06   #2
Cylon
Registered User
 
Join Date: Oct 2014
Location: Europe
Posts: 471
In my understanding, a smartrefresh window gets its refreshs done smart by the system (Intuition). so, you are doing something completely wrong. unless i am wrong. :
Cylon is offline  
Old 14 February 2016, 22:23   #3
thomas
Registered User
 
thomas's Avatar
 
Join Date: Jan 2002
Location: Germany
Posts: 7,001
Even with smart refresh you have do deal with IDCMP_REFRESHWINDOW.

The only way to avoid it is to set WFLG_NOCAREREFRESH (or WA_NoCareRefresh) during OpenWindow/OpenWindowTags.
thomas is offline  
Old 14 February 2016, 22:36   #4
matthey
Banned
 
Join Date: Jan 2010
Location: Kansas
Posts: 1,284
Quote:
Originally Posted by AGS View Post
I have read that for a SMARTREFRESH window the minimum 'refresh'-action to perform is to act on incoming IDCMP_REFRESHWINDOW messages with a call to BeginRefresh(window) followed directly by an EndRefresh(window,TRUE) to discard unneeded cliprects data. But the information I read did not tell me what happens when I turn off these messages.
With the messages off, you probably have a NOCAREREFRESH window. This can be set at window open also. I believe you need to get/reply the IDCMP messages and at a minimum call BeginRefresh()+EndRefresh() for a SMARTREFRESH window. The BeginRefresh()/EndRefresh() graphics calls call the layers.library equivalents which I believe are needed to automatically update the parts of the SMARTREFRESH window that can be updated. It has been awhile so hopefully you will get some better help from someone else and/or read the RKM Libraries on intuition.library, graphics.library and layers.library.

Quote:
Originally Posted by AGS View Post
Is it mandatory to listen to IDCMP_REFRESHWINDOW or does intuition handle the cliprects by itself when I clear the IDCMP_REFRESHWINDOW bit with ModifyIDCMP(window) so that I don't get these refresh messages? It seems worth to ask this for me because if it is mandatory, why is it possible to turn the messages off? Thus the bit doesn't have a true sense.
I believe the AmigaOS will no longer handle any layers updating with NOCAREREFRESH windows. NOCAREREFRESH windows can be used as backdrops and/or to get intuition window input from the mouse and keyboard.

Quote:
Originally Posted by Cylon View Post
In my understanding, a smartrefresh window gets its refreshs done smart by the system (Intuition). so, you are doing something completely wrong. unless i am wrong. :
SMARTREFRESH windows automatically update the on screen parts but scrolling can require new data updates. A SUPERBITMAP window knows the data off the screen so scrolling can be done automatically but this is slow on the Amiga and sometimes much slower with RTG while needing lots of graphics memory. SIMPLEREFRESH is generally fastest on RTG. SMARTREFRESH is generally fastest with the custom chips.
matthey is offline  
Old 18 February 2016, 18:33   #5
AGS
XoXo/Tasko Developer
 
AGS's Avatar
 
Join Date: Dec 2013
Location: Munich
Age: 48
Posts: 450
Thanks. I am doing it, use the ...Refresh() functions. As far I understand it, in my case, a SMARTREFRESH window, the refresh is supposed to relate only to the areas that become visible when the window is dragged bigger.
AGS is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
DevPac required NovaCoder Coders. General 6 08 September 2009 11:37
Help required with A1500 Hoops support.Hardware 7 05 August 2008 20:46
Required? girv project.SPS (was CAPS) 1 24 December 2006 15:47
Required ICONS... nikvest request.Other 2 10 July 2006 02:23
More help required Galahad/FLT request.Demos 2 16 August 2002 21:08

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 06:19.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.07055 seconds with 13 queries