automatic commit - 25-11-2022
This commit is contained in:
150
tools/vision/ldv/ldv.h
Normal file
150
tools/vision/ldv/ldv.h
Normal file
@@ -0,0 +1,150 @@
|
||||
#ifndef __LDV_H
|
||||
#define __LDV_H
|
||||
|
||||
#ifndef __LDG__
|
||||
#include "ldv\ldg.h"
|
||||
#endif
|
||||
|
||||
#ifndef __VAPI_H
|
||||
#include "ldv\vapi.h"
|
||||
#endif
|
||||
|
||||
/* Error codes */
|
||||
typedef long LDV_STATUS ;
|
||||
#define ELDV_NOERROR 0x0 /* No error */
|
||||
#define ELDV_INVALIDPARAMETER 0x1 /* At least one parameter is invalid */
|
||||
#define ELDV_NBPLANESNOTSUPPORTED 0x2 /* Unsupported number of planes */
|
||||
#define ELDV_NOTENOUGHMEMORY 0x3 /* Not enough memory */
|
||||
#define ELDV_PREVIEWNOTSUPPORTED 0x4 /* Preview is not supported */
|
||||
#define ELDV_RUNNOTSUPPORTED 0x5 /* Run is not supported (!) */
|
||||
#define ELDV_BADVAPIVERSION 0x6 /* No VAPI or wrong version */
|
||||
#define ELDV_IMGFORMATMISMATCH 0x7 /* Image format is not compatible */
|
||||
#define ELDV_CANCELLED 0x8 /* User cancelled the operation */
|
||||
#define ELDV_BADINTERFACE 0x9 /* LDV does not expose a proper interface */
|
||||
#define ELDV_GENERALFAILURE 0xF /* General failure, reason unknown */
|
||||
|
||||
|
||||
/* Macro aiming to test if a */
|
||||
/* LDV call was successful */
|
||||
#define LDV_SUCCESS(x) ((x) == ELDV_NOERROR)
|
||||
|
||||
|
||||
/* LDV types */
|
||||
#define TLDV_MODIFYIMG 0x01 /* Modify image : filter, scaler, ... */
|
||||
|
||||
/* Flags field bitmask for */
|
||||
/* A given number of planes */
|
||||
#define LDVF_STDFORMAT 0x00000001UL /* Image is standard format */
|
||||
#define LDVF_ATARIFORMAT 0x00000002UL /* Image is ATARI format (Falcon) */
|
||||
#define LDVF_SPECFORMAT 0x00000004UL /* Image is specific format (video card/emulator)) */
|
||||
#define LDVF_SUPPORTPREVIEW 0x00000008UL /* Preview is supported */
|
||||
#define LDVF_AFFECTPALETTE 0x00000010UL /* Module changes palette (if NbPlanes <= 8) */
|
||||
#define LDVF_SUPPORTPROG 0x00000020UL /* Module wil call progress fonction */
|
||||
#define LDVF_OPINPLACE 0x00000040UL /* Module operate inplace and changes the source (out parameter is ignored) */
|
||||
#define LDVF_REALTIMEPARAMS 0x00000080UL /* Module supports real time parameter changes in preview mode */
|
||||
#define LDVF_SUPPORTCANCEL 0x00000100UL /* Module supports user cancellation (see PrSetProgEx) */
|
||||
#define LDVF_NOSELECTION 0x00000200UL /* Module can only operate on full image, not sub block */
|
||||
#define LDVF_NOCHANGE 0x00000400UL /* Module won't change any part of the image (e.g. report LDV) */
|
||||
|
||||
/* This struct reports what a LDV */
|
||||
/* Can do for each number of planes */
|
||||
typedef struct
|
||||
{
|
||||
char NbPlanes ; /* Image number of planes : */
|
||||
/* 0 : ends this structure */
|
||||
/* 1, 2, 4, 8, 16, 24, or 32 */
|
||||
|
||||
char NbPlanesOut ; /* Number of planes after modification */
|
||||
|
||||
unsigned long Flags ; /* LDVF_... */
|
||||
}
|
||||
LDV_CAPS ;
|
||||
|
||||
|
||||
#define LDVNBMAX_PARAMETERS 4 /* Maximum 4 parameters can be passed by VISION */
|
||||
|
||||
typedef union
|
||||
{
|
||||
short s ;
|
||||
float f ;
|
||||
void* str ;
|
||||
}
|
||||
LDV_BASICPARAM ;
|
||||
|
||||
#define LDVT_SHORT 1
|
||||
#define LDVT_FLOAT 2
|
||||
#define LDVT_FILE 3
|
||||
typedef struct
|
||||
{
|
||||
char Name[1+15] ;
|
||||
char Type ;
|
||||
LDV_BASICPARAM MinValue ;
|
||||
LDV_BASICPARAM DefaultValue ;
|
||||
LDV_BASICPARAM MaxValue ;
|
||||
}
|
||||
LDV_DEF_PARAM ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short StrSize ; /* Size in bytes of LDV_INFOS */
|
||||
short Type ; /* TLDV_... */
|
||||
char Authors[1+45] ; /* Author(s) list */
|
||||
|
||||
LDV_CAPS Caps[10] ; /* What this LDV can do */
|
||||
/* For each number of planes */
|
||||
/* Last element is zeroed to */
|
||||
/* Mark the end */
|
||||
char RFU[16] ; /* Futur usage */
|
||||
}
|
||||
LDV_INFOS ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short Red ; /* 0...1000 */
|
||||
short Green ; /* 0...1000 */
|
||||
short Blue ; /* 0...1000 */
|
||||
}
|
||||
VDI_ELEMENTPAL ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short NbColors ; /* Number of colors for this palette */
|
||||
VDI_ELEMENTPAL* Pal ; /* Indexed from VDI */
|
||||
}
|
||||
LDV_PALETTE ;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
short x1, y1, x2, y2 ; /* Rectangle defining the sub block to work on */
|
||||
short NbParams ;
|
||||
LDV_BASICPARAM Param[LDVNBMAX_PARAMETERS] ;
|
||||
short ParamType[LDVNBMAX_PARAMETERS] ; /* A bit redundant but useful to free allocated memory for file name */
|
||||
|
||||
/* Since VAPI_LDVVERSION 0x0106 */
|
||||
/* LDV can return a text to be displayed by VISION */
|
||||
char ldv_txt_out[128] ;
|
||||
}
|
||||
LDV_PARAMS ;
|
||||
|
||||
/* Image definition for the LDV to operate on */
|
||||
typedef struct
|
||||
{
|
||||
short RasterFormat ; /* LDVF_STDFORMAT, LDVF_ATARIFORMAT or LDVF_SPECFORMAT */
|
||||
/* VISION selects the optimal format from */
|
||||
/* LDV capabilities reported via GetLDVCapabilities */
|
||||
|
||||
MFDB Raster ; /* Image */
|
||||
|
||||
LDV_PALETTE Palette ; /* Valid if Raster.fd_nplanes <= 8 */
|
||||
|
||||
void* Context ; /* Used by Image I/O interface */
|
||||
}
|
||||
LDV_IMAGE ;
|
||||
|
||||
|
||||
long cdecl ImGetInf(char* filename, void* ldv_img) ;
|
||||
long cdecl ImLoad(void* ldv_img) ;
|
||||
void cdecl ImFree(void* ldv_img) ;
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user