POV-Ray : Newsgroups : povray.advanced-users : Macro load optimization : Re: Macro load optimization Server Time
2 Jul 2024 19:44:22 EDT (-0400)
  Re: Macro load optimization  
From: Alain
Date: 8 Sep 2009 19:14:14
Message: <4aa6e546$1@news.povray.org>

> Alain wrote:
>> The source file is only opened and closed when you call it from 
>> another file.
>> Also, if a macro from an include file calls a macro from the main file 
>> or another include from which it was called, then NO file gets to be 
>> open/read/closed.
>>
>> Call a macro from the SAME file = no additional file transaction.
>> Call a macro from a file upper in the calling list = still no 
>> additional file transaction.
>> Example 1: A macro from an include file use a macro from the main file.
>> Example 2: A macro from an include file, included by another include 
>> file, that use a macro from the preceding include (the one that caused 
>> it's inclusion).
>>
>>
>> Alain
> 
> Thanks, didn't know about the hierarchy part for not opening files 
> higher in the chain.
> 
> One further question:
> The main file includes IncludeA and IncludeB. IncludeB has a macro which 
> uses a macro from within IncludeA.
> 
> //-----main.pov
> #include "A.inc"
> #include "B.inc"
> 
> MacroB(param)
> //-----end main.pov
> 
> //-----A.inc
> #macro MacroA(param) //stuff
> #end
> //-----end A.inc
> 
> //-----B.inc
> #macro MacroB(param)
>   //stuff
>   MacroA(param)
> #end
> //-----end B.inc
> 
> What is the file I/O done in this case?
> 
> Chris
Every time that the macro from B.inc is called, B.inc need to be 
accessed. Then, every time that macro uses the macro from A.inc, A.inc 
will get accessed.

So, each time that MacroB() is used, you'll end up accessing BOTH includes.

MUCH beter to copy MacroA() into B.inc or the main file.


Alain


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.