/* Public domain */ #ifndef _FREESG_PROGRAM_H_ #define _FREESG_PROGRAM_H_ typedef struct sg_program_class { struct ag_object_class _inherit; int (*install)(void *, struct sg_view *); void (*deinstall)(void *, struct sg_view *); void (*bind)(void *, struct sg_view *); void (*unbind)(void *, struct sg_view *); } SG_ProgramClass; typedef struct sg_program { struct ag_object obj; Uint flags; } SG_Program; #define SG_PROGRAM(sp) ((SG_Program *)(sp)) #define SG_PROGRAM_OPS(sp) ((SG_ProgramClass *)AGOBJECT(sp)->cls) __BEGIN_DECLS extern AG_ObjectClass sgProgramClass; int SG_ProgramInstall(SG_Program *, struct sg_view *); void SG_ProgramDeinstall(SG_Program *, struct sg_view *); void SG_ProgramBind(SG_Program *, struct sg_view *); void SG_ProgramUnbind(SG_Program *, struct sg_view *); __END_DECLS #endif /* _FREESG_PROGRAM_H_ */