15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    GREMEDY_frame_terminator
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_GREMEDY_frame_terminator
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciContributors
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Yaki Tebeka
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciContact
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Yaki Tebeka, Graphic Remedy (yaki 'at' gremedy.com)
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciStatus
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    Implemented by gDEBugger (Version 3.2 or later)
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciVersion
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    Last Modified Date: September 20, 2007
245bd8deadSopenharmony_ci    Author Revision: 1.0
255bd8deadSopenharmony_ci
265bd8deadSopenharmony_ciNumber
275bd8deadSopenharmony_ci
285bd8deadSopenharmony_ci    345
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciDependencies
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    OpenGL 1.0 is required.
335bd8deadSopenharmony_ci    
345bd8deadSopenharmony_ci    The extension is written against the OpenGL 1.5 Specification.
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ciOverview
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    This extension defines a mechanism that enables marking the end 
395bd8deadSopenharmony_ci    of render frames within the OpenGL stream.
405bd8deadSopenharmony_ci    
415bd8deadSopenharmony_ci    When debugging or profiling an OpenGL application, the debuggers
425bd8deadSopenharmony_ci    and profilers needs to know when a render frame is ended. This
435bd8deadSopenharmony_ci    is important for frame per second measurements, statistical analysis, 
445bd8deadSopenharmony_ci    marking and clearing stream loggers logs, performance counters 
455bd8deadSopenharmony_ci    sampling and more.
465bd8deadSopenharmony_ci    
475bd8deadSopenharmony_ci    When an application uses off screen buffers, the debugger / profiler
485bd8deadSopenharmony_ci    cannot be guaranteed that the application will call a certain function at
495bd8deadSopenharmony_ci    the end of each off-screen frame (e.g: SwapBuffers / glClear / etc). 
505bd8deadSopenharmony_ci    This extension enables the application to notify the debugger / profiler 
515bd8deadSopenharmony_ci    whenever a render frame is ended.
525bd8deadSopenharmony_ci    
535bd8deadSopenharmony_ci    This extension is mainly useful for debuggers and profilers. It is not 
545bd8deadSopenharmony_ci    expected that standard drivers would implement this extension. The main
555bd8deadSopenharmony_ci    point of having this extension is to allow applications to have a clean 
565bd8deadSopenharmony_ci    way of accessing this functionality only when they are run under the 
575bd8deadSopenharmony_ci    control of a debugger / profiler, without having to recompile or change 
585bd8deadSopenharmony_ci    the application source code.
595bd8deadSopenharmony_ci    
605bd8deadSopenharmony_ciIP Status
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    No known IP claims
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ciIssues
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci   (1) Should it be legal to call this inside Begin/End?
675bd8deadSopenharmony_ci    
685bd8deadSopenharmony_ci    RESOLVED: no.
695bd8deadSopenharmony_ci    
705bd8deadSopenharmony_ci    A render frame cannot end within a Begin/End block.
715bd8deadSopenharmony_ci        
725bd8deadSopenharmony_ciNew Procedures and Functions
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci    void FrameTerminatorGREMEDY(void);
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ciNew Types
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    None
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ciNew Tokens
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    None
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ciAdditions to Chapter 2 of the OpenGL 1.5 Specification
855bd8deadSopenharmony_ci(OpenGL Operation)
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci    None
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ciAdditions to Chapter 3 of the OpenGL 1.5 Specification (Rasterization)
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    None
925bd8deadSopenharmony_ci
935bd8deadSopenharmony_ciAdditions to Chapter 4 of the OpenGL 1.5 Specification (Per-Fragment
945bd8deadSopenharmony_ciOperations and the Frame Buffer)
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci    None
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ciAdditions to Chapter 5 of the OpenGL 1.5 Specification
995bd8deadSopenharmony_ci(Special Functions)
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci    Add section 5.8 on page 212
1025bd8deadSopenharmony_ci    
1035bd8deadSopenharmony_ci    5.8 Frame Terminator
1045bd8deadSopenharmony_ci    
1055bd8deadSopenharmony_ci    The command
1065bd8deadSopenharmony_ci    
1075bd8deadSopenharmony_ci        void FrameTerminatorGREMEDY(void);
1085bd8deadSopenharmony_ci    
1095bd8deadSopenharmony_ci    can be used to insert a frame terminator marker into the command stream.
1105bd8deadSopenharmony_ci    This frame terminator marker can be used by appropriate debugging tools / 
1115bd8deadSopenharmony_ci    profiling tools / profiling drivers for frame per second measurements, 
1125bd8deadSopenharmony_ci    statistical analysis, marking and clearing stream loggers logs, performance 
1135bd8deadSopenharmony_ci    counters sampling and more. This command has no influence on the rendered 
1145bd8deadSopenharmony_ci    image or the OpenGL state.
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci
1175bd8deadSopenharmony_ciAdditions to Chapter 6 of the OpenGL 1.5 Specification (State and State
1185bd8deadSopenharmony_ciRequests)
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ci    None
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ciAdditions to Appendix A of the OpenGL 1.5 Specification (Invariance)
1235bd8deadSopenharmony_ci
1245bd8deadSopenharmony_ci    None
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ciAdditions to the AGL/EGL/GLX/WGL Specifications
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    None
1295bd8deadSopenharmony_ci
1305bd8deadSopenharmony_ciGLX Protocol
1315bd8deadSopenharmony_ci
1325bd8deadSopenharmony_ci    None
1335bd8deadSopenharmony_ci
1345bd8deadSopenharmony_ciDependencies on EXT_extension_name
1355bd8deadSopenharmony_ci
1365bd8deadSopenharmony_ci    None
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ciErrors
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci    The error INVALID_OPERATION is generated if any of the commands
1415bd8deadSopenharmony_ci    defined in this extension is executed between the execution of Begin
1425bd8deadSopenharmony_ci    and the corresponding execution of End.
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ciNew State
1455bd8deadSopenharmony_ci
1465bd8deadSopenharmony_ci    None
1475bd8deadSopenharmony_ci
1485bd8deadSopenharmony_ciNew Implementation Dependent State
1495bd8deadSopenharmony_ci
1505bd8deadSopenharmony_ci    None
1515bd8deadSopenharmony_ci
1525bd8deadSopenharmony_ciSample Code
1535bd8deadSopenharmony_ci
1545bd8deadSopenharmony_ci    None
1555bd8deadSopenharmony_ci
1565bd8deadSopenharmony_ciRevision History
1575bd8deadSopenharmony_ci
1585bd8deadSopenharmony_ci    1.0, 09/20/07 yt:   - Initial revision
159