LCOV - code coverage report
Current view: top level - Core - OOGraphicsResetManager.m (source / functions) Hit Total Coverage
Test: coverxygen.info Lines: 0 9 0.0 %
Date: 2025-05-28 07:50:54 Functions: 0 0 -

          Line data    Source code
       1           0 : /*
       2             : 
       3             : OOGraphicsResetManager.m
       4             : 
       5             : 
       6             : Copyright (C) 2007-2013 Jens Ayton and contributors
       7             : 
       8             : Permission is hereby granted, free of charge, to any person obtaining a copy
       9             : of this software and associated documentation files (the "Software"), to deal
      10             : in the Software without restriction, including without limitation the rights
      11             : to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
      12             : copies of the Software, and to permit persons to whom the Software is
      13             : furnished to do so, subject to the following conditions:
      14             : 
      15             : The above copyright notice and this permission notice shall be included in all
      16             : copies or substantial portions of the Software.
      17             : 
      18             : THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
      19             : IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
      20             : FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
      21             : AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
      22             : LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
      23             : OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
      24             : SOFTWARE.
      25             : 
      26             : */
      27             : 
      28             : #import "OOGraphicsResetManager.h"
      29             : #import "OOTexture.h"
      30             : #import "OOOpenGLExtensionManager.h"
      31             : 
      32             : 
      33           0 : static OOGraphicsResetManager *sSingleton = nil;
      34             : 
      35             : 
      36             : @implementation OOGraphicsResetManager
      37             : 
      38           0 : - (void) dealloc
      39             : {
      40             :         if (sSingleton == self)  sSingleton = nil;
      41             :         [clients release];
      42             :         
      43             :         [super dealloc];
      44             : }
      45             : 
      46             : 
      47             : + (OOGraphicsResetManager *) sharedManager
      48             : {
      49             :         if (sSingleton == nil)  sSingleton = [[self alloc] init];
      50             :         return sSingleton;
      51             : }
      52             : 
      53             : 
      54             : - (void) registerClient:(id<OOGraphicsResetClient>)client
      55             : {
      56             :         if (client != nil)
      57             :         {
      58             :                 if (clients == nil)  clients = [[NSMutableSet alloc] init];
      59             :                 [clients addObject:[NSValue valueWithPointer:client]];
      60             :         }
      61             : }
      62             : 
      63             : 
      64             : - (void) unregisterClient:(id<OOGraphicsResetClient>)client
      65             : {
      66             :         [clients removeObject:[NSValue valueWithPointer:client]];
      67             : }
      68             : 
      69             : 
      70             : - (void) resetGraphicsState
      71             : {
      72             :         NSEnumerator                    *clientEnum = nil;
      73             :         id                                              client = nil;
      74             :         
      75             :         OOGL(glFinish());
      76             :         
      77             :         OOLog(@"rendering.reset.start", @"%@", @"Resetting graphics state.");
      78             :         OOLogIndentIf(@"rendering.reset.start");
      79             :         
      80             :         [[OOOpenGLExtensionManager sharedManager] reset];
      81             :         [OOTexture rebindAllTextures];
      82             :         
      83             :         for (clientEnum = [clients objectEnumerator]; (client = [[clientEnum nextObject] pointerValue]); )
      84             :         {
      85             :                 @try
      86             :                 {
      87             :                         [client resetGraphicsState];
      88             :                 }
      89             :                 @catch (NSException *exception)
      90             :                 {
      91             :                         OOLog(kOOLogException, @"***** EXCEPTION -- %@ : %@ -- ignored during graphics reset.", [exception name], [exception reason]);
      92             :                 }
      93             :         }
      94             :         
      95             :         OOLogOutdentIf(@"rendering.reset.start");
      96             :         OOLog(@"rendering.reset.end", @"%@", @"End of graphics state reset.");
      97             : }
      98             : 
      99             : @end
     100             : 
     101             : 
     102             : @implementation OOGraphicsResetManager (Singleton)
     103             : 
     104             : /*      Canonical singleton boilerplate.
     105             :         See Cocoa Fundamentals Guide: Creating a Singleton Instance.
     106             :         See also +sharedManager above.
     107             :         
     108             :         // NOTE: assumes single-threaded first access.
     109             : */
     110             : 
     111           0 : + (id) allocWithZone:(NSZone *)inZone
     112             : {
     113             :         if (sSingleton == nil)
     114             :         {
     115             :                 sSingleton = [super allocWithZone:inZone];
     116             :                 return sSingleton;
     117             :         }
     118             :         return nil;
     119             : }
     120             : 
     121             : 
     122           0 : - (id) copyWithZone:(NSZone *)inZone
     123             : {
     124             :         return self;
     125             : }
     126             : 
     127             : 
     128           0 : - (id) retain
     129             : {
     130             :         return self;
     131             : }
     132             : 
     133             : 
     134           0 : - (NSUInteger) retainCount
     135             : {
     136             :         return UINT_MAX;
     137             : }
     138             : 
     139             : 
     140           0 : - (void) release
     141             : {}
     142             : 
     143             : 
     144           0 : - (id) autorelease
     145             : {
     146             :         return self;
     147             : }
     148             : 
     149             : @end

Generated by: LCOV version 1.14