Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
glsmap/glsmap.h
#ifndef __glsmap_h__ |
#define __glsmap_h__ |
/* Copyright (c) Mark J. Kilgard, 1998. */ |
/* This program is freely distributable without licensing fees |
and is provided without guarantee or warrantee expressed or |
implied. This program is -not- in the public domain. */ |
#if defined(_WIN32) |
/* Try hard to avoid including <windows.h> to avoid name space pollution, |
but Win32's <GL/gl.h> needs APIENTRY and WINGDIAPI defined properly. */ |
# if 0 |
# define WIN32_LEAN_AND_MEAN |
# include <windows.h> |
# else |
/* XXX This is from Win32's <windef.h> */ |
# ifndef APIENTRY |
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) |
# define APIENTRY __stdcall |
# else |
# define APIENTRY |
# endif |
# endif |
# ifndef CALLBACK |
/* XXX This is from Win32's <winnt.h> */ |
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) |
# define CALLBACK __stdcall |
# else |
# define CALLBACK |
# endif |
# endif |
/* XXX This is from Win32's <wingdi.h> and <winnt.h> */ |
# ifndef WINGDIAPI |
# define WINGDIAPI __declspec(dllimport) |
# endif |
/* XXX This is from Win32's <ctype.h> */ |
# ifndef _WCHAR_T_DEFINED |
typedef unsigned short wchar_t; |
# define _WCHAR_T_DEFINED |
# endif |
# endif |
#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ |
#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ |
#endif /* _WIN32 */ |
#include <OpenGL/gl.h> |
#ifdef __cplusplus |
extern "C" { |
#endif |
typedef enum { |
SMAP_CLEAR_SMAP_TEXTURE = 0x1, |
SMAP_GENERATE_VIEW_MIPMAPS = 0x2, |
SMAP_GENERATE_SMAP_MIPMAPS = 0x4, |
SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ |
} SphereMapFlags; |
/* Cube view enumerants. */ |
enum { |
SMAP_FRONT = 0, |
SMAP_TOP = 1, |
SMAP_BOTTOM = 2, |
SMAP_LEFT = 3, |
SMAP_RIGHT = 4, |
SMAP_BACK = 5 |
}; |
typedef struct _SphereMap SphereMap; |
extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap); |
extern void smapDestroySphereMap(SphereMap *smap); |
extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend); |
extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj); |
extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj); |
extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); |
extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj); |
extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj); |
extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]); |
extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags); |
extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags); |
extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y); |
extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y); |
extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y); |
extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y); |
extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez); |
extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye); |
extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz); |
extern void smapSetUpVector(SphereMap *smap, GLfloat *up); |
extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz); |
extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj); |
extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez); |
extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye); |
extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz); |
extern void smapGetUpVector(SphereMap *smap, GLfloat *up); |
extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz); |
extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj); |
extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar); |
extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar); |
extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim); |
extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim); |
extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim); |
extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim); |
extern void smapSetContextData(SphereMap *smap, void *context); |
extern void smapGetContextData(SphereMap *smap, void **context); |
extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)); |
extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)); |
extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)); |
extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)); |
extern void smapGenViewTex(SphereMap *smap, int view); |
extern void smapGenViewTexs(SphereMap *smap); |
extern void smapGenSphereMapFromViewTexs(SphereMap *smap); |
extern void smapGenSphereMap(SphereMap *smap); |
extern void smapGenSphereMapWithOneViewTex(SphereMap *smap); |
extern int smapRvecToSt(float rvec[3], float st[2]); |
extern void smapStToRvec(float *st, float *rvec); |
#ifdef __cplusplus |
} |
#endif |
#endif /* __glsmap_h__ */ |
Copyright © 2008 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2008-02-08