forked from KolibriOS/kolibrios
sdk: update Makefiles && libsound
git-svn-id: svn://kolibrios.org@5022 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
73882958a8
commit
d22ed6d387
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS:= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
LDFLAGS:= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
||||||
PXFLAGS:= --version-script pixlib.ver --out-implib $(LIBRARY).dll.a
|
PXFLAGS:= --version-script pixlib.ver --out-implib $(LIBRARY).dll.a
|
||||||
|
@ -7,7 +7,7 @@ LIB_DIR:= $(abspath ../lib)
|
|||||||
|
|
||||||
all: newlib zlib libpng freetype pixman cairo \
|
all: newlib zlib libpng freetype pixman cairo \
|
||||||
libdrm pixlib ffmpeg libsupc++ gcc_eh expat \
|
libdrm pixlib ffmpeg libsupc++ gcc_eh expat \
|
||||||
Mesa eglut
|
Mesa eglut sound
|
||||||
|
|
||||||
newlib: $(DLL_DIR)/libc.dll $(LIB_DIR)/libc.dll.a $(LIB_DIR)/libapp.a $(LIB_DIR)/libdll.a
|
newlib: $(DLL_DIR)/libc.dll $(LIB_DIR)/libc.dll.a $(LIB_DIR)/libapp.a $(LIB_DIR)/libdll.a
|
||||||
|
|
||||||
@ -119,3 +119,10 @@ eglut: $(DLL_DIR)/libeglut.dll $(LIB_DIR)/libeglut.dll.a $(LIB_DIR)/libeglut.a
|
|||||||
$(DLL_DIR)/libeglut.dll $(LIB_DIR)/libeglut.dll.a $(LIB_DIR)/libeglut.a : newlib Mesa
|
$(DLL_DIR)/libeglut.dll $(LIB_DIR)/libeglut.dll.a $(LIB_DIR)/libeglut.a : newlib Mesa
|
||||||
$(MAKE) -C eglut
|
$(MAKE) -C eglut
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
|
||||||
|
sound: $(LIB_DIR)/libsound.a
|
||||||
|
|
||||||
|
$(LIB_DIR)/libsound.a :
|
||||||
|
$(MAKE) -C sound
|
||||||
|
|
@ -9,7 +9,7 @@ export SDK_DIR:= $(abspath ../..)
|
|||||||
EGL = egl
|
EGL = egl
|
||||||
|
|
||||||
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
||||||
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
|
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
|
||||||
CFLAGS = -c $(CFLAGS_OPT)
|
CFLAGS = -c $(CFLAGS_OPT)
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -shared -s --image-base 0 -T ../newlib/dll.lds -e _DllStartup
|
LDFLAGS = -nostdlib -shared -s --image-base 0 -T ../newlib/dll.lds -e _DllStartup
|
||||||
|
353
contrib/sdk/sources/Mesa/include/GL/glu.h
Normal file
353
contrib/sdk/sources/Mesa/include/GL/glu.h
Normal file
@ -0,0 +1,353 @@
|
|||||||
|
/*
|
||||||
|
* SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
|
||||||
|
* Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice including the dates of first publication and
|
||||||
|
* either this permission notice or a reference to
|
||||||
|
* http://oss.sgi.com/projects/FreeB/
|
||||||
|
* shall be included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||||
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||||
|
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
* Except as contained in this notice, the name of Silicon Graphics, Inc.
|
||||||
|
* shall not be used in advertising or otherwise to promote the sale, use or
|
||||||
|
* other dealings in this Software without prior written authorization from
|
||||||
|
* Silicon Graphics, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __glu_h__
|
||||||
|
#define __glu_h__
|
||||||
|
|
||||||
|
#if defined(USE_MGL_NAMESPACE)
|
||||||
|
#include "glu_mangle.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <GL/gl.h>
|
||||||
|
|
||||||
|
#ifndef GLAPIENTRY
|
||||||
|
#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||||
|
#define GLAPIENTRY __stdcall
|
||||||
|
#else
|
||||||
|
#define GLAPIENTRY
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GLAPIENTRYP
|
||||||
|
#define GLAPIENTRYP GLAPIENTRY *
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (defined(_MSC_VER) || defined(__MINGW32__)) && defined(BUILD_GLU32)
|
||||||
|
# undef GLAPI
|
||||||
|
# define GLAPI __declspec(dllexport)
|
||||||
|
#elif (defined(_MSC_VER) || defined(__MINGW32__)) && defined(_DLL)
|
||||||
|
/* tag specifying we're building for DLL runtime support */
|
||||||
|
# undef GLAPI
|
||||||
|
# define GLAPI __declspec(dllimport)
|
||||||
|
#elif !defined(GLAPI)
|
||||||
|
/* for use with static link lib build of Win32 edition only */
|
||||||
|
# define GLAPI extern
|
||||||
|
#endif /* _STATIC_MESA support */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*************************************************************/
|
||||||
|
|
||||||
|
/* Extensions */
|
||||||
|
#define GLU_EXT_object_space_tess 1
|
||||||
|
#define GLU_EXT_nurbs_tessellator 1
|
||||||
|
|
||||||
|
/* Boolean */
|
||||||
|
#define GLU_FALSE 0
|
||||||
|
#define GLU_TRUE 1
|
||||||
|
|
||||||
|
/* Version */
|
||||||
|
#define GLU_VERSION_1_1 1
|
||||||
|
#define GLU_VERSION_1_2 1
|
||||||
|
#define GLU_VERSION_1_3 1
|
||||||
|
|
||||||
|
/* StringName */
|
||||||
|
#define GLU_VERSION 100800
|
||||||
|
#define GLU_EXTENSIONS 100801
|
||||||
|
|
||||||
|
/* ErrorCode */
|
||||||
|
#define GLU_INVALID_ENUM 100900
|
||||||
|
#define GLU_INVALID_VALUE 100901
|
||||||
|
#define GLU_OUT_OF_MEMORY 100902
|
||||||
|
#define GLU_INCOMPATIBLE_GL_VERSION 100903
|
||||||
|
#define GLU_INVALID_OPERATION 100904
|
||||||
|
|
||||||
|
/* NurbsDisplay */
|
||||||
|
/* GLU_FILL */
|
||||||
|
#define GLU_OUTLINE_POLYGON 100240
|
||||||
|
#define GLU_OUTLINE_PATCH 100241
|
||||||
|
|
||||||
|
/* NurbsCallback */
|
||||||
|
#define GLU_NURBS_ERROR 100103
|
||||||
|
#define GLU_ERROR 100103
|
||||||
|
#define GLU_NURBS_BEGIN 100164
|
||||||
|
#define GLU_NURBS_BEGIN_EXT 100164
|
||||||
|
#define GLU_NURBS_VERTEX 100165
|
||||||
|
#define GLU_NURBS_VERTEX_EXT 100165
|
||||||
|
#define GLU_NURBS_NORMAL 100166
|
||||||
|
#define GLU_NURBS_NORMAL_EXT 100166
|
||||||
|
#define GLU_NURBS_COLOR 100167
|
||||||
|
#define GLU_NURBS_COLOR_EXT 100167
|
||||||
|
#define GLU_NURBS_TEXTURE_COORD 100168
|
||||||
|
#define GLU_NURBS_TEX_COORD_EXT 100168
|
||||||
|
#define GLU_NURBS_END 100169
|
||||||
|
#define GLU_NURBS_END_EXT 100169
|
||||||
|
#define GLU_NURBS_BEGIN_DATA 100170
|
||||||
|
#define GLU_NURBS_BEGIN_DATA_EXT 100170
|
||||||
|
#define GLU_NURBS_VERTEX_DATA 100171
|
||||||
|
#define GLU_NURBS_VERTEX_DATA_EXT 100171
|
||||||
|
#define GLU_NURBS_NORMAL_DATA 100172
|
||||||
|
#define GLU_NURBS_NORMAL_DATA_EXT 100172
|
||||||
|
#define GLU_NURBS_COLOR_DATA 100173
|
||||||
|
#define GLU_NURBS_COLOR_DATA_EXT 100173
|
||||||
|
#define GLU_NURBS_TEXTURE_COORD_DATA 100174
|
||||||
|
#define GLU_NURBS_TEX_COORD_DATA_EXT 100174
|
||||||
|
#define GLU_NURBS_END_DATA 100175
|
||||||
|
#define GLU_NURBS_END_DATA_EXT 100175
|
||||||
|
|
||||||
|
/* NurbsError */
|
||||||
|
#define GLU_NURBS_ERROR1 100251
|
||||||
|
#define GLU_NURBS_ERROR2 100252
|
||||||
|
#define GLU_NURBS_ERROR3 100253
|
||||||
|
#define GLU_NURBS_ERROR4 100254
|
||||||
|
#define GLU_NURBS_ERROR5 100255
|
||||||
|
#define GLU_NURBS_ERROR6 100256
|
||||||
|
#define GLU_NURBS_ERROR7 100257
|
||||||
|
#define GLU_NURBS_ERROR8 100258
|
||||||
|
#define GLU_NURBS_ERROR9 100259
|
||||||
|
#define GLU_NURBS_ERROR10 100260
|
||||||
|
#define GLU_NURBS_ERROR11 100261
|
||||||
|
#define GLU_NURBS_ERROR12 100262
|
||||||
|
#define GLU_NURBS_ERROR13 100263
|
||||||
|
#define GLU_NURBS_ERROR14 100264
|
||||||
|
#define GLU_NURBS_ERROR15 100265
|
||||||
|
#define GLU_NURBS_ERROR16 100266
|
||||||
|
#define GLU_NURBS_ERROR17 100267
|
||||||
|
#define GLU_NURBS_ERROR18 100268
|
||||||
|
#define GLU_NURBS_ERROR19 100269
|
||||||
|
#define GLU_NURBS_ERROR20 100270
|
||||||
|
#define GLU_NURBS_ERROR21 100271
|
||||||
|
#define GLU_NURBS_ERROR22 100272
|
||||||
|
#define GLU_NURBS_ERROR23 100273
|
||||||
|
#define GLU_NURBS_ERROR24 100274
|
||||||
|
#define GLU_NURBS_ERROR25 100275
|
||||||
|
#define GLU_NURBS_ERROR26 100276
|
||||||
|
#define GLU_NURBS_ERROR27 100277
|
||||||
|
#define GLU_NURBS_ERROR28 100278
|
||||||
|
#define GLU_NURBS_ERROR29 100279
|
||||||
|
#define GLU_NURBS_ERROR30 100280
|
||||||
|
#define GLU_NURBS_ERROR31 100281
|
||||||
|
#define GLU_NURBS_ERROR32 100282
|
||||||
|
#define GLU_NURBS_ERROR33 100283
|
||||||
|
#define GLU_NURBS_ERROR34 100284
|
||||||
|
#define GLU_NURBS_ERROR35 100285
|
||||||
|
#define GLU_NURBS_ERROR36 100286
|
||||||
|
#define GLU_NURBS_ERROR37 100287
|
||||||
|
|
||||||
|
/* NurbsProperty */
|
||||||
|
#define GLU_AUTO_LOAD_MATRIX 100200
|
||||||
|
#define GLU_CULLING 100201
|
||||||
|
#define GLU_SAMPLING_TOLERANCE 100203
|
||||||
|
#define GLU_DISPLAY_MODE 100204
|
||||||
|
#define GLU_PARAMETRIC_TOLERANCE 100202
|
||||||
|
#define GLU_SAMPLING_METHOD 100205
|
||||||
|
#define GLU_U_STEP 100206
|
||||||
|
#define GLU_V_STEP 100207
|
||||||
|
#define GLU_NURBS_MODE 100160
|
||||||
|
#define GLU_NURBS_MODE_EXT 100160
|
||||||
|
#define GLU_NURBS_TESSELLATOR 100161
|
||||||
|
#define GLU_NURBS_TESSELLATOR_EXT 100161
|
||||||
|
#define GLU_NURBS_RENDERER 100162
|
||||||
|
#define GLU_NURBS_RENDERER_EXT 100162
|
||||||
|
|
||||||
|
/* NurbsSampling */
|
||||||
|
#define GLU_OBJECT_PARAMETRIC_ERROR 100208
|
||||||
|
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208
|
||||||
|
#define GLU_OBJECT_PATH_LENGTH 100209
|
||||||
|
#define GLU_OBJECT_PATH_LENGTH_EXT 100209
|
||||||
|
#define GLU_PATH_LENGTH 100215
|
||||||
|
#define GLU_PARAMETRIC_ERROR 100216
|
||||||
|
#define GLU_DOMAIN_DISTANCE 100217
|
||||||
|
|
||||||
|
/* NurbsTrim */
|
||||||
|
#define GLU_MAP1_TRIM_2 100210
|
||||||
|
#define GLU_MAP1_TRIM_3 100211
|
||||||
|
|
||||||
|
/* QuadricDrawStyle */
|
||||||
|
#define GLU_POINT 100010
|
||||||
|
#define GLU_LINE 100011
|
||||||
|
#define GLU_FILL 100012
|
||||||
|
#define GLU_SILHOUETTE 100013
|
||||||
|
|
||||||
|
/* QuadricCallback */
|
||||||
|
/* GLU_ERROR */
|
||||||
|
|
||||||
|
/* QuadricNormal */
|
||||||
|
#define GLU_SMOOTH 100000
|
||||||
|
#define GLU_FLAT 100001
|
||||||
|
#define GLU_NONE 100002
|
||||||
|
|
||||||
|
/* QuadricOrientation */
|
||||||
|
#define GLU_OUTSIDE 100020
|
||||||
|
#define GLU_INSIDE 100021
|
||||||
|
|
||||||
|
/* TessCallback */
|
||||||
|
#define GLU_TESS_BEGIN 100100
|
||||||
|
#define GLU_BEGIN 100100
|
||||||
|
#define GLU_TESS_VERTEX 100101
|
||||||
|
#define GLU_VERTEX 100101
|
||||||
|
#define GLU_TESS_END 100102
|
||||||
|
#define GLU_END 100102
|
||||||
|
#define GLU_TESS_ERROR 100103
|
||||||
|
#define GLU_TESS_EDGE_FLAG 100104
|
||||||
|
#define GLU_EDGE_FLAG 100104
|
||||||
|
#define GLU_TESS_COMBINE 100105
|
||||||
|
#define GLU_TESS_BEGIN_DATA 100106
|
||||||
|
#define GLU_TESS_VERTEX_DATA 100107
|
||||||
|
#define GLU_TESS_END_DATA 100108
|
||||||
|
#define GLU_TESS_ERROR_DATA 100109
|
||||||
|
#define GLU_TESS_EDGE_FLAG_DATA 100110
|
||||||
|
#define GLU_TESS_COMBINE_DATA 100111
|
||||||
|
|
||||||
|
/* TessContour */
|
||||||
|
#define GLU_CW 100120
|
||||||
|
#define GLU_CCW 100121
|
||||||
|
#define GLU_INTERIOR 100122
|
||||||
|
#define GLU_EXTERIOR 100123
|
||||||
|
#define GLU_UNKNOWN 100124
|
||||||
|
|
||||||
|
/* TessProperty */
|
||||||
|
#define GLU_TESS_WINDING_RULE 100140
|
||||||
|
#define GLU_TESS_BOUNDARY_ONLY 100141
|
||||||
|
#define GLU_TESS_TOLERANCE 100142
|
||||||
|
|
||||||
|
/* TessError */
|
||||||
|
#define GLU_TESS_ERROR1 100151
|
||||||
|
#define GLU_TESS_ERROR2 100152
|
||||||
|
#define GLU_TESS_ERROR3 100153
|
||||||
|
#define GLU_TESS_ERROR4 100154
|
||||||
|
#define GLU_TESS_ERROR5 100155
|
||||||
|
#define GLU_TESS_ERROR6 100156
|
||||||
|
#define GLU_TESS_ERROR7 100157
|
||||||
|
#define GLU_TESS_ERROR8 100158
|
||||||
|
#define GLU_TESS_MISSING_BEGIN_POLYGON 100151
|
||||||
|
#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
|
||||||
|
#define GLU_TESS_MISSING_END_POLYGON 100153
|
||||||
|
#define GLU_TESS_MISSING_END_CONTOUR 100154
|
||||||
|
#define GLU_TESS_COORD_TOO_LARGE 100155
|
||||||
|
#define GLU_TESS_NEED_COMBINE_CALLBACK 100156
|
||||||
|
|
||||||
|
/* TessWinding */
|
||||||
|
#define GLU_TESS_WINDING_ODD 100130
|
||||||
|
#define GLU_TESS_WINDING_NONZERO 100131
|
||||||
|
#define GLU_TESS_WINDING_POSITIVE 100132
|
||||||
|
#define GLU_TESS_WINDING_NEGATIVE 100133
|
||||||
|
#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
|
||||||
|
|
||||||
|
/*************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
class GLUnurbs;
|
||||||
|
class GLUquadric;
|
||||||
|
class GLUtesselator;
|
||||||
|
#else
|
||||||
|
typedef struct GLUnurbs GLUnurbs;
|
||||||
|
typedef struct GLUquadric GLUquadric;
|
||||||
|
typedef struct GLUtesselator GLUtesselator;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef GLUnurbs GLUnurbsObj;
|
||||||
|
typedef GLUquadric GLUquadricObj;
|
||||||
|
typedef GLUtesselator GLUtesselatorObj;
|
||||||
|
typedef GLUtesselator GLUtriangulatorObj;
|
||||||
|
|
||||||
|
#define GLU_TESS_MAX_COORD 1.0e150
|
||||||
|
|
||||||
|
/* Internal convenience typedefs */
|
||||||
|
typedef void (GLAPIENTRYP _GLUfuncptr)(void);
|
||||||
|
|
||||||
|
GLAPI void GLAPIENTRY gluBeginCurve (GLUnurbs* nurb);
|
||||||
|
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluBeginSurface (GLUnurbs* nurb);
|
||||||
|
GLAPI void GLAPIENTRY gluBeginTrim (GLUnurbs* nurb);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
|
||||||
|
GLAPI GLboolean GLAPIENTRY gluCheckExtension (const GLubyte *extName, const GLubyte *extString);
|
||||||
|
GLAPI void GLAPIENTRY gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
|
||||||
|
GLAPI void GLAPIENTRY gluDeleteNurbsRenderer (GLUnurbs* nurb);
|
||||||
|
GLAPI void GLAPIENTRY gluDeleteQuadric (GLUquadric* quad);
|
||||||
|
GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
|
||||||
|
GLAPI void GLAPIENTRY gluEndCurve (GLUnurbs* nurb);
|
||||||
|
GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluEndSurface (GLUnurbs* nurb);
|
||||||
|
GLAPI void GLAPIENTRY gluEndTrim (GLUnurbs* nurb);
|
||||||
|
GLAPI const GLubyte * GLAPIENTRY gluErrorString (GLenum error);
|
||||||
|
GLAPI void GLAPIENTRY gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data);
|
||||||
|
GLAPI const GLubyte * GLAPIENTRY gluGetString (GLenum name);
|
||||||
|
GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
|
||||||
|
GLAPI void GLAPIENTRY gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view);
|
||||||
|
GLAPI void GLAPIENTRY gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
|
||||||
|
GLAPI GLUnurbs* GLAPIENTRY gluNewNurbsRenderer (void);
|
||||||
|
GLAPI GLUquadric* GLAPIENTRY gluNewQuadric (void);
|
||||||
|
GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void);
|
||||||
|
GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsCallback (GLUnurbs* nurb, GLenum which, _GLUfuncptr CallBackFunc);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value);
|
||||||
|
GLAPI void GLAPIENTRY gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type);
|
||||||
|
GLAPI void GLAPIENTRY gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
|
||||||
|
GLAPI void GLAPIENTRY gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
|
||||||
|
GLAPI void GLAPIENTRY gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
|
||||||
|
GLAPI void GLAPIENTRY gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
|
||||||
|
GLAPI GLint GLAPIENTRY gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ);
|
||||||
|
GLAPI void GLAPIENTRY gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type);
|
||||||
|
GLAPI void GLAPIENTRY gluQuadricCallback (GLUquadric* quad, GLenum which, _GLUfuncptr CallBackFunc);
|
||||||
|
GLAPI void GLAPIENTRY gluQuadricDrawStyle (GLUquadric* quad, GLenum draw);
|
||||||
|
GLAPI void GLAPIENTRY gluQuadricNormals (GLUquadric* quad, GLenum normal);
|
||||||
|
GLAPI void GLAPIENTRY gluQuadricOrientation (GLUquadric* quad, GLenum orientation);
|
||||||
|
GLAPI void GLAPIENTRY gluQuadricTexture (GLUquadric* quad, GLboolean texture);
|
||||||
|
GLAPI GLint GLAPIENTRY gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut);
|
||||||
|
GLAPI void GLAPIENTRY gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks);
|
||||||
|
GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
|
||||||
|
GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
|
||||||
|
GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess);
|
||||||
|
GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
|
||||||
|
GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
|
||||||
|
GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
|
||||||
|
GLAPI GLint GLAPIENTRY gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ);
|
||||||
|
GLAPI GLint GLAPIENTRY gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __glu_h__ */
|
86
contrib/sdk/sources/Mesa/include/GL/glu_mangle.h
Normal file
86
contrib/sdk/sources/Mesa/include/GL/glu_mangle.h
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
* Mesa 3-D graphics library
|
||||||
|
* Version: 3.0
|
||||||
|
* Copyright (C) 1995-1998 Brian Paul
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; if not, write to the Free
|
||||||
|
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef GLU_MANGLE_H
|
||||||
|
#define GLU_MANGLE_H
|
||||||
|
|
||||||
|
|
||||||
|
#define gluLookAt mgluLookAt
|
||||||
|
#define gluOrtho2D mgluOrtho2D
|
||||||
|
#define gluPerspective mgluPerspective
|
||||||
|
#define gluPickMatrix mgluPickMatrix
|
||||||
|
#define gluProject mgluProject
|
||||||
|
#define gluUnProject mgluUnProject
|
||||||
|
#define gluErrorString mgluErrorString
|
||||||
|
#define gluScaleImage mgluScaleImage
|
||||||
|
#define gluBuild1DMipmaps mgluBuild1DMipmaps
|
||||||
|
#define gluBuild2DMipmaps mgluBuild2DMipmaps
|
||||||
|
#define gluNewQuadric mgluNewQuadric
|
||||||
|
#define gluDeleteQuadric mgluDeleteQuadric
|
||||||
|
#define gluQuadricDrawStyle mgluQuadricDrawStyle
|
||||||
|
#define gluQuadricOrientation mgluQuadricOrientation
|
||||||
|
#define gluQuadricNormals mgluQuadricNormals
|
||||||
|
#define gluQuadricTexture mgluQuadricTexture
|
||||||
|
#define gluQuadricCallback mgluQuadricCallback
|
||||||
|
#define gluCylinder mgluCylinder
|
||||||
|
#define gluSphere mgluSphere
|
||||||
|
#define gluDisk mgluDisk
|
||||||
|
#define gluPartialDisk mgluPartialDisk
|
||||||
|
#define gluNewNurbsRenderer mgluNewNurbsRenderer
|
||||||
|
#define gluDeleteNurbsRenderer mgluDeleteNurbsRenderer
|
||||||
|
#define gluLoadSamplingMatrices mgluLoadSamplingMatrices
|
||||||
|
#define gluNurbsProperty mgluNurbsProperty
|
||||||
|
#define gluGetNurbsProperty mgluGetNurbsProperty
|
||||||
|
#define gluBeginCurve mgluBeginCurve
|
||||||
|
#define gluEndCurve mgluEndCurve
|
||||||
|
#define gluNurbsCurve mgluNurbsCurve
|
||||||
|
#define gluBeginSurface mgluBeginSurface
|
||||||
|
#define gluEndSurface mgluEndSurface
|
||||||
|
#define gluNurbsSurface mgluNurbsSurface
|
||||||
|
#define gluBeginTrim mgluBeginTrim
|
||||||
|
#define gluEndTrim mgluEndTrim
|
||||||
|
#define gluPwlCurve mgluPwlCurve
|
||||||
|
#define gluNurbsCallback mgluNurbsCallback
|
||||||
|
#define gluNewTess mgluNewTess
|
||||||
|
#define gluDeleteTess mgluDeleteTess
|
||||||
|
#define gluTessBeginPolygon mgluTessBeginPolygon
|
||||||
|
#define gluTessBeginContour mgluTessBeginContour
|
||||||
|
#define gluTessVertex mgluTessVertex
|
||||||
|
#define gluTessEndPolygon mgluTessEndPolygon
|
||||||
|
#define gluTessEndContour mgluTessEndContour
|
||||||
|
#define gluTessProperty mgluTessProperty
|
||||||
|
#define gluTessNormal mgluTessNormal
|
||||||
|
#define gluTessCallback mgluTessCallback
|
||||||
|
#define gluGetTessProperty mgluGetTessProperty
|
||||||
|
#define gluBeginPolygon mgluBeginPolygon
|
||||||
|
#define gluNextContour mgluNextContour
|
||||||
|
#define gluEndPolygon mgluEndPolygon
|
||||||
|
#define gluGetString mgluGetString
|
||||||
|
#define gluBuild1DMipmapLevels mgluBuild1DMipmapLevels
|
||||||
|
#define gluBuild2DMipmapLevels mgluBuild2DMipmapLevels
|
||||||
|
#define gluBuild3DMipmapLevels mgluBuild3DMipmapLevels
|
||||||
|
#define gluBuild3DMipmaps mgluBuild3DMipmaps
|
||||||
|
#define gluCheckExtension mgluCheckExtension
|
||||||
|
#define gluUnProject4 mgluUnProject4
|
||||||
|
#define gluNurbsCallbackData mgluNurbsCallbackData
|
||||||
|
#define gluNurbsCallbackDataEXT mgluNurbsCallbackDataEXT
|
||||||
|
|
||||||
|
#endif
|
@ -3,7 +3,7 @@ SRC_DIR:=$(SDK_DIR)/sources
|
|||||||
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
||||||
|
|
||||||
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
||||||
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
|
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
|
||||||
CFLAGS = -c $(CFLAGS_OPT)
|
CFLAGS = -c $(CFLAGS_OPT)
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds --out-implib libegl.dll.a -e _DllStartup
|
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds --out-implib libegl.dll.a -e _DllStartup
|
||||||
|
@ -3,7 +3,7 @@ SRC_DIR:=$(SDK_DIR)/sources
|
|||||||
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
||||||
|
|
||||||
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
||||||
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
|
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
|
||||||
CFLAGS = -c $(CFLAGS_OPT)
|
CFLAGS = -c $(CFLAGS_OPT)
|
||||||
|
|
||||||
INC_MESA:= -I$(SRC_DIR)/newlib/libc/include -I$(SRC_DIR)/Mesa/include
|
INC_MESA:= -I$(SRC_DIR)/newlib/libc/include -I$(SRC_DIR)/Mesa/include
|
||||||
|
@ -3,7 +3,7 @@ SRC_DIR:=$(SDK_DIR)/sources
|
|||||||
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
||||||
|
|
||||||
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
||||||
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
|
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
|
||||||
CFLAGS = -c $(CFLAGS_OPT)
|
CFLAGS = -c $(CFLAGS_OPT)
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds --out-implib libGL.dll.a -e _DllStartup
|
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds --out-implib libGL.dll.a -e _DllStartup
|
||||||
|
@ -3,7 +3,7 @@ SRC_DIR:=$(SDK_DIR)/sources
|
|||||||
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
MESA_SRC:= $(SRC_DIR)/Mesa/src
|
||||||
|
|
||||||
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
|
||||||
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
|
CFLAGS_OPT+= -fomit-frame-pointer -fno-ident -mno-ms-bitfields
|
||||||
CFLAGS = -c $(CFLAGS_OPT)
|
CFLAGS = -c $(CFLAGS_OPT)
|
||||||
|
|
||||||
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds -e _DllStartup
|
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds -e _DllStartup
|
||||||
|
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -c -O2 -ffast-math -Wall -Winline -Wno-attributes -fomit-frame-pointer
|
CFLAGS = -c -O2 -ffast-math -Wall -Winline -Wno-attributes -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0 --version-script cairo.ver --output-def $(LIBRARY).orig.def
|
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0 --version-script cairo.ver --output-def $(LIBRARY).orig.def
|
||||||
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
||||||
|
@ -6,7 +6,7 @@ CC = kos32-gcc
|
|||||||
AR = kos32-ar
|
AR = kos32-ar
|
||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
INCLUDES= -I. -I../newlib/libc/include -I../Mesa/include -I../Mesa/src/gbm/main -I../libdrm/include
|
INCLUDES= -I. -I../newlib/libc/include -I../Mesa/include -I../Mesa/src/gbm/main -I../libdrm/include
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ CC = kos32-gcc
|
|||||||
AR = kos32-ar
|
AR = kos32-ar
|
||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
ARFLAGS = crs
|
ARFLAGS = crs
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ STRIP=kos32-strip
|
|||||||
CP=cp -p
|
CP=cp -p
|
||||||
LN_S=ln -s -f
|
LN_S=ln -s -f
|
||||||
CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=32 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__
|
CPPFLAGS= -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=32 -D_LARGEFILE_SOURCE -U__STRICT_ANSI__
|
||||||
CFLAGS= -I../newlib/libc/include -I../zlib -U_Win32 -U_WIN32 -U__MINGW32__ -std=c99 -fomit-frame-pointer -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O2 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla
|
CFLAGS= -I../newlib/libc/include -I../zlib -U_Win32 -U_WIN32 -U__MINGW32__ -std=c99 -fno-ident -fomit-frame-pointer -Wdeclaration-after-statement -Wall -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -O2 -fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla
|
||||||
CXXFLAGS= -D__STDC_CONSTANT_MACROS
|
CXXFLAGS= -D__STDC_CONSTANT_MACROS
|
||||||
ASFLAGS= -I../newlib/libc/include -U_Win32 -U_WIN32 -U__MINGW32__
|
ASFLAGS= -I../newlib/libc/include -U_Win32 -U_WIN32 -U__MINGW32__
|
||||||
AS_C=-c
|
AS_C=-c
|
||||||
|
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -Wall -Winline -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -Wall -Winline -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
||||||
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
||||||
|
@ -7,7 +7,7 @@ LD = kos32-ld
|
|||||||
CPP= kos32-g++
|
CPP= kos32-g++
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
ARFLAG = crs
|
ARFLAG = crs
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -march=i686 -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -march=i686 -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS:= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --version-script libdrm.ver --image-base=0
|
LDFLAGS:= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --version-script libdrm.ver --image-base=0
|
||||||
LDFLAGS+= --out-implib $(LIBRARY).dll.a
|
LDFLAGS+= --out-implib $(LIBRARY).dll.a
|
||||||
|
@ -427,7 +427,7 @@ struct drm_draw {
|
|||||||
* DRM_IOCTL_UPDATE_DRAW ioctl argument type.
|
* DRM_IOCTL_UPDATE_DRAW ioctl argument type.
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
DRM_DRAWABLE_CLIPRECTS
|
DRM_DRAWABLE_CLIPRECTS,
|
||||||
} drm_drawable_info_type_t;
|
} drm_drawable_info_type_t;
|
||||||
|
|
||||||
struct drm_update_draw {
|
struct drm_update_draw {
|
||||||
@ -459,12 +459,15 @@ struct drm_irq_busid {
|
|||||||
enum drm_vblank_seq_type {
|
enum drm_vblank_seq_type {
|
||||||
_DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
|
_DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */
|
||||||
_DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
|
_DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */
|
||||||
|
/* bits 1-6 are reserved for high crtcs */
|
||||||
|
_DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
|
||||||
_DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */
|
_DRM_VBLANK_EVENT = 0x4000000, /**< Send event instead of blocking */
|
||||||
_DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
|
_DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */
|
||||||
_DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
|
_DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */
|
||||||
_DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
|
_DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */
|
||||||
_DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */
|
_DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking, unsupported */
|
||||||
};
|
};
|
||||||
|
#define _DRM_VBLANK_HIGH_CRTC_SHIFT 1
|
||||||
|
|
||||||
#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
|
#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
|
||||||
#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \
|
#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \
|
||||||
|
@ -106,6 +106,11 @@
|
|||||||
#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
|
#define DRM_FORMAT_NV21 fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
|
||||||
#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
|
#define DRM_FORMAT_NV16 fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
|
||||||
#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
|
#define DRM_FORMAT_NV61 fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
|
||||||
|
#define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
|
||||||
|
#define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
|
||||||
|
|
||||||
|
/* special NV12 tiled format */
|
||||||
|
#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 3 plane YCbCr
|
* 3 plane YCbCr
|
||||||
|
@ -173,6 +173,9 @@ struct drm_mode_get_plane_res {
|
|||||||
#define DRM_MODE_ENCODER_TMDS 2
|
#define DRM_MODE_ENCODER_TMDS 2
|
||||||
#define DRM_MODE_ENCODER_LVDS 3
|
#define DRM_MODE_ENCODER_LVDS 3
|
||||||
#define DRM_MODE_ENCODER_TVDAC 4
|
#define DRM_MODE_ENCODER_TVDAC 4
|
||||||
|
#define DRM_MODE_ENCODER_VIRTUAL 5
|
||||||
|
#define DRM_MODE_ENCODER_DSI 6
|
||||||
|
#define DRM_MODE_ENCODER_DPMST 7
|
||||||
|
|
||||||
struct drm_mode_get_encoder {
|
struct drm_mode_get_encoder {
|
||||||
__u32 encoder_id;
|
__u32 encoder_id;
|
||||||
@ -210,6 +213,8 @@ struct drm_mode_get_encoder {
|
|||||||
#define DRM_MODE_CONNECTOR_HDMIB 12
|
#define DRM_MODE_CONNECTOR_HDMIB 12
|
||||||
#define DRM_MODE_CONNECTOR_TV 13
|
#define DRM_MODE_CONNECTOR_TV 13
|
||||||
#define DRM_MODE_CONNECTOR_eDP 14
|
#define DRM_MODE_CONNECTOR_eDP 14
|
||||||
|
#define DRM_MODE_CONNECTOR_VIRTUAL 15
|
||||||
|
#define DRM_MODE_CONNECTOR_DSI 16
|
||||||
|
|
||||||
struct drm_mode_get_connector {
|
struct drm_mode_get_connector {
|
||||||
|
|
||||||
@ -230,6 +235,8 @@ struct drm_mode_get_connector {
|
|||||||
__u32 connection;
|
__u32 connection;
|
||||||
__u32 mm_width, mm_height; /**< HxW in millimeters */
|
__u32 mm_width, mm_height; /**< HxW in millimeters */
|
||||||
__u32 subpixel;
|
__u32 subpixel;
|
||||||
|
|
||||||
|
__u32 pad;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DRM_MODE_PROP_PENDING (1<<0)
|
#define DRM_MODE_PROP_PENDING (1<<0)
|
||||||
@ -239,6 +246,21 @@ struct drm_mode_get_connector {
|
|||||||
#define DRM_MODE_PROP_BLOB (1<<4)
|
#define DRM_MODE_PROP_BLOB (1<<4)
|
||||||
#define DRM_MODE_PROP_BITMASK (1<<5) /* bitmask of enumerated types */
|
#define DRM_MODE_PROP_BITMASK (1<<5) /* bitmask of enumerated types */
|
||||||
|
|
||||||
|
/* non-extended types: legacy bitmask, one bit per type: */
|
||||||
|
#define DRM_MODE_PROP_LEGACY_TYPE ( \
|
||||||
|
DRM_MODE_PROP_RANGE | \
|
||||||
|
DRM_MODE_PROP_ENUM | \
|
||||||
|
DRM_MODE_PROP_BLOB | \
|
||||||
|
DRM_MODE_PROP_BITMASK)
|
||||||
|
|
||||||
|
/* extended-types: rather than continue to consume a bit per type,
|
||||||
|
* grab a chunk of the bits to use as integer type id.
|
||||||
|
*/
|
||||||
|
#define DRM_MODE_PROP_EXTENDED_TYPE 0x0000ffc0
|
||||||
|
#define DRM_MODE_PROP_TYPE(n) ((n) << 6)
|
||||||
|
#define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1)
|
||||||
|
#define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2)
|
||||||
|
|
||||||
struct drm_mode_property_enum {
|
struct drm_mode_property_enum {
|
||||||
__u64 value;
|
__u64 value;
|
||||||
char name[DRM_PROP_NAME_LEN];
|
char name[DRM_PROP_NAME_LEN];
|
||||||
@ -262,15 +284,6 @@ struct drm_mode_connector_set_property {
|
|||||||
__u32 connector_id;
|
__u32 connector_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DRM_MODE_OBJECT_CRTC 0xcccccccc
|
|
||||||
#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
|
|
||||||
#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
|
|
||||||
#define DRM_MODE_OBJECT_MODE 0xdededede
|
|
||||||
#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
|
|
||||||
#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
|
|
||||||
#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
|
|
||||||
#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
|
|
||||||
|
|
||||||
struct drm_mode_obj_get_properties {
|
struct drm_mode_obj_get_properties {
|
||||||
__u64 props_ptr;
|
__u64 props_ptr;
|
||||||
__u64 prop_values_ptr;
|
__u64 prop_values_ptr;
|
||||||
@ -333,6 +346,8 @@ struct drm_mode_fb_cmd2 {
|
|||||||
#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
|
#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
|
||||||
#define DRM_MODE_FB_DIRTY_FLAGS 0x03
|
#define DRM_MODE_FB_DIRTY_FLAGS 0x03
|
||||||
|
|
||||||
|
#define DRM_MODE_FB_DIRTY_MAX_CLIPS 256
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mark a region of a framebuffer as dirty.
|
* Mark a region of a framebuffer as dirty.
|
||||||
*
|
*
|
||||||
@ -373,20 +388,21 @@ struct drm_mode_mode_cmd {
|
|||||||
struct drm_mode_modeinfo mode;
|
struct drm_mode_modeinfo mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DRM_MODE_CURSOR_BO (1<<0)
|
#define DRM_MODE_CURSOR_BO 0x01
|
||||||
#define DRM_MODE_CURSOR_MOVE (1<<1)
|
#define DRM_MODE_CURSOR_MOVE 0x02
|
||||||
|
#define DRM_MODE_CURSOR_FLAGS 0x03
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* depending on the value in flags diffrent members are used.
|
* depending on the value in flags different members are used.
|
||||||
*
|
*
|
||||||
* CURSOR_BO uses
|
* CURSOR_BO uses
|
||||||
* crtc
|
* crtc_id
|
||||||
* width
|
* width
|
||||||
* height
|
* height
|
||||||
* handle - if 0 turns the cursor of
|
* handle - if 0 turns the cursor off
|
||||||
*
|
*
|
||||||
* CURSOR_MOVE uses
|
* CURSOR_MOVE uses
|
||||||
* crtc
|
* crtc_id
|
||||||
* x
|
* x
|
||||||
* y
|
* y
|
||||||
*/
|
*/
|
||||||
|
@ -33,6 +33,30 @@
|
|||||||
* subject to backwards-compatibility constraints.
|
* subject to backwards-compatibility constraints.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DOC: uevents generated by i915 on it's device node
|
||||||
|
*
|
||||||
|
* I915_L3_PARITY_UEVENT - Generated when the driver receives a parity mismatch
|
||||||
|
* event from the gpu l3 cache. Additional information supplied is ROW,
|
||||||
|
* BANK, SUBBANK, SLICE of the affected cacheline. Userspace should keep
|
||||||
|
* track of these events and if a specific cache-line seems to have a
|
||||||
|
* persistent error remap it with the l3 remapping tool supplied in
|
||||||
|
* intel-gpu-tools. The value supplied with the event is always 1.
|
||||||
|
*
|
||||||
|
* I915_ERROR_UEVENT - Generated upon error detection, currently only via
|
||||||
|
* hangcheck. The error detection event is a good indicator of when things
|
||||||
|
* began to go badly. The value supplied with the event is a 1 upon error
|
||||||
|
* detection, and a 0 upon reset completion, signifying no more error
|
||||||
|
* exists. NOTE: Disabling hangcheck or reset via module parameter will
|
||||||
|
* cause the related events to not be seen.
|
||||||
|
*
|
||||||
|
* I915_RESET_UEVENT - Event is generated just before an attempt to reset the
|
||||||
|
* the GPU. The value supplied with the event is always 1. NOTE: Disable
|
||||||
|
* reset via module parameter will cause this event to not be seen.
|
||||||
|
*/
|
||||||
|
#define I915_L3_PARITY_UEVENT "L3_PARITY_ERROR"
|
||||||
|
#define I915_ERROR_UEVENT "ERROR"
|
||||||
|
#define I915_RESET_UEVENT "RESET"
|
||||||
|
|
||||||
/* Each region is a minimum of 16k, and there are at most 255 of them.
|
/* Each region is a minimum of 16k, and there are at most 255 of them.
|
||||||
*/
|
*/
|
||||||
@ -195,8 +219,8 @@ typedef struct _drm_i915_sarea {
|
|||||||
#define DRM_I915_GEM_WAIT 0x2c
|
#define DRM_I915_GEM_WAIT 0x2c
|
||||||
#define DRM_I915_GEM_CONTEXT_CREATE 0x2d
|
#define DRM_I915_GEM_CONTEXT_CREATE 0x2d
|
||||||
#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e
|
#define DRM_I915_GEM_CONTEXT_DESTROY 0x2e
|
||||||
#define DRM_I915_GEM_SET_CACHEING 0x2f
|
#define DRM_I915_GEM_SET_CACHING 0x2f
|
||||||
#define DRM_I915_GEM_GET_CACHEING 0x30
|
#define DRM_I915_GEM_GET_CACHING 0x30
|
||||||
#define DRM_I915_REG_READ 0x31
|
#define DRM_I915_REG_READ 0x31
|
||||||
#define DRM_I915_GET_RESET_STATS 0x32
|
#define DRM_I915_GET_RESET_STATS 0x32
|
||||||
|
|
||||||
@ -305,7 +329,15 @@ typedef struct drm_i915_irq_wait {
|
|||||||
#define I915_PARAM_HAS_LLC 17
|
#define I915_PARAM_HAS_LLC 17
|
||||||
#define I915_PARAM_HAS_ALIASING_PPGTT 18
|
#define I915_PARAM_HAS_ALIASING_PPGTT 18
|
||||||
#define I915_PARAM_HAS_WAIT_TIMEOUT 19
|
#define I915_PARAM_HAS_WAIT_TIMEOUT 19
|
||||||
|
#define I915_PARAM_HAS_SEMAPHORES 20
|
||||||
|
#define I915_PARAM_HAS_PRIME_VMAP_FLUSH 21
|
||||||
#define I915_PARAM_HAS_VEBOX 22
|
#define I915_PARAM_HAS_VEBOX 22
|
||||||
|
#define I915_PARAM_HAS_SECURE_BATCHES 23
|
||||||
|
#define I915_PARAM_HAS_PINNED_BATCHES 24
|
||||||
|
#define I915_PARAM_HAS_EXEC_NO_RELOC 25
|
||||||
|
#define I915_PARAM_HAS_EXEC_HANDLE_LUT 26
|
||||||
|
#define I915_PARAM_HAS_WT 27
|
||||||
|
#define I915_PARAM_CMD_PARSER_VERSION 28
|
||||||
|
|
||||||
typedef struct drm_i915_getparam {
|
typedef struct drm_i915_getparam {
|
||||||
int param;
|
int param;
|
||||||
@ -626,7 +658,11 @@ struct drm_i915_gem_exec_object2 {
|
|||||||
__u64 offset;
|
__u64 offset;
|
||||||
|
|
||||||
#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
|
#define EXEC_OBJECT_NEEDS_FENCE (1<<0)
|
||||||
|
#define EXEC_OBJECT_NEEDS_GTT (1<<1)
|
||||||
|
#define EXEC_OBJECT_WRITE (1<<2)
|
||||||
|
#define __EXEC_OBJECT_UNKNOWN_FLAGS -(EXEC_OBJECT_WRITE<<1)
|
||||||
__u64 flags;
|
__u64 flags;
|
||||||
|
|
||||||
__u64 rsvd1;
|
__u64 rsvd1;
|
||||||
__u64 rsvd2;
|
__u64 rsvd2;
|
||||||
};
|
};
|
||||||
@ -672,6 +708,34 @@ struct drm_i915_gem_execbuffer2 {
|
|||||||
/** Resets the SO write offset registers for transform feedback on gen7. */
|
/** Resets the SO write offset registers for transform feedback on gen7. */
|
||||||
#define I915_EXEC_GEN7_SOL_RESET (1<<8)
|
#define I915_EXEC_GEN7_SOL_RESET (1<<8)
|
||||||
|
|
||||||
|
/** Request a privileged ("secure") batch buffer. Note only available for
|
||||||
|
* DRM_ROOT_ONLY | DRM_MASTER processes.
|
||||||
|
*/
|
||||||
|
#define I915_EXEC_SECURE (1<<9)
|
||||||
|
|
||||||
|
/** Inform the kernel that the batch is and will always be pinned. This
|
||||||
|
* negates the requirement for a workaround to be performed to avoid
|
||||||
|
* an incoherent CS (such as can be found on 830/845). If this flag is
|
||||||
|
* not passed, the kernel will endeavour to make sure the batch is
|
||||||
|
* coherent with the CS before execution. If this flag is passed,
|
||||||
|
* userspace assumes the responsibility for ensuring the same.
|
||||||
|
*/
|
||||||
|
#define I915_EXEC_IS_PINNED (1<<10)
|
||||||
|
|
||||||
|
/** Provide a hint to the kernel that the command stream and auxiliary
|
||||||
|
* state buffers already holds the correct presumed addresses and so the
|
||||||
|
* relocation process may be skipped if no buffers need to be moved in
|
||||||
|
* preparation for the execbuffer.
|
||||||
|
*/
|
||||||
|
#define I915_EXEC_NO_RELOC (1<<11)
|
||||||
|
|
||||||
|
/** Use the reloc.handle as an index into the exec object array rather
|
||||||
|
* than as the per-file handle.
|
||||||
|
*/
|
||||||
|
#define I915_EXEC_HANDLE_LUT (1<<12)
|
||||||
|
|
||||||
|
#define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1)
|
||||||
|
|
||||||
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
|
#define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
|
||||||
#define i915_execbuffer2_set_context_id(eb2, context) \
|
#define i915_execbuffer2_set_context_id(eb2, context) \
|
||||||
(eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK
|
(eb2).rsvd1 = context & I915_EXEC_CONTEXT_ID_MASK
|
||||||
@ -708,21 +772,45 @@ struct drm_i915_gem_busy {
|
|||||||
__u32 busy;
|
__u32 busy;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define I915_CACHEING_NONE 0
|
/**
|
||||||
#define I915_CACHEING_CACHED 1
|
* I915_CACHING_NONE
|
||||||
|
*
|
||||||
|
* GPU access is not coherent with cpu caches. Default for machines without an
|
||||||
|
* LLC.
|
||||||
|
*/
|
||||||
|
#define I915_CACHING_NONE 0
|
||||||
|
/**
|
||||||
|
* I915_CACHING_CACHED
|
||||||
|
*
|
||||||
|
* GPU access is coherent with cpu caches and furthermore the data is cached in
|
||||||
|
* last-level caches shared between cpu cores and the gpu GT. Default on
|
||||||
|
* machines with HAS_LLC.
|
||||||
|
*/
|
||||||
|
#define I915_CACHING_CACHED 1
|
||||||
|
/**
|
||||||
|
* I915_CACHING_DISPLAY
|
||||||
|
*
|
||||||
|
* Special GPU caching mode which is coherent with the scanout engines.
|
||||||
|
* Transparently falls back to I915_CACHING_NONE on platforms where no special
|
||||||
|
* cache mode (like write-through or gfdt flushing) is available. The kernel
|
||||||
|
* automatically sets this mode when using a buffer as a scanout target.
|
||||||
|
* Userspace can manually set this mode to avoid a costly stall and clflush in
|
||||||
|
* the hotpath of drawing the first frame.
|
||||||
|
*/
|
||||||
|
#define I915_CACHING_DISPLAY 2
|
||||||
|
|
||||||
struct drm_i915_gem_cacheing {
|
struct drm_i915_gem_caching {
|
||||||
/**
|
/**
|
||||||
* Handle of the buffer to set/get the cacheing level of. */
|
* Handle of the buffer to set/get the caching level of. */
|
||||||
__u32 handle;
|
__u32 handle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cacheing level to apply or return value
|
* Cacheing level to apply or return value
|
||||||
*
|
*
|
||||||
* bits0-15 are for generic cacheing control (i.e. the above defined
|
* bits0-15 are for generic caching control (i.e. the above defined
|
||||||
* values). bits16-31 are reserved for platform-specific variations
|
* values). bits16-31 are reserved for platform-specific variations
|
||||||
* (e.g. l3$ caching on gen7). */
|
* (e.g. l3$ caching on gen7). */
|
||||||
__u32 cacheing;
|
__u32 caching;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define I915_TILING_NONE 0
|
#define I915_TILING_NONE 0
|
||||||
@ -962,6 +1050,15 @@ struct drm_i915_reset_stats {
|
|||||||
__u32 pad;
|
__u32 pad;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct drm_i915_mask {
|
||||||
|
__u32 handle;
|
||||||
|
__u32 width;
|
||||||
|
__u32 height;
|
||||||
|
__u32 bo_size;
|
||||||
|
__u32 bo_pitch;
|
||||||
|
__u32 bo_map;
|
||||||
|
};
|
||||||
|
|
||||||
struct drm_i915_fb_info {
|
struct drm_i915_fb_info {
|
||||||
__u32 name;
|
__u32 name;
|
||||||
__u32 width;
|
__u32 width;
|
||||||
|
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -UWIN32 -UWindows -U_WINDOWS -U_WIN32 -U__WIN32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -UWIN32 -UWindows -U_WINDOWS -U_WIN32 -U__WIN32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
LDFLAGS= -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
||||||
LDFLAGS+= --out-implib $(LIBRARY).dll.a
|
LDFLAGS+= --out-implib $(LIBRARY).dll.a
|
||||||
|
@ -6,7 +6,7 @@ LD = kos32-ld
|
|||||||
CPP= kos32-g++
|
CPP= kos32-g++
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
ARFLAGS= crs
|
ARFLAGS= crs
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ CC = kos32-gcc
|
|||||||
AR = kos32-ar
|
AR = kos32-ar
|
||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
|
|
||||||
CFLAGS = -c -O2 -fomit-frame-pointer -DBUILD_DLL -DMISSING_SYSCALL_NAMES
|
CFLAGS = -c -O2 -fno-ident -fomit-frame-pointer -DBUILD_DLL -DMISSING_SYSCALL_NAMES
|
||||||
LDFLAGS = -shared -s -T libcdll.lds --out-implib libc.dll.a --image-base 0
|
LDFLAGS = -shared -s -T libcdll.lds --out-implib libc.dll.a --image-base 0
|
||||||
#LDFLAGS+= --output-def libc.orig.def
|
#LDFLAGS+= --output-def libc.orig.def
|
||||||
ARFLAGS = crs
|
ARFLAGS = crs
|
||||||
|
@ -517,6 +517,16 @@ int link_image(void *img_base, PIMAGE_IMPORT_DESCRIPTOR imp)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void send_dbg_msg(void *msg)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"int $0x40"
|
||||||
|
::"a"(69),
|
||||||
|
"b"(10),
|
||||||
|
"S"(msg));
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
int link_app()
|
int link_app()
|
||||||
{
|
{
|
||||||
struct app_hdr *header = NULL;
|
struct app_hdr *header = NULL;
|
||||||
@ -524,8 +534,38 @@ int link_app()
|
|||||||
|
|
||||||
imp = (PIMAGE_IMPORT_DESCRIPTOR)header->__idata_start;
|
imp = (PIMAGE_IMPORT_DESCRIPTOR)header->__idata_start;
|
||||||
|
|
||||||
return link_image(NULL, imp);
|
if(link_image(NULL, imp))
|
||||||
|
{
|
||||||
|
|
||||||
|
#ifdef DEBUG_INFO
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
void *start;
|
||||||
|
uint32_t end;
|
||||||
|
char name[24];
|
||||||
|
} dbg_msg;
|
||||||
|
|
||||||
|
module_t *mod = &libc_dll;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
printf("%s %x - %x\n",
|
||||||
|
mod->img_name, mod->start, mod->end);
|
||||||
|
|
||||||
|
// asm volatile("int3");
|
||||||
|
|
||||||
|
dbg_msg.start = mod->start;
|
||||||
|
dbg_msg.end = mod->end;
|
||||||
|
strcpy(dbg_msg.name, mod->img_name);
|
||||||
|
send_dbg_msg(&dbg_msg);
|
||||||
|
mod = (module_t*)mod->list.next;
|
||||||
|
}while(mod != &libc_dll);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ AR = kos32-ar
|
|||||||
LD = kos32-ld
|
LD = kos32-ld
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -Wall -Winline -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -Wall -Winline -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
LDFLAGS = -shared -s -nostdlib -T ../newlib/dll.lds --entry _DllStartup --image-base=0
|
||||||
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
LDFLAGS+= --out-implib lib$(LIBRARY).dll.a
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
LIBRARY= librender
|
LIBRARY= librender
|
||||||
|
|
||||||
CC=gcc
|
CC=gcc
|
||||||
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fomit-frame-pointer
|
CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -O2 -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
AR= ar
|
AR= ar
|
||||||
|
|
||||||
|
21
contrib/sdk/sources/sound/Makefile
Normal file
21
contrib/sdk/sources/sound/Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
AR = kos32-ar
|
||||||
|
FASM:= fasm.exe
|
||||||
|
|
||||||
|
TARGET:= libsound
|
||||||
|
|
||||||
|
dirs := ./src
|
||||||
|
|
||||||
|
target_srcs:= $(foreach dir,$(dirs),$(wildcard $(dir)/*.asm))
|
||||||
|
|
||||||
|
target_objs:= $(subst .asm,.o,$(target_srcs))
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGET).a
|
||||||
|
|
||||||
|
%.o: %.asm
|
||||||
|
$(FASM) $< $@
|
||||||
|
|
||||||
|
$(TARGET).a: $(target_objs) Makefile
|
||||||
|
$(AR) cvrs $@ $(target_objs)
|
||||||
|
mv -f $@ ../../lib
|
42
contrib/sdk/sources/sound/include/snd.inc
Normal file
42
contrib/sdk/sources/sound/include/snd.inc
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
|
||||||
|
struc CTRL_INFO
|
||||||
|
{ .pci_cmd dd ?
|
||||||
|
.irq dd ?
|
||||||
|
.glob_cntrl dd ?
|
||||||
|
.glob_sta dd ?
|
||||||
|
.codec_io_base dd ?
|
||||||
|
.ctrl_io_base dd ?
|
||||||
|
.codec_mem_base dd ?
|
||||||
|
.ctrl_mem_base dd ?
|
||||||
|
.codec_id dd ?
|
||||||
|
}
|
||||||
|
CTRL_INFO_SIZE equ 9*4
|
||||||
|
|
||||||
|
SRV_GETVERSION equ 0
|
||||||
|
SND_CREATE_BUFF equ 1
|
||||||
|
SND_DESTROY_BUFF equ 2
|
||||||
|
SND_SETFORMAT equ 3
|
||||||
|
SND_GETFORMAT equ 4
|
||||||
|
SND_RESET equ 5
|
||||||
|
SND_SETPOS equ 6
|
||||||
|
SND_GETPOS equ 7
|
||||||
|
SND_SETBUFF equ 8
|
||||||
|
SND_OUT equ 9
|
||||||
|
SND_PLAY equ 10
|
||||||
|
SND_STOP equ 11
|
||||||
|
SND_SETVOLUME equ 12
|
||||||
|
SND_GETVOLUME equ 13
|
||||||
|
SND_SETPAN equ 14
|
||||||
|
SND_GETPAN equ 15
|
||||||
|
SND_GETBUFFSIZE equ 16
|
||||||
|
SND_GETFREESPACE equ 17
|
||||||
|
SND_SETTIMEBASE equ 18
|
||||||
|
SND_GETTIMESTAMP equ 19
|
||||||
|
|
||||||
|
|
||||||
|
DEV_SET_BUFF equ 4
|
||||||
|
DEV_NOTIFY equ 5
|
||||||
|
DEV_SET_MASTERVOL equ 6
|
||||||
|
DEV_GET_MASTERVOL equ 7
|
||||||
|
DEV_GET_INFO equ 8
|
||||||
|
|
142
contrib/sdk/sources/sound/include/sound.h
Normal file
142
contrib/sdk/sources/sound/include/sound.h
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
|
||||||
|
#ifndef _SOUND_H_
|
||||||
|
#define _SOUND_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SOUND_VERSION 0x0101
|
||||||
|
#define PCM_ALL 0
|
||||||
|
|
||||||
|
#define PCM_OUT 0x08000000
|
||||||
|
#define PCM_RING 0x10000000
|
||||||
|
#define PCM_STATIC 0x20000000
|
||||||
|
#define PCM_FLOAT 0x40000000
|
||||||
|
#define PCM_FILTER 0x80000000
|
||||||
|
|
||||||
|
#define PCM_2_16_48 1
|
||||||
|
#define PCM_1_16_48 2
|
||||||
|
#define PCM_2_16_44 3
|
||||||
|
#define PCM_1_16_44 4
|
||||||
|
#define PCM_2_16_32 5
|
||||||
|
#define PCM_1_16_32 6
|
||||||
|
#define PCM_2_16_24 7
|
||||||
|
#define PCM_1_16_24 8
|
||||||
|
#define PCM_2_16_22 9
|
||||||
|
#define PCM_1_16_22 10
|
||||||
|
#define PCM_2_16_16 11
|
||||||
|
#define PCM_1_16_16 12
|
||||||
|
#define PCM_2_16_12 13
|
||||||
|
#define PCM_1_16_12 14
|
||||||
|
#define PCM_2_16_11 15
|
||||||
|
#define PCM_1_16_11 16
|
||||||
|
#define PCM_2_16_8 17
|
||||||
|
#define PCM_1_16_8 18
|
||||||
|
#define PCM_2_8_48 19
|
||||||
|
#define PCM_1_8_48 20
|
||||||
|
#define PCM_2_8_44 21
|
||||||
|
#define PCM_1_8_44 22
|
||||||
|
#define PCM_2_8_32 23
|
||||||
|
#define PCM_1_8_32 24
|
||||||
|
#define PCM_2_8_24 25
|
||||||
|
#define PCM_1_8_24 26
|
||||||
|
#define PCM_2_8_22 27
|
||||||
|
#define PCM_1_8_22 28
|
||||||
|
#define PCM_2_8_16 29
|
||||||
|
#define PCM_1_8_16 30
|
||||||
|
#define PCM_2_8_12 31
|
||||||
|
#define PCM_1_8_12 32
|
||||||
|
#define PCM_2_8_11 33
|
||||||
|
#define PCM_1_8_11 34
|
||||||
|
#define PCM_2_8_8 35
|
||||||
|
#define PCM_1_8_8 36
|
||||||
|
|
||||||
|
#define SRV_GETVERSION 0
|
||||||
|
#define SND_CREATE_BUFF 1
|
||||||
|
#define SND_DESTROY_BUFF 2
|
||||||
|
#define SND_SETFORMAT 3
|
||||||
|
#define SND_GETFORMAT 4
|
||||||
|
#define SND_RESET 5
|
||||||
|
#define SND_SETPOS 6
|
||||||
|
#define SND_GETPOS 7
|
||||||
|
#define SND_SETBUFF 8
|
||||||
|
#define SND_OUT 9
|
||||||
|
#define SND_PLAY 10
|
||||||
|
#define SND_STOP 11
|
||||||
|
#define SND_SETVOLUME 12
|
||||||
|
#define SND_GETVOLUME 13
|
||||||
|
#define SND_SETPAN 14
|
||||||
|
#define SND_GETPAN 15
|
||||||
|
#define SND_GETBUFFSIZE 16
|
||||||
|
#define SND_GETFREESPACE 17
|
||||||
|
#define SND_SETTIMEBASE 18
|
||||||
|
#define SND_GETTIMESTAMP 19
|
||||||
|
|
||||||
|
|
||||||
|
#define PLAY_SYNC 0x80000000
|
||||||
|
|
||||||
|
typedef unsigned int SNDBUF;
|
||||||
|
|
||||||
|
int _stdcall InitSound(int *version);
|
||||||
|
|
||||||
|
int _stdcall CreateBuffer(unsigned int format,int size,SNDBUF *buf);
|
||||||
|
int _stdcall DestroyBuffer(SNDBUF hBuff);
|
||||||
|
|
||||||
|
int _stdcall SetFormat(SNDBUF hBuff, unsigned int format);
|
||||||
|
int _stdcall GetFormat(SNDBUF hBuff, unsigned int *format);
|
||||||
|
|
||||||
|
int _stdcall ResetBuffer(SNDBUF hBuff, unsigned int flags);
|
||||||
|
int _stdcall SetBufferPos(SNDBUF hBuff, int offset);
|
||||||
|
int _stdcall GetBufferPos(SNDBUF hBuff, int *offset);
|
||||||
|
int _stdcall GetBufferSize(SNDBUF hBuff, int *size);
|
||||||
|
int _stdcall GetBufferFree(SNDBUF hBuff, int *free);
|
||||||
|
|
||||||
|
int _stdcall SetBuffer(SNDBUF hBuff,void* buff,
|
||||||
|
int offs, int size);
|
||||||
|
int _stdcall WaveOut(SNDBUF hBuff,void *buff, int size);
|
||||||
|
int _stdcall PlayBuffer(SNDBUF hBuff,unsigned int flags);
|
||||||
|
int _stdcall StopBuffer(SNDBUF hBuff);
|
||||||
|
|
||||||
|
int _stdcall SetVolume(SNDBUF hBuff, int left, int right);
|
||||||
|
int _stdcall GetVolume(SNDBUF hBuff, int *left, int *right);
|
||||||
|
int _stdcall SetPan(SNDBUF hBuff, int pan);
|
||||||
|
int _stdcall GetPan(SNDBUF hBuff, int *pan);
|
||||||
|
|
||||||
|
int _stdcall GetMasterVol(int* vol);
|
||||||
|
int _stdcall SetMasterVol(int vol);
|
||||||
|
|
||||||
|
int _stdcall SetTimeBase(SNDBUF hBuff, double base);
|
||||||
|
int _stdcall GetTimeStamp(SNDBUF hBuff, double *stamp);
|
||||||
|
int _stdcall GetDevTime(int *stamp);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
unsigned int riff_id;
|
||||||
|
unsigned int riff_size;
|
||||||
|
unsigned int riff_format;
|
||||||
|
|
||||||
|
unsigned int fmt_id;
|
||||||
|
unsigned int fmt_size;
|
||||||
|
|
||||||
|
unsigned short int wFormatTag;
|
||||||
|
unsigned short int nChannels;
|
||||||
|
unsigned int nSamplesPerSec;
|
||||||
|
unsigned int nAvgBytesPerSec;
|
||||||
|
unsigned short int nBlockAlign;
|
||||||
|
unsigned short int wBitsPerSample;
|
||||||
|
unsigned int data_id;
|
||||||
|
unsigned int data_size;
|
||||||
|
} WAVEHEADER;
|
||||||
|
|
||||||
|
|
||||||
|
unsigned int _stdcall test_wav(WAVEHEADER *hdr);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C"
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif //_SOUND_H_
|
118
contrib/sdk/sources/sound/src/init.asm
Normal file
118
contrib/sdk/sources/sound/src/init.asm
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _InitSound@4
|
||||||
|
public _CreateBuffer@12
|
||||||
|
public _DestroyBuffer@4
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_InitSound@4: ;p_ver:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 16
|
||||||
|
mov ecx, szInfinity
|
||||||
|
int 0x40
|
||||||
|
mov [hSound], eax
|
||||||
|
test eax, eax
|
||||||
|
jz .fail
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 16
|
||||||
|
mov ecx, szSound
|
||||||
|
int 0x40
|
||||||
|
mov [hrdwSound], eax
|
||||||
|
|
||||||
|
lea eax, [esp+12] ;p_ver
|
||||||
|
xor ebx, ebx
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push ebx ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SRV_GETVERSION ;.code
|
||||||
|
push [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp ;[handle]
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
.fail:
|
||||||
|
or eax, -1
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_CreateBuffer@12: ;format:dword,size:dword,p_str:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
lea eax, [esp+20] ;p_str
|
||||||
|
lea ebx, [esp+12] ;format
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 8 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_CREATE_BUFF;.code
|
||||||
|
push [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24 ;io_cintrol
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 12
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_DestroyBuffer@4: ;str:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_DESTROY_BUFF;.code
|
||||||
|
push [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp ;[handle]
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
|
||||||
|
|
||||||
|
section '.data' align 16 data readable writable
|
||||||
|
|
||||||
|
public hSound
|
||||||
|
public hrdwSound
|
||||||
|
|
||||||
|
hSound dd ?
|
||||||
|
hrdwSound dd ?
|
||||||
|
|
||||||
|
szInfinity db 'INFINITY',0
|
||||||
|
szSound db 'SOUND',0
|
||||||
|
|
||||||
|
|
268
contrib/sdk/sources/sound/src/proc32.inc
Normal file
268
contrib/sdk/sources/sound/src/proc32.inc
Normal file
@ -0,0 +1,268 @@
|
|||||||
|
|
||||||
|
; Macroinstructions for defining and calling procedures
|
||||||
|
|
||||||
|
macro stdcall proc,[arg] ; directly call STDCALL procedure
|
||||||
|
{ common
|
||||||
|
if ~ arg eq
|
||||||
|
reverse
|
||||||
|
pushd arg
|
||||||
|
common
|
||||||
|
end if
|
||||||
|
call proc }
|
||||||
|
|
||||||
|
macro invoke proc,[arg] ; indirectly call STDCALL procedure
|
||||||
|
{ common
|
||||||
|
if ~ arg eq
|
||||||
|
reverse
|
||||||
|
pushd arg
|
||||||
|
common
|
||||||
|
end if
|
||||||
|
call [proc] }
|
||||||
|
|
||||||
|
macro ccall proc,[arg] ; directly call CDECL procedure
|
||||||
|
{ common
|
||||||
|
size@ccall = 0
|
||||||
|
if ~ arg eq
|
||||||
|
reverse
|
||||||
|
pushd arg
|
||||||
|
size@ccall = size@ccall+4
|
||||||
|
common
|
||||||
|
end if
|
||||||
|
call proc
|
||||||
|
if size@ccall
|
||||||
|
add esp,size@ccall
|
||||||
|
end if }
|
||||||
|
|
||||||
|
macro cinvoke proc,[arg] ; indirectly call CDECL procedure
|
||||||
|
{ common
|
||||||
|
size@ccall = 0
|
||||||
|
if ~ arg eq
|
||||||
|
reverse
|
||||||
|
pushd arg
|
||||||
|
size@ccall = size@ccall+4
|
||||||
|
common
|
||||||
|
end if
|
||||||
|
call [proc]
|
||||||
|
if size@ccall
|
||||||
|
add esp,size@ccall
|
||||||
|
end if }
|
||||||
|
|
||||||
|
macro proc [args] ; define procedure
|
||||||
|
{ common
|
||||||
|
match name params, args>
|
||||||
|
\{ define@proc name,<params \} }
|
||||||
|
|
||||||
|
prologue@proc equ prologuedef
|
||||||
|
|
||||||
|
macro prologuedef procname,flag,parmbytes,localbytes,reglist
|
||||||
|
{ if parmbytes | localbytes
|
||||||
|
push ebp
|
||||||
|
mov ebp,esp
|
||||||
|
if localbytes
|
||||||
|
sub esp,localbytes
|
||||||
|
end if
|
||||||
|
end if
|
||||||
|
irps reg, reglist \{ push reg \} }
|
||||||
|
|
||||||
|
epilogue@proc equ epiloguedef
|
||||||
|
|
||||||
|
macro epiloguedef procname,flag,parmbytes,localbytes,reglist
|
||||||
|
{ irps reg, reglist \{ reverse pop reg \}
|
||||||
|
if parmbytes | localbytes
|
||||||
|
leave
|
||||||
|
end if
|
||||||
|
if flag and 10000b
|
||||||
|
retn
|
||||||
|
else
|
||||||
|
retn parmbytes
|
||||||
|
end if }
|
||||||
|
|
||||||
|
macro define@proc name,statement
|
||||||
|
{ local params,flag,regs,parmbytes,localbytes,current
|
||||||
|
if used name
|
||||||
|
name:
|
||||||
|
match =stdcall args, statement \{ params equ args
|
||||||
|
flag = 11b \}
|
||||||
|
match =stdcall, statement \{ params equ
|
||||||
|
flag = 11b \}
|
||||||
|
match =c args, statement \{ params equ args
|
||||||
|
flag = 10001b \}
|
||||||
|
match =c, statement \{ params equ
|
||||||
|
flag = 10001b \}
|
||||||
|
match =params, params \{ params equ statement
|
||||||
|
flag = 0 \}
|
||||||
|
virtual at ebp+8
|
||||||
|
match =uses reglist=,args, params \{ regs equ reglist
|
||||||
|
params equ args \}
|
||||||
|
match =regs =uses reglist, regs params \{ regs equ reglist
|
||||||
|
params equ \}
|
||||||
|
match =regs, regs \{ regs equ \}
|
||||||
|
match =,args, params \{ defargs@proc args \}
|
||||||
|
match =args@proc args, args@proc params \{ defargs@proc args \}
|
||||||
|
parmbytes = $ - (ebp+8)
|
||||||
|
end virtual
|
||||||
|
name # % = parmbytes/4
|
||||||
|
all@vars equ
|
||||||
|
current = 0
|
||||||
|
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \}
|
||||||
|
macro locals
|
||||||
|
\{ virtual at ebp-localbytes+current
|
||||||
|
macro label . \\{ deflocal@proc .,:, \\}
|
||||||
|
struc db [val] \\{ \common deflocal@proc .,db,val \\}
|
||||||
|
struc dw [val] \\{ \common deflocal@proc .,dw,val \\}
|
||||||
|
struc dp [val] \\{ \common deflocal@proc .,dp,val \\}
|
||||||
|
struc dd [val] \\{ \common deflocal@proc .,dd,val \\}
|
||||||
|
struc dt [val] \\{ \common deflocal@proc .,dt,val \\}
|
||||||
|
struc dq [val] \\{ \common deflocal@proc .,dq,val \\}
|
||||||
|
struc rb cnt \\{ deflocal@proc .,rb cnt, \\}
|
||||||
|
struc rw cnt \\{ deflocal@proc .,rw cnt, \\}
|
||||||
|
struc rp cnt \\{ deflocal@proc .,rp cnt, \\}
|
||||||
|
struc rd cnt \\{ deflocal@proc .,rd cnt, \\}
|
||||||
|
struc rt cnt \\{ deflocal@proc .,rt cnt, \\}
|
||||||
|
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \}
|
||||||
|
macro endl
|
||||||
|
\{ purge label
|
||||||
|
restruc db,dw,dp,dd,dt,dq
|
||||||
|
restruc rb,rw,rp,rd,rt,rq
|
||||||
|
restruc byte,word,dword,pword,tword,qword
|
||||||
|
current = $-(ebp-localbytes)
|
||||||
|
end virtual \}
|
||||||
|
macro ret operand
|
||||||
|
\{ match any, operand \\{ retn operand \\}
|
||||||
|
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs>
|
||||||
|
\\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \}
|
||||||
|
macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2
|
||||||
|
end if \} }
|
||||||
|
|
||||||
|
macro defargs@proc [arg]
|
||||||
|
{ common
|
||||||
|
if ~ arg eq
|
||||||
|
forward
|
||||||
|
local ..arg,current@arg
|
||||||
|
match argname:type, arg
|
||||||
|
\{ current@arg equ argname
|
||||||
|
label ..arg type
|
||||||
|
argname equ ..arg
|
||||||
|
if dqword eq type
|
||||||
|
dd ?,?,?,?
|
||||||
|
else if tbyte eq type
|
||||||
|
dd ?,?,?
|
||||||
|
else if qword eq type | pword eq type
|
||||||
|
dd ?,?
|
||||||
|
else
|
||||||
|
dd ?
|
||||||
|
end if \}
|
||||||
|
match =current@arg,current@arg
|
||||||
|
\{ current@arg equ arg
|
||||||
|
arg equ ..arg
|
||||||
|
..arg dd ? \}
|
||||||
|
common
|
||||||
|
args@proc equ current@arg
|
||||||
|
forward
|
||||||
|
restore current@arg
|
||||||
|
common
|
||||||
|
end if }
|
||||||
|
|
||||||
|
macro deflocal@proc name,def,[val]
|
||||||
|
{ common
|
||||||
|
match vars, all@vars \{ all@vars equ all@vars, \}
|
||||||
|
all@vars equ all@vars name
|
||||||
|
forward
|
||||||
|
local ..var,..tmp
|
||||||
|
..var def val
|
||||||
|
match =?, val \{ ..tmp equ \}
|
||||||
|
match any =dup (=?), val \{ ..tmp equ \}
|
||||||
|
match tmp : value, ..tmp : val
|
||||||
|
\{ tmp: end virtual
|
||||||
|
initlocal@proc ..var,def value
|
||||||
|
virtual at tmp\}
|
||||||
|
common
|
||||||
|
match first rest, ..var, \{ name equ first \} }
|
||||||
|
|
||||||
|
macro initlocal@proc name,def
|
||||||
|
{ virtual at name
|
||||||
|
def
|
||||||
|
size@initlocal = $ - name
|
||||||
|
end virtual
|
||||||
|
position@initlocal = 0
|
||||||
|
while size@initlocal > position@initlocal
|
||||||
|
virtual at name
|
||||||
|
def
|
||||||
|
if size@initlocal - position@initlocal < 2
|
||||||
|
current@initlocal = 1
|
||||||
|
load byte@initlocal byte from name+position@initlocal
|
||||||
|
else if size@initlocal - position@initlocal < 4
|
||||||
|
current@initlocal = 2
|
||||||
|
load word@initlocal word from name+position@initlocal
|
||||||
|
else
|
||||||
|
current@initlocal = 4
|
||||||
|
load dword@initlocal dword from name+position@initlocal
|
||||||
|
end if
|
||||||
|
end virtual
|
||||||
|
if current@initlocal = 1
|
||||||
|
mov byte [name+position@initlocal],byte@initlocal
|
||||||
|
else if current@initlocal = 2
|
||||||
|
mov word [name+position@initlocal],word@initlocal
|
||||||
|
else
|
||||||
|
mov dword [name+position@initlocal],dword@initlocal
|
||||||
|
end if
|
||||||
|
position@initlocal = position@initlocal + current@initlocal
|
||||||
|
end while }
|
||||||
|
|
||||||
|
macro endp
|
||||||
|
{ purge ret,locals,endl
|
||||||
|
finish@proc
|
||||||
|
purge finish@proc
|
||||||
|
restore regs@proc
|
||||||
|
match all,args@proc \{ restore all \}
|
||||||
|
restore args@proc
|
||||||
|
match all,all@vars \{ restore all \} }
|
||||||
|
|
||||||
|
macro local [var]
|
||||||
|
{ common
|
||||||
|
locals
|
||||||
|
forward done@local equ
|
||||||
|
match varname[count]:vartype, var
|
||||||
|
\{ match =BYTE, vartype \\{ varname rb count
|
||||||
|
restore done@local \\}
|
||||||
|
match =WORD, vartype \\{ varname rw count
|
||||||
|
restore done@local \\}
|
||||||
|
match =DWORD, vartype \\{ varname rd count
|
||||||
|
restore done@local \\}
|
||||||
|
match =PWORD, vartype \\{ varname rp count
|
||||||
|
restore done@local \\}
|
||||||
|
match =QWORD, vartype \\{ varname rq count
|
||||||
|
restore done@local \\}
|
||||||
|
match =TBYTE, vartype \\{ varname rt count
|
||||||
|
restore done@local \\}
|
||||||
|
match =DQWORD, vartype \\{ label varname dqword
|
||||||
|
rq count+count
|
||||||
|
restore done@local \\}
|
||||||
|
match , done@local \\{ virtual
|
||||||
|
varname vartype
|
||||||
|
end virtual
|
||||||
|
rb count*sizeof.\#vartype
|
||||||
|
restore done@local \\} \}
|
||||||
|
match :varname:vartype, done@local:var
|
||||||
|
\{ match =BYTE, vartype \\{ varname db ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =WORD, vartype \\{ varname dw ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =DWORD, vartype \\{ varname dd ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =PWORD, vartype \\{ varname dp ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =QWORD, vartype \\{ varname dq ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =TBYTE, vartype \\{ varname dt ?
|
||||||
|
restore done@local \\}
|
||||||
|
match =DQWORD, vartype \\{ label varname dqword
|
||||||
|
dq ?,?
|
||||||
|
restore done@local \\}
|
||||||
|
match , done@local \\{ varname vartype
|
||||||
|
restore done@local \\} \}
|
||||||
|
match ,done@local
|
||||||
|
\{ var
|
||||||
|
restore done@local \}
|
||||||
|
common
|
||||||
|
endl }
|
62
contrib/sdk/sources/sound/src/setbuf.asm
Normal file
62
contrib/sdk/sources/sound/src/setbuf.asm
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _SetBuffer@16
|
||||||
|
public _PlayBuffer@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetBuffer@16: ;str:dword, src:dword, offs:dword, size:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 16 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETBUFF ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 16
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_PlayBuffer@8: ;str:dword,flags:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 8 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_PLAY ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
41
contrib/sdk/sources/sound/src/snd.inc
Normal file
41
contrib/sdk/sources/sound/src/snd.inc
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
|
||||||
|
struc CTRL_INFO
|
||||||
|
{ .pci_cmd dd ?
|
||||||
|
.irq dd ?
|
||||||
|
.glob_cntrl dd ?
|
||||||
|
.glob_sta dd ?
|
||||||
|
.codec_io_base dd ?
|
||||||
|
.ctrl_io_base dd ?
|
||||||
|
.codec_mem_base dd ?
|
||||||
|
.ctrl_mem_base dd ?
|
||||||
|
.codec_id dd ?
|
||||||
|
}
|
||||||
|
CTRL_INFO_SIZE equ 9*4
|
||||||
|
|
||||||
|
SRV_GETVERSION equ 0
|
||||||
|
SND_CREATE_BUFF equ 1
|
||||||
|
SND_DESTROY_BUFF equ 2
|
||||||
|
SND_SETFORMAT equ 3
|
||||||
|
SND_GETFORMAT equ 4
|
||||||
|
SND_RESET equ 5
|
||||||
|
SND_SETPOS equ 6
|
||||||
|
SND_GETPOS equ 7
|
||||||
|
SND_SETBUFF equ 8
|
||||||
|
SND_OUT equ 9
|
||||||
|
SND_PLAY equ 10
|
||||||
|
SND_STOP equ 11
|
||||||
|
SND_SETVOLUME equ 12
|
||||||
|
SND_GETVOLUME equ 13
|
||||||
|
SND_SETPAN equ 14
|
||||||
|
SND_GETPAN equ 15
|
||||||
|
SND_GETBUFFSIZE equ 16
|
||||||
|
SND_GETFREESPACE equ 17
|
||||||
|
SND_SETTIMEBASE equ 18
|
||||||
|
SND_GETTIMESTAMP equ 19
|
||||||
|
|
||||||
|
DEV_SET_BUFF equ 4
|
||||||
|
DEV_NOTIFY equ 5
|
||||||
|
DEV_SET_MASTERVOL equ 6
|
||||||
|
DEV_GET_MASTERVOL equ 7
|
||||||
|
DEV_GET_INFO equ 8
|
||||||
|
|
35
contrib/sdk/sources/sound/src/sndgetfmt.asm
Normal file
35
contrib/sdk/sources/sound/src/sndgetfmt.asm
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _GetFormat@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetFormat@8: ;str:dword, p_fmt:dword
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea eax, [esp+16] ;p_fmt
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETFORMAT ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
74
contrib/sdk/sources/sound/src/sndgetmvol.asm
Normal file
74
contrib/sdk/sources/sound/src/sndgetmvol.asm
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _GetMasterVol@4
|
||||||
|
|
||||||
|
extrn hrdwSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
proc _GetMasterVol@4 stdcall, pvol:dword
|
||||||
|
locals
|
||||||
|
handle dd ?
|
||||||
|
io_code dd ?
|
||||||
|
input dd ?
|
||||||
|
inp_size dd ?
|
||||||
|
output dd ?
|
||||||
|
out_size dd ?
|
||||||
|
endl
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
mov eax, [hrdwSound]
|
||||||
|
mov ecx, [pvol]
|
||||||
|
xor ebx, ebx
|
||||||
|
mov [handle], eax
|
||||||
|
mov [io_code], DEV_GET_MASTERVOL
|
||||||
|
mov [input], ebx
|
||||||
|
mov [inp_size], ebx
|
||||||
|
mov [output], ecx
|
||||||
|
mov [out_size], 4
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
lea ecx, [handle]
|
||||||
|
int 0x40
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
if 0
|
||||||
|
align 4
|
||||||
|
proc _GetDevInfo@8 stdcall, hSrv:dword, p_info:dword
|
||||||
|
locals
|
||||||
|
handle dd ?
|
||||||
|
io_code dd ?
|
||||||
|
input dd ?
|
||||||
|
inp_size dd ?
|
||||||
|
output dd ?
|
||||||
|
out_size dd ?
|
||||||
|
endl
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
mov eax, [hSrv]
|
||||||
|
xor ebx, ebx
|
||||||
|
mov ecx, [p_info]
|
||||||
|
|
||||||
|
mov [handle], eax
|
||||||
|
mov [io_code], DEV_GET_INFO
|
||||||
|
mov [input], ebx
|
||||||
|
mov [inp_size], ebx
|
||||||
|
mov [output], ecx
|
||||||
|
mov [out_size], CTRL_INFO_SIZE
|
||||||
|
|
||||||
|
lea eax, [handle]
|
||||||
|
stdcall CallServiceEx, eax
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
end if
|
35
contrib/sdk/sources/sound/src/sndgetpan.asm
Normal file
35
contrib/sdk/sources/sound/src/sndgetpan.asm
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _GetPan@8
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetPan@8: ;str:dword, p_pan:dword
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea eax, [esp+16]
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETPAN ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
36
contrib/sdk/sources/sound/src/sndgetpos.asm
Normal file
36
contrib/sdk/sources/sound/src/sndgetpos.asm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _GetBufferPos@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetBufferPos@8: ;str:dword, p_pos:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea eax, [esp+16]
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETPOS ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
63
contrib/sdk/sources/sound/src/sndgetsize.asm
Normal file
63
contrib/sdk/sources/sound/src/sndgetsize.asm
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _GetBufferSize@8
|
||||||
|
public _GetBufferFree@8
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetBufferSize@8: ;str:dword, p_size:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea eax, [esp+16]
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETBUFFSIZE;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetBufferFree@8: ;str:dword, p_free:dword
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
push 0 ;storage for free_space
|
||||||
|
mov eax, esp
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETFREESPACE ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
mov ecx, [esp+20] ; p_free
|
||||||
|
pop dword [ecx]
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
44
contrib/sdk/sources/sound/src/sndgetvol.asm
Normal file
44
contrib/sdk/sources/sound/src/sndgetvol.asm
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _GetVolume@12
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
proc _GetVolume@12 stdcall, str:dword, pleft:dword,pright:dword
|
||||||
|
locals
|
||||||
|
handle dd ?
|
||||||
|
io_code dd ?
|
||||||
|
input dd ?
|
||||||
|
inp_size dd ?
|
||||||
|
output dd ?
|
||||||
|
out_size dd ?
|
||||||
|
endl
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
mov eax, [hSound]
|
||||||
|
lea ebx, [str]
|
||||||
|
lea ecx, [pleft]
|
||||||
|
mov [handle], eax
|
||||||
|
mov [io_code], SND_GETVOLUME
|
||||||
|
mov [input], ebx
|
||||||
|
mov [inp_size], 4
|
||||||
|
mov [output], ecx
|
||||||
|
mov [out_size], 8
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
lea ecx, [handle]
|
||||||
|
int 0x40
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
34
contrib/sdk/sources/sound/src/sndout.asm
Normal file
34
contrib/sdk/sources/sound/src/sndout.asm
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _WaveOut@12
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_WaveOut@12: ;str:dword, src:dword, size:dword
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 12 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_OUT ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 12
|
36
contrib/sdk/sources/sound/src/sndreset.asm
Normal file
36
contrib/sdk/sources/sound/src/sndreset.asm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _ResetBuffer@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_ResetBuffer@8: ;str:dword, flags:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 12 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_RESET ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
35
contrib/sdk/sources/sound/src/sndsetfmt.asm
Normal file
35
contrib/sdk/sources/sound/src/sndsetfmt.asm
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _SetFormat@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetFormat@8: ;str:dword, fmt:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 8 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETFORMAT ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
36
contrib/sdk/sources/sound/src/sndsetmvol.asm
Normal file
36
contrib/sdk/sources/sound/src/sndsetmvol.asm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _SetMasterVol@4
|
||||||
|
|
||||||
|
extrn hrdwSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetMasterVol@4: ;vol:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push DEV_SET_MASTERVOL ;.code
|
||||||
|
push dword [hrdwSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
|
34
contrib/sdk/sources/sound/src/sndsetpan.asm
Normal file
34
contrib/sdk/sources/sound/src/sndsetpan.asm
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _SetPan@8
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetPan@8: ;str:dword, pan:dword
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 12 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETPAN ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
36
contrib/sdk/sources/sound/src/sndsetpos.asm
Normal file
36
contrib/sdk/sources/sound/src/sndsetpos.asm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _SetBufferPos@8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetBufferPos@8: ;str:dword, offs:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 8 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETPOS ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
36
contrib/sdk/sources/sound/src/sndsetvol.asm
Normal file
36
contrib/sdk/sources/sound/src/sndsetvol.asm
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _SetVolume@12
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetVolume@12: ;str:dword, lvol:dword,rvol:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 12 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETVOLUME ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 12
|
||||||
|
|
90
contrib/sdk/sources/sound/src/sndtime.asm
Normal file
90
contrib/sdk/sources/sound/src/sndtime.asm
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _SetTimeBase@12
|
||||||
|
public _GetTimeStamp@8
|
||||||
|
public _GetDevTime@4
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
extrn hrdwSound
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_SetTimeBase@12: ;stdcall str:dword, timebase:qword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 12 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_SETTIMEBASE ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 12
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetTimeStamp@8: ; stdcall, str:dword, pstamp:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
mov eax, [esp+16] ;[pstamp]
|
||||||
|
|
||||||
|
push 8 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_GETTIMESTAMP ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 8
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_GetDevTime@4: ; pstamp:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor ebx, ebx
|
||||||
|
mov eax, [esp+12] ;[pstamp]
|
||||||
|
|
||||||
|
push 4 ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push ebx ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push 9 ;.code
|
||||||
|
push dword [hrdwSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
|
||||||
|
|
37
contrib/sdk/sources/sound/src/stopbuf.asm
Normal file
37
contrib/sdk/sources/sound/src/stopbuf.asm
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
extrn hSound
|
||||||
|
|
||||||
|
public _StopBuffer@4
|
||||||
|
|
||||||
|
align 4
|
||||||
|
_StopBuffer@4: ;str:dword
|
||||||
|
|
||||||
|
push ebx
|
||||||
|
push ecx
|
||||||
|
|
||||||
|
xor eax, eax
|
||||||
|
lea ebx, [esp+12] ;[stream]
|
||||||
|
|
||||||
|
push eax ;.out_size
|
||||||
|
push eax ;.output
|
||||||
|
push 4 ;.inp_size
|
||||||
|
push ebx ;.input
|
||||||
|
push SND_STOP ;.code
|
||||||
|
push dword [hSound] ;.handle
|
||||||
|
|
||||||
|
mov eax, 68
|
||||||
|
mov ebx, 17
|
||||||
|
mov ecx, esp
|
||||||
|
int 0x40
|
||||||
|
add esp, 24
|
||||||
|
pop ecx
|
||||||
|
pop ebx
|
||||||
|
ret 4
|
||||||
|
|
||||||
|
|
170
contrib/sdk/sources/sound/src/wavhdr.asm
Normal file
170
contrib/sdk/sources/sound/src/wavhdr.asm
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
format MS COFF
|
||||||
|
|
||||||
|
include "snd.inc"
|
||||||
|
include "proc32.inc"
|
||||||
|
|
||||||
|
section '.text' align 16 code readable executable
|
||||||
|
|
||||||
|
public _test_wav@4
|
||||||
|
|
||||||
|
; convert WAVEHEADER into PCM_x_xx_xx constant
|
||||||
|
|
||||||
|
align 4
|
||||||
|
proc _test_wav@4 stdcall, hdr:dword
|
||||||
|
|
||||||
|
mov eax, [hdr]
|
||||||
|
cmp dword [eax], 0x46464952
|
||||||
|
jne .fail
|
||||||
|
|
||||||
|
cmp dword [eax+8], 0x45564157
|
||||||
|
jne .fail
|
||||||
|
|
||||||
|
cmp word [eax+20], 1
|
||||||
|
jne .fail
|
||||||
|
|
||||||
|
mov ecx, dword [eax+24]
|
||||||
|
mov edx, 22050
|
||||||
|
cmp ecx, edx
|
||||||
|
ja .high
|
||||||
|
je .l_22
|
||||||
|
|
||||||
|
cmp ecx, 8000
|
||||||
|
je .l_8
|
||||||
|
|
||||||
|
cmp ecx, 11025
|
||||||
|
je .l_11
|
||||||
|
|
||||||
|
cmp ecx, 12000
|
||||||
|
je .l_12
|
||||||
|
|
||||||
|
cmp ecx, 16000
|
||||||
|
je .l_16
|
||||||
|
.fail:
|
||||||
|
xor eax, eax
|
||||||
|
ret
|
||||||
|
.high:
|
||||||
|
cmp ecx, 24000
|
||||||
|
je .LN56
|
||||||
|
cmp ecx, 32000
|
||||||
|
je .LN65
|
||||||
|
cmp ecx, 44100
|
||||||
|
je .LN74
|
||||||
|
cmp ecx, 48000
|
||||||
|
jne .fail
|
||||||
|
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN79
|
||||||
|
dec ecx
|
||||||
|
jne .LN74
|
||||||
|
|
||||||
|
mov edx, 19
|
||||||
|
jmp .done
|
||||||
|
.LN79:
|
||||||
|
mov edx, 20
|
||||||
|
jmp .done
|
||||||
|
.LN74:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN70
|
||||||
|
dec ecx
|
||||||
|
jne .LN65
|
||||||
|
|
||||||
|
mov edx, 21
|
||||||
|
jmp .done
|
||||||
|
.LN70:
|
||||||
|
mov edx, 22
|
||||||
|
jmp .done
|
||||||
|
.LN65:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN61
|
||||||
|
dec ecx
|
||||||
|
jne .LN56
|
||||||
|
|
||||||
|
mov edx, 23
|
||||||
|
jmp .done
|
||||||
|
.LN61:
|
||||||
|
mov edx, 24
|
||||||
|
jmp .done
|
||||||
|
.LN56:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN52
|
||||||
|
dec ecx
|
||||||
|
je .LN50
|
||||||
|
.l_22:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN43
|
||||||
|
dec ecx
|
||||||
|
je .LN41
|
||||||
|
.l_16:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN34
|
||||||
|
dec ecx
|
||||||
|
je .LN32
|
||||||
|
.l_12:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN25
|
||||||
|
dec ecx
|
||||||
|
je .LN23
|
||||||
|
.l_11:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN16
|
||||||
|
dec ecx
|
||||||
|
je .LN14
|
||||||
|
.l_8:
|
||||||
|
movzx ecx, word [eax+22]
|
||||||
|
dec ecx
|
||||||
|
je .LN7
|
||||||
|
dec ecx
|
||||||
|
jne .fail
|
||||||
|
|
||||||
|
mov edx, 35
|
||||||
|
jmp .done
|
||||||
|
.LN7:
|
||||||
|
mov edx, 36
|
||||||
|
jmp .done
|
||||||
|
.LN14:
|
||||||
|
mov edx, 33
|
||||||
|
jmp .done
|
||||||
|
.LN16:
|
||||||
|
mov edx, 34
|
||||||
|
jmp .done
|
||||||
|
.LN23:
|
||||||
|
mov edx, 31
|
||||||
|
jmp .done
|
||||||
|
.LN25:
|
||||||
|
mov edx, 32
|
||||||
|
jmp .done
|
||||||
|
.LN32:
|
||||||
|
mov edx, 29
|
||||||
|
jmp .done
|
||||||
|
.LN34:
|
||||||
|
mov edx, 30
|
||||||
|
jmp .done
|
||||||
|
.LN41:
|
||||||
|
mov edx, 27
|
||||||
|
jmp .done
|
||||||
|
.LN43:
|
||||||
|
mov edx, 28
|
||||||
|
jmp .done
|
||||||
|
.LN50:
|
||||||
|
mov edx, 25
|
||||||
|
jmp .done
|
||||||
|
.LN52:
|
||||||
|
mov edx, 26
|
||||||
|
.done:
|
||||||
|
xor ecx, ecx
|
||||||
|
cmp word [eax+34], 16
|
||||||
|
setne cl
|
||||||
|
dec ecx
|
||||||
|
and ecx, -18
|
||||||
|
add ecx, edx
|
||||||
|
mov eax, ecx
|
||||||
|
ret
|
||||||
|
endp
|
@ -16,7 +16,7 @@ LD = kos32-ld
|
|||||||
AR = kos32-ar
|
AR = kos32-ar
|
||||||
STRIP = kos32-strip
|
STRIP = kos32-strip
|
||||||
|
|
||||||
CFLAGS = $(LOC) -DHAVE_UNISTD_H -U_Win32 -U_WIN32 -U__MINGW32__ -O2 -Wall -fomit-frame-pointer
|
CFLAGS = $(LOC) -DHAVE_UNISTD_H -U_Win32 -U_WIN32 -U__MINGW32__ -O2 -Wall -fno-ident -fomit-frame-pointer
|
||||||
|
|
||||||
AS = $(CC)
|
AS = $(CC)
|
||||||
ASFLAGS = $(LOC) -Wall
|
ASFLAGS = $(LOC) -Wall
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
LIBRARY zlib.dll
|
LIBRARY libz.dll
|
||||||
; zlib data compression library
|
; zlib data compression library
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
|
Loading…
Reference in New Issue
Block a user