#ifndef RGB24BUFFER_H_
#define RGB24BUFFER_H_
/**
 * \file rgb24buffer.h
 * \brief a header for rgb24buffer.c
 *
 * \date Sep 1, 2009
 * \author: Alexander Pimenov
 * \ingroup corefiles
 */
#ifdef __cplusplus
	extern "C" {
#endif
#include <stdint.h>

#define RGB24ELEM(RGB24buf, X, Y)  (RGB24buf)->data[(RGB24buf)->w * (Y) + (X)]

/**
 * \brief This buffer holds the greyscale buffer with 12 bits death.
 */
typedef struct RGB24Buffer_TAG {
	int h;
	int w;
	uint32_t *data;
} RGB24Buffer;


RGB24Buffer *g12BufferCreate(int h, int w);
RGB24Buffer *g12BufferClone(RGB24Buffer *input);


void g12BufferDelete(RGB24Buffer *toDelete);

#ifdef __cplusplus
	} // 	extern "C"
#endif

#endif  //RGB24BUFFER_H_


