/usr/include/Gem/Base/GemPixObj.h is in gem-dev 1:0.93.3-13.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | /*-----------------------------------------------------------------
LOG
GEM - Graphics Environment for Multimedia
Base class for pix class gem objects
Copyright (c) 1997-1999 Mark Danks. mark@danks.org
Copyright (c) Günther Geiger. geiger@epy.co.at
Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
-----------------------------------------------------------------*/
#ifndef _INCLUDE__GEM_BASE_GEMPIXOBJ_H_
#define _INCLUDE__GEM_BASE_GEMPIXOBJ_H_
#include "Base/GemBase.h"
#include "Gem/Image.h"
#include "stdlib.h"
#include "string.h"
#include "math.h"
/*-----------------------------------------------------------------
-------------------------------------------------------------------
CLASS
GemPixObj
Base class for pix class gem objects
DESCRIPTION
-----------------------------------------------------------------*/
class GEM_EXTERN GemPixObj : public GemBase
{
public:
//////////
// Constructor
GemPixObj();
protected:
//////////
// Destructor
virtual ~GemPixObj() { }
//////////
// The derived class should override this if it provides
// processing independent of the image.format
// This is called whenever a new image comes through.
// The default is to output an error
virtual void processImage(imageStruct &image);
//////////
// The derived class should override this.
// This is called whenever a new RGB image comes through.
// The default is to call processImage().
virtual void processRGBImage(imageStruct &image);
//////////
// The derived class should override this.
// This is called whenever a new RGBA image comes through.
// The default is to call processImage().
virtual void processRGBAImage(imageStruct &image);
// SIMD-optimized functions: by default the non-optimized function is called
virtual void processRGBAMMX(imageStruct &image);
virtual void processRGBASSE2(imageStruct &image);
virtual void processRGBAAltivec(imageStruct &image);
//////////
// The derived class should override this.
// This is called whenever a new gray8 image comes through.
// The default is to call processImage().
virtual void processGrayImage(imageStruct &image);
// SIMD-optimized functions: by default the non-optimized function is called
virtual void processGrayMMX(imageStruct &image);
virtual void processGraySSE2(imageStruct &image);
virtual void processGrayAltivec(imageStruct &image);
//////////
// The derived class should override this.
// This is called whenever a new YUV422 image comes through.
// The default is to call processImage().
virtual void processYUVImage(imageStruct &image);
// SIMD-optimized functions: by default the non-optimized function is called
virtual void processYUVMMX(imageStruct &image);
virtual void processYUVSSE2(imageStruct &image);
virtual void processYUVAltivec(imageStruct &image);
//////////
// If the derived class needs the image resent.
// This sets the dirty bit on the pixBlock.
void setPixModified();
//////////
// Turn on/off processing
void processOnOff(int on);
//////////
// the pixBlock-cache
pixBlock cachedPixBlock;
pixBlock *orgPixBlock;
//////////
int m_processOnOff;
int m_simd;
//////////
// creation callback
static void real_obj_setupCallback(t_class *classPtr) {
GemBase::real_obj_setupCallback(classPtr);
GemPixObj::obj_setupCallback(classPtr);
}
//////////
// The derived class should NOT override this unless they have some
// very special behavior.
// Do the rendering, which calls processImage or processGrayImage, etc...
// save the image-information
virtual void render(GemState *state);
// turn the pointer back to the old data after rendering
virtual void postrender(GemState *state);
void startRendering(void) {
//post("start rendering");
setPixModified();
}
private:
static inline GemPixObj *GetMyClass(void *data) {return((GemPixObj *)((Obj_header *)data)->data);}
//////////
// static member functions
static void obj_setupCallback(t_class *classPtr);
static void floatMessCallback(void *data, float n);
static void simdMessCallback(void *data, float n);
};
#endif // for header file
|