Initial commit.
This commit is contained in:
82
code/mac/MacGamma.h
Normal file
82
code/mac/MacGamma.h
Normal file
@@ -0,0 +1,82 @@
|
||||
/*
|
||||
File: MacGamma.h
|
||||
|
||||
Contains: Functions to enable Mac OS device gamma adjustments using Windows common 3 channel 256 element 8 bit gamma ramps
|
||||
|
||||
Written by: Geoff Stahl
|
||||
|
||||
Copyright: Copyright © 1999 Apple Computer, Inc., All Rights Reserved
|
||||
|
||||
Change History (most recent first):
|
||||
|
||||
<4> 5/20/99 GGS Updated function names.
|
||||
<3> 5/20/99 GGS Cleaned up and commented
|
||||
<2> 5/20/99 GGS Added system wide get and restore gamma functions to enable
|
||||
restoration of original for all devices. Modified functionality
|
||||
to return pointers vice squirreling away the memory.
|
||||
<1> 5/20/99 GGS Initial Add
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// include control --------------------------------------------------
|
||||
|
||||
#ifndef MacGamma_h
|
||||
#define MacGamma_h
|
||||
|
||||
|
||||
|
||||
// includes ---------------------------------------------------------
|
||||
|
||||
#include <Quickdraw.h>
|
||||
#include <QDOffscreen.h>
|
||||
|
||||
|
||||
|
||||
// structures/classes -----------------------------------------------
|
||||
|
||||
typedef struct // storage for device handle and gamma table
|
||||
{
|
||||
GDHandle hGD; // handle to device
|
||||
GammaTblPtr pDeviceGamma; // pointer to device gamma table
|
||||
} recDeviceGamma;
|
||||
typedef recDeviceGamma * precDeviceGamma;
|
||||
|
||||
typedef struct // storage for system devices and gamma tables
|
||||
{
|
||||
short numDevices; // number of devices
|
||||
precDeviceGamma * devGamma; // array of pointers to device gamma records
|
||||
} recSystemGamma;
|
||||
typedef recSystemGamma * precSystemGamma;
|
||||
|
||||
|
||||
|
||||
// function declarations --------------------------------------------
|
||||
|
||||
// 5/20/99: (GGS) changed functional specification
|
||||
OSErr GetGammaTable(GDHandle gd, GammaTblPtr * ppTableGammaOut); // Returns the device gamma table pointer in ppDeviceTable
|
||||
Ptr CreateEmptyGammaTable (short channels, short entries, short bits); // creates an empty gamma table of a given size, assume no formula data will be used
|
||||
Ptr CopyGammaTable (GammaTblPtr pTableGammaIn); // given a pointer toa device gamma table properly iterates and copies
|
||||
void DisposeGammaTable (Ptr pGamma); // disposes gamma table returned from GetGammaTable, GetDeviceGamma, or CopyGammaTable
|
||||
|
||||
Ptr GetDeviceGamma (GDHandle hGD); // returns pointer to copy of orginal device gamma table in native format
|
||||
void RestoreDeviceGamma (GDHandle hGD, Ptr pGammaTable); // sets device to saved table
|
||||
|
||||
// 5/20/99: (GGS) added system wide gamma get and restore
|
||||
Ptr GetSystemGammas (void); // returns a pointer to a set of all current device gammas in native format
|
||||
// (returns NULL on failure, which means reseting gamma will not be possible)
|
||||
void RestoreSystemGammas (Ptr pSystemGammas); // restores all system devices to saved gamma setting
|
||||
void DisposeSystemGammas (Ptr* ppSystemGammas); // iterates through and deletes stored gamma settings
|
||||
|
||||
Boolean GetDeviceGammaRampGD (GDHandle hGD, Ptr pRamp); // retrieves the gamma ramp from a graphics device (pRamp: 3 arrays of 256 elements each)
|
||||
Boolean GetDeviceGammaRampGW (GWorldPtr pGW, Ptr pRamp); // retrieves the gamma ramp from a graphics device associated with a GWorld pointer (pRamp: 3 arrays of 256 elements each)
|
||||
Boolean GetDeviceGammaRampCGP (CGrafPtr pGraf, Ptr pRamp); // retrieves the gamma ramp from a graphics device associated with a CGraf pointer (pRamp: 3 arrays of 256 elements each)
|
||||
|
||||
|
||||
Boolean SetDeviceGammaRampGD (GDHandle hGD, Ptr pRamp); // sets the gamma ramp for a graphics device (pRamp: 3 arrays of 256 elements each (R,G,B))
|
||||
Boolean SetDeviceGammaRampGW (GWorldPtr pGW, Ptr pRamp); // sets the gamma ramp for a graphics device associated with a GWorld pointer (pRamp: 3 arrays of 256 elements each (R,G,B))
|
||||
Boolean SetDeviceGammaRampCGP (CGrafPtr pGraf, Ptr pRamp); // sets the gamma ramp for a graphics device associated with a CGraf pointer (pRamp: 3 arrays of 256 elements each (R,G,B))
|
||||
|
||||
|
||||
|
||||
#endif // MacGamma_h
|
||||
Reference in New Issue
Block a user