// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_awt_image_ColorModel__
#define __java_awt_image_ColorModel__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace image
      {
        class SampleModel;
        class Raster;
        class WritableRaster;
        class ColorModel;
      }
      namespace color
      {
        class ColorSpace;
      }
    }
  }
}

class java::awt::image::ColorModel : public ::java::lang::Object
{
public: // actually package-private
  static jintArray nArray (jint, jint);
  static jbyteArray nArray (jbyte, jint);
public:
  ColorModel (jint);
public:  // actually protected
  ColorModel (jint, jintArray, ::java::awt::color::ColorSpace *, jboolean, jboolean, jint, jint);
public:
  virtual void finalize () { }
  static ::java::awt::image::ColorModel *getRGBdefault ();
  virtual jboolean hasAlpha () { return hasAlpha__; }
  virtual jboolean isAlphaPremultiplied () { return isAlphaPremultiplied__; }
  virtual jint getPixelSize () { return pixel_bits; }
  virtual jint getComponentSize (jint);
  virtual jintArray getComponentSize () { return bits; }
  virtual jint getTransparency () { return transparency; }
  virtual jint getNumComponents ();
  virtual jint getNumColorComponents ();
  virtual jint getRed (jint) = 0;
  virtual jint getGreen (jint) = 0;
  virtual jint getBlue (jint) = 0;
  virtual jint getAlpha (jint) = 0;
  virtual jint getRGB (jint);
public: // actually package-private
  virtual jint getPixelFromArray (::java::lang::Object *);
public:
  virtual jint getRed (::java::lang::Object *);
  virtual jint getGreen (::java::lang::Object *);
  virtual jint getBlue (::java::lang::Object *);
  virtual jint getAlpha (::java::lang::Object *);
  virtual jint getRGB (::java::lang::Object *);
  virtual ::java::lang::Object *getDataElements (jint, ::java::lang::Object *);
  virtual jintArray getComponents (jint, jintArray, jint);
  virtual jintArray getComponents (::java::lang::Object *, jintArray, jint);
  virtual jintArray getUnnormalizedComponents (jfloatArray, jint, jintArray, jint);
  virtual jfloatArray getNormalizedComponents (jintArray, jint, jfloatArray, jint);
  virtual jfloatArray getNormalizedComponents (::java::lang::Object *, jfloatArray, jint);
  virtual jint getDataElement (jintArray, jint);
  virtual jint getDataElement (jfloatArray, jint);
  virtual ::java::lang::Object *getDataElements (jintArray, jint, ::java::lang::Object *);
  virtual ::java::lang::Object *getDataElements (jfloatArray, jint, ::java::lang::Object *);
  virtual jboolean equals (::java::lang::Object *);
  virtual ::java::awt::color::ColorSpace *getColorSpace () { return cspace; }
  virtual ::java::awt::image::ColorModel *coerceData (::java::awt::image::WritableRaster *, jboolean);
  virtual jboolean isCompatibleRaster (::java::awt::image::Raster *);
  virtual ::java::awt::image::WritableRaster *createCompatibleWritableRaster (jint, jint);
  virtual ::java::awt::image::SampleModel *createCompatibleSampleModel (jint, jint);
  virtual jboolean isCompatibleSampleModel (::java::awt::image::SampleModel *);
  virtual jint getTransferType () { return transferType; }
  virtual ::java::awt::image::WritableRaster *getAlphaRaster (::java::awt::image::WritableRaster *) { return 0; }
public: // actually package-private
  virtual ::java::lang::String *stringParam ();
public:
  virtual ::java::lang::String *toString ();
public:  // actually protected
  jint __attribute__((aligned(__alignof__( ::java::lang::Object ))))  pixel_bits;
  jint transferType;
public: // actually package-private
  jintArray bits;
  ::java::awt::color::ColorSpace *cspace;
  jint transparency;
  jboolean hasAlpha__;
  jboolean isAlphaPremultiplied__;
private:
  static ::java::awt::image::ColorModel *S_RGB_MODEL;

  friend class java_awt_image_ColorModel$SRGBColorModel;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_awt_image_ColorModel__ */
