grafX2/src/gfx2surface.h
Adrien Destugues 32ec828835 Group all copyright statements in a single file.
This gives a much clearer overview of the licensing.

It also shows there are some problems:
- Some files are under GPLv3 only
- Some files have no known license at all.
2020-12-19 21:56:33 +00:00

71 lines
2.2 KiB
C

/* vim:expandtab:ts=2 sw=2:
*/
/* Grafx2 - The Ultimate 256-color bitmap paint program
Copyright owned by various GrafX2 authors, see COPYRIGHT.txt for details.
Grafx2 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; version 2
of the License.
Grafx2 is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Grafx2; if not, see <http://www.gnu.org/licenses/>
*/
//////////////////////////////////////////////////////////////////////////////
///@file gfx2surface.h
/// Memory representation of a 8bits picture
//////////////////////////////////////////////////////////////////////////////
#ifndef GFX2SURFACE_H__
#define GFX2SURFACE_H__
#include "struct.h"
/// to load 256 color pictures into memory
typedef struct
{
byte * pixels; ///< pixel data (1 byte = 1 pixel)
T_Palette palette; ///< 256 color palette
word w; ///< Width
word h; ///< Height
} T_GFX2_Surface;
/**
* Allocate a new surface.
* @param width, height dimension of the new surface. Cannot be 0
* @return the new surface
* @return NULL in case of error
*/
T_GFX2_Surface * New_GFX2_Surface(word width, word height);
/**
* Free the surface object and the associated pixel data.
* @param surface The surface to free
*/
void Free_GFX2_Surface(T_GFX2_Surface * surface);
/**
* Retrieve a pixel value.
* @param surface The surface to access
* @param x, y the coordinate of the pixel to read
* @return the pixel 8 bits value
* @return 0 for out of bound access
*/
byte Get_GFX2_Surface_pixel(const T_GFX2_Surface * surface, int x, int y);
/**
* Set a pixel. Nothing is done if the coordinates are out of bound.
* @param surface The surface to access
* @param x, y the coordinate of the pixel to write
* @param value the 8 bits pixel value
*/
void Set_GFX2_Surface_pixel(T_GFX2_Surface * surface, int x, int y, byte value);
#endif