/*
    ####             #    #     # #
    #   #            #    #       #          The FreeWare C library for 
    #   #  ##   ###  #  # #     # ###             RISC OS machines
    #   # #  # #     # #  #     # #  #   ___________________________________
    #   # ####  ###  ##   #     # #  #                                      
    #   # #        # # #  #     # #  #    Please refer to the accompanying
    ####   ### ####  #  # ##### # ###    documentation for conditions of use
    ________________________________________________________________________

    File:    Clear.h
    Author:  Copyright  1994 Jason Howat
    Version: 1.01 (30 Jun 1994)
    Purpose: Clear file manipulation routines.
*/


#ifndef __Desk_Clear_h
#define __Desk_Clear_h

#ifdef __cplusplus
extern "C" {
#endif


#ifndef __Desk_Wimp_h
#include "Wimp.h"
#endif


typedef struct
{
  char          *creator;
  unsigned      creatorversion;

  unsigned      width,
                height;
  unsigned      bpp;

  Desk_palette_entry *palette;
  unsigned char *bitmap;
} Desk_clear_picture;


void Desk_Clear_Init(char *creator, unsigned version);
/*
Initialises the Clear library with details of the Clear file creating
program -- only needed if you use Desk_Clear_Save().  creator is the name of
the program.  version is the version number of the program * 100.
*/


Desk_clear_picture *Desk_Clear_Load(char *filename);
/*
Attempt to read a picture from the given Clear file.  Returns NULL if
there is an error.
*/


void Desk_Clear_Save(Desk_clear_picture *picture, char *filename);
/*
Write the given picture to a file.
*/


Desk_clear_picture *Desk_Clear_Create(unsigned width, unsigned height, unsigned bpp);
/*
Allocate memory for a picture of the given dimensions.  Returns NULL if
it fails.
*/


void Desk_Clear_Free(Desk_clear_picture *picture);
/*
Deallocate all memory used by the given picture.
*/


#ifdef __cplusplus
}
#endif


#endif
