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

          Line data    Source code
       1           0 : /*
       2             : 
       3             : OOPixMapTextureLoader.m
       4             : 
       5             : 
       6             : Copyright (C) 2010-2013 Jens Ayton
       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 "OOPixMapTextureLoader.h"
      29             : #import "OOTextureScaling.h"
      30             : 
      31             : 
      32             : @implementation OOPixMapTextureLoader
      33             : 
      34             : - (id) initWithPixMap:(OOPixMap)pixMap textureOptions:(uint32_t)options freeWhenDone:(BOOL)freeWhenDone
      35             : {
      36             :         if ((self = [super initWithPath:[NSString stringWithFormat:@"OOPixMap@%p", self] options:options]))
      37             :         {
      38             :                 if (freeWhenDone)  _pixMap = pixMap;
      39             :                 else  _pixMap = OODuplicatePixMap(_pixMap, 0);
      40             :                 
      41             :                 _texOptions = OOApplyTextureOptionDefaults(options);
      42             :                 
      43             :                 if (!OOIsValidPixMap(_pixMap))  DESTROY(self);
      44             :         }
      45             :         
      46             :         return self;
      47             : }
      48             : 
      49             : 
      50           0 : - (void) dealloc
      51             : {
      52             :         OOFreePixMap(&_pixMap);
      53             :         
      54             :         [super dealloc];
      55             : }
      56             : 
      57             : 
      58           0 : - (void) loadTexture
      59             : {
      60             :         // Generate mip maps if needed.
      61             :         if ((_texOptions & kOOTextureMinFilterMask) == kOOTextureMinFilterMipMap)
      62             :         {
      63             :                 size_t size = OOMinimumPixMapBufferSize(_pixMap) * 4 / 3;
      64             :                 BOOL generateMipMaps = OOExpandPixMap(&_pixMap, size);
      65             :                 if (generateMipMaps)
      66             :                 {
      67             :                         OOGenerateMipMaps(_pixMap.pixels,_pixMap.width, _pixMap.height, _pixMap.format);
      68             :                 }
      69             :                 else
      70             :                 {
      71             :                         _texOptions = (_texOptions & ~kOOTextureMinFilterMask) | kOOTextureMinFilterMipMap;
      72             :                 }
      73             :         }
      74             :         
      75             :         // Set up output ivars as per OOTextureLoader contract.
      76             :         _data = _pixMap.pixels;
      77             :         _width = _pixMap.width;
      78             :         _height = _pixMap.height;
      79             :         _rowBytes = _pixMap.rowBytes;
      80             :         _format = _pixMap.format;
      81             :         
      82             :         //      Explicitly do not free pixels - ownership passes to texture.
      83             :         _pixMap.pixels = NULL;
      84             : }
      85             : 
      86             : 
      87           0 : - (uint32_t) textureOptions
      88             : {
      89             :         return _texOptions;
      90             : }
      91             : 
      92             : @end

Generated by: LCOV version 1.14