diff --git a/.gitignore b/.gitignore index 5efdbfb4..0a77d636 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,8 @@ sysbuild log.txt externals support -build +build/ +build-*/ *.o *.dylib @@ -18,3 +19,4 @@ latex/ *.map *.md5 +script/verinfo.rc diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..23ef0cbb --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "source/max-sdk-base"] + path = source/max-sdk-base + url = https://github.com/Cycling74/max-sdk-base diff --git a/CMakeLists.txt b/CMakeLists.txt index 045635a8..87b516d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,10 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.19) string(REGEX REPLACE "(.*)/" "" THIS_FOLDER_NAME "${CMAKE_CURRENT_SOURCE_DIR}") project(${THIS_FOLDER_NAME}) +set(CMAKE_OSX_ARCHITECTURES x86_64;arm64) + MACRO(SUBDIRLIST result curdir) FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) SET(dirlist "") diff --git a/MaxAPI.pdf b/MaxAPI.pdf index 41537d71..ef4a576d 100644 Binary files a/MaxAPI.pdf and b/MaxAPI.pdf differ diff --git a/help/jit.gl.simple.help b/help/jit.gl.simple.help deleted file mode 100644 index 895a4002..00000000 Binary files a/help/jit.gl.simple.help and /dev/null differ diff --git a/help/jit.gl.simple.maxhelp b/help/jit.gl.simple.maxhelp new file mode 100644 index 00000000..f6f73d54 --- /dev/null +++ b/help/jit.gl.simple.maxhelp @@ -0,0 +1,626 @@ +{ + "patcher" : { + "fileversion" : 1, + "appversion" : { + "major" : 8, + "minor" : 2, + "revision" : 0, + "architecture" : "x64", + "modernui" : 1 + } +, + "classnamespace" : "box", + "rect" : [ 35.0, 79.0, 816.0, 585.0 ], + "bglocked" : 0, + "openinpresentation" : 0, + "default_fontsize" : 12.0, + "default_fontface" : 0, + "default_fontname" : "Arial", + "gridonopen" : 1, + "gridsize" : [ 15.0, 15.0 ], + "gridsnaponopen" : 1, + "objectsnaponopen" : 1, + "statusbarvisible" : 2, + "toolbarvisible" : 1, + "lefttoolbarpinned" : 0, + "toptoolbarpinned" : 0, + "righttoolbarpinned" : 0, + "bottomtoolbarpinned" : 0, + "toolbars_unpinned_last_save" : 0, + "tallnewobj" : 0, + "boxanimatetime" : 200, + "enablehscroll" : 1, + "enablevscroll" : 1, + "devicewidth" : 0.0, + "description" : "", + "digest" : "", + "tags" : "", + "style" : "", + "subpatcher_template" : "", + "helpsidebarclosed" : 1, + "assistshowspatchername" : 0, + "boxes" : [ { + "box" : { + "id" : "obj-58", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 51.0, 155.0, 24.0, 24.0 ] + } + + } +, { + "box" : { + "frozen_object_attributes" : { + "rect" : [ 886, 45, 1526, 525 ] + } +, + "id" : "obj-56", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 3, + "outlettype" : [ "jit_matrix", "bang", "" ], + "patching_rect" : [ 51.0, 181.0, 49.0, 22.0 ], + "text" : "jit.world" + } + + } +, { + "box" : { + "attr" : "scale", + "id" : "obj-55", + "maxclass" : "attrui", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.0, 92.0, 338.0, 22.0 ] + } + + } +, { + "box" : { + "attr" : "position", + "id" : "obj-54", + "maxclass" : "attrui", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 423.0, 59.0, 338.0, 22.0 ] + } + + } +, { + "box" : { + "id" : "obj-51", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "jit_gl_texture", "" ], + "patching_rect" : [ 51.0, 252.0, 160.0, 22.0 ], + "text" : "jit.gl.camera @position 0 0 4" + } + + } +, { + "box" : { + "id" : "obj-4", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 247.0, 341.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-5", + "maxclass" : "comment", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 274.0, 343.5, 83.0, 20.0 ], + "style" : "default", + "text" : "draw as mesh" + } + + } +, { + "box" : { + "id" : "obj-12", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 453.0, 128.0, 131.0, 22.0 ], + "style" : "default", + "text" : "jit.gl.handle @radius 2." + } + + } +, { + "box" : { + "id" : "obj-20", + "maxclass" : "newobj", + "numinlets" : 0, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 240.0, 134.0, 50.0, 22.0 ], + "style" : "default", + "text" : "r grimy" + } + + } +, { + "box" : { + "fontface" : 0, + "fontname" : "Geneva", + "fontsize" : 9.0, + "id" : "obj-21", + "maxclass" : "jit.fpsgui", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "" ], + "patching_rect" : [ 66.0, 207.0, 60.0, 34.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-22", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 0, + "patching_rect" : [ 51.0, 466.0, 51.0, 22.0 ], + "style" : "default", + "text" : "s grimy" + } + + } +, { + "box" : { + "id" : "obj-26", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 634.905882352941148, 410.0, 78.0, 22.0 ], + "style" : "default", + "text" : "shininess $1" + } + + } +, { + "box" : { + "format" : 6, + "id" : "obj-27", + "maxclass" : "flonum", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "", "bang" ], + "parameter_enable" : 0, + "patching_rect" : [ 634.905882352941148, 378.0, 38.0, 22.0 ], + "style" : "default", + "triscale" : 0.9 + } + + } +, { + "box" : { + "id" : "obj-28", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 415.800000000000011, 378.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-29", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 415.800000000000011, 410.0, 113.0, 22.0 ], + "style" : "default", + "text" : "smooth_shading $1" + } + + } +, { + "box" : { + "id" : "obj-30", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 106.341176470588238, 410.0, 91.0, 22.0 ], + "style" : "default", + "text" : "color 0. 1. 0. 1." + } + + } +, { + "box" : { + "id" : "obj-31", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 527.611764705882365, 378.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-32", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 527.611764705882365, 410.0, 106.0, 22.0 ], + "style" : "default", + "text" : "lighting_enable $1" + } + + } +, { + "box" : { + "id" : "obj-34", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 51.0, 379.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-35", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 51.0, 410.0, 53.0, 22.0 ], + "style" : "default", + "text" : "axes $1" + } + + } +, { + "box" : { + "id" : "obj-36", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 267.0, 378.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-37", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 226.0, 377.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-38", + "maxclass" : "newobj", + "numinlets" : 3, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 202.341176470588238, 410.0, 110.0, 22.0 ], + "style" : "default", + "text" : "pak poly_mode 0 0" + } + + } +, { + "box" : { + "hidden" : 1, + "id" : "obj-39", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "bang" ], + "patching_rect" : [ 411.5, 312.0, 61.0, 22.0 ], + "style" : "default", + "text" : "loadbang" + } + + } +, { + "box" : { + "id" : "obj-41", + "maxclass" : "toggle", + "numinlets" : 1, + "numoutlets" : 1, + "outlettype" : [ "int" ], + "parameter_enable" : 0, + "patching_rect" : [ 316.411764705882376, 378.0, 25.0, 25.0 ], + "style" : "default" + } + + } +, { + "box" : { + "id" : "obj-42", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 316.411764705882376, 410.0, 98.0, 22.0 ], + "style" : "default", + "text" : "depth_enable $1" + } + + } +, { + "box" : { + "id" : "obj-46", + "maxclass" : "newobj", + "numinlets" : 1, + "numoutlets" : 2, + "outlettype" : [ "jit_matrix", "" ], + "patching_rect" : [ 240.0, 196.0, 68.0, 22.0 ], + "style" : "default", + "text" : "jit.gl.simple" + } + + } +, { + "box" : { + "hidden" : 1, + "id" : "obj-48", + "maxclass" : "message", + "numinlets" : 2, + "numoutlets" : 1, + "outlettype" : [ "" ], + "patching_rect" : [ 414.0, 336.0, 18.0, 22.0 ], + "style" : "default", + "text" : "1" + } + + } + ], + "lines" : [ { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "midpoints" : [ 462.5, 180.0, 249.5, 180.0 ], + "source" : [ "obj-12", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "midpoints" : [ 249.5, 174.0, 249.5, 174.0 ], + "source" : [ "obj-20", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 644.405882352941148, 445.0, 60.5, 445.0 ], + "source" : [ "obj-26", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-26", 0 ], + "source" : [ "obj-27", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-29", 0 ], + "source" : [ "obj-28", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 425.300000000000011, 445.0, 60.5, 445.0 ], + "source" : [ "obj-29", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 115.841176470588238, 447.0, 60.5, 447.0 ], + "source" : [ "obj-30", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-32", 0 ], + "source" : [ "obj-31", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 537.111764705882365, 445.0, 60.5, 445.0 ], + "source" : [ "obj-32", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-35", 0 ], + "source" : [ "obj-34", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 60.5, 447.0, 60.5, 447.0 ], + "source" : [ "obj-35", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-38", 2 ], + "source" : [ "obj-36", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-38", 1 ], + "source" : [ "obj-37", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 211.841176470588238, 447.0, 60.5, 447.0 ], + "source" : [ "obj-38", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-48", 0 ], + "hidden" : 1, + "source" : [ "obj-39", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-36", 0 ], + "midpoints" : [ 256.5, 377.0, 276.5, 377.0 ], + "order" : 0, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-37", 0 ], + "midpoints" : [ 256.5, 376.0, 235.5, 376.0 ], + "order" : 1, + "source" : [ "obj-4", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-42", 0 ], + "source" : [ "obj-41", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-22", 0 ], + "midpoints" : [ 325.911764705882376, 445.0, 60.5, 445.0 ], + "source" : [ "obj-42", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-28", 0 ], + "hidden" : 1, + "midpoints" : [ 423.5, 362.0, 425.300000000000011, 362.0 ], + "order" : 1, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-31", 0 ], + "hidden" : 1, + "midpoints" : [ 423.5, 364.0, 537.111764705882365, 364.0 ], + "order" : 0, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-41", 0 ], + "hidden" : 1, + "midpoints" : [ 423.5, 366.0, 325.911764705882376, 366.0 ], + "order" : 2, + "source" : [ "obj-48", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "midpoints" : [ 432.5, 180.0, 249.5, 180.0 ], + "source" : [ "obj-54", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-46", 0 ], + "midpoints" : [ 432.5, 179.5, 249.5, 179.5 ], + "source" : [ "obj-55", 0 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-21", 0 ], + "source" : [ "obj-56", 1 ] + } + + } +, { + "patchline" : { + "destination" : [ "obj-56", 0 ], + "source" : [ "obj-58", 0 ] + } + + } + ], + "dependency_cache" : [ { + "name" : "jit.gl.simple.mxo", + "type" : "iLaX" + } + ], + "autosave" : 0 + } + +} diff --git a/html/chapter_anatomy.html b/html/chapter_anatomy.html index a896ffbc..f43686ed 100644 --- a/html/chapter_anatomy.html +++ b/html/chapter_anatomy.html @@ -111,7 +111,7 @@

t_object s_obj; // t_object header
long s_value; // something else
} t_simp;
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

Your structure declaration will be used in the prototypes to functions you declare, so you'll need to place above these prototypes.

Initialization Routine

@@ -124,22 +124,22 @@

{
t_class *c;
-
c = class_new("simp", (method)simp_new, (method)NULL, sizeof(t_simp), 0L, 0);
-
class_addmethod(c, (method)simp_int, "int", A_LONG, 0);
-
class_addmethod(c, (method)simp_bang, "bang", 0);
+
c = class_new("simp", (method)simp_new, (method)NULL, sizeof(t_simp), 0L, 0);
+
class_addmethod(c, (method)simp_int, "int", A_LONG, 0);
+
class_addmethod(c, (method)simp_bang, "bang", 0);
class_register(CLASS_BOX, c);
s_simp_class = c;
}
-
@ A_LONG
long integer
Definition: ext_mess.h:251
+
@ A_LONG
long integer
Definition: ext_mess.h:279
t_max_err class_register(t_symbol *name_space, t_class *c)
Registers a previously defined object class.
void ext_main(void *r)
ext_main() is the entry point for an extern to be loaded, which all externs must implement this share...
Definition: myob.c:35
t_class * class_new(C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type,...)
Initializes a class by informing Max of its name, instance creation and free functions,...
t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
Adds a method to a previously defined object class.
#define CLASS_BOX
The namespace for all Max object classes which can be instantiated in a box, i.e.
Definition: ext_obex.h:24
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
-
The data structure for a Max class.
Definition: ext_mess.h:184
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25
+
The data structure for a Max class.
Definition: ext_mess.h:212

In order for Max to call the ext_main() function on your compiled external, that function must be "exported" or made public. This is accomplished by using the C74_EXPORT macro in the prototype of the ext_main() function, which is provided for you automatically in the "ext.h" header file.

class_new() creates a class with the new instance routine (see below), a free function (in this case there isn't one, so we pass NULL), the size of the structure, a no-longer used argument, and then a description of the arguments you type when creating an instance (in this case, there are no arguments, so we pass 0).

class_addmethod() binds a C function to a text symbol. The two methods defined here are int and bang.

@@ -180,8 +180,8 @@

BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
Print text to the Max window.

The post() function is similar to printf(), but puts the text in the Max window. post() is very helpful for debugging, particularly when you cannot stop user interaction or real-time computation to look at something in a debugger.

You can also add a float message, which is invoked when a floating-point number is sent to your object. Add the following to your initialization routine:

-
class_addmethod(c, (method)simp_float, "float", A_FLOAT, 0);
-
@ A_FLOAT
32-bit float
Definition: ext_mess.h:252
+
class_addmethod(c, (method)simp_float, "float", A_FLOAT, 0);
+
@ A_FLOAT
32-bit float
Definition: ext_mess.h:280

Then write the method that receives the floating-point value as follows:

void simp_float(t_simp *x, double f)
{
diff --git a/html/chapter_appendix_e.html b/html/chapter_appendix_e.html index 8963307f..2d256a12 100644 --- a/html/chapter_appendix_e.html +++ b/html/chapter_appendix_e.html @@ -120,8 +120,8 @@

t_ptr_uint : an unsigned int that is the same size as a pointer
t_atom_long : the type that is an A_LONG in an atom (32-bits on i386; 64-bits on x64)
t_atom_float : the type that is an A_FLOAT in an atom (float on i386; double on x64)
-
@ A_LONG
long integer
Definition: ext_mess.h:251
-
@ A_FLOAT
32-bit float
Definition: ext_mess.h:252
+
@ A_LONG
long integer
Definition: ext_mess.h:279
+
@ A_FLOAT
32-bit float
Definition: ext_mess.h:280
uintptr_t t_ptr_uint
an unsigned pointer-sized int
Definition: max_types.h:20
t_ptr_int t_atom_long
the type that is an A_LONG in a t_atom
Definition: max_types.h:77
intptr_t t_ptr_int
a pointer-sized int
Definition: max_types.h:21
diff --git a/html/chapter_atoms.html b/html/chapter_atoms.html index cf5036c7..91fef5f9 100644 --- a/html/chapter_atoms.html +++ b/html/chapter_atoms.html @@ -93,7 +93,7 @@

To illustrate the use of symbols and atoms, here is how you would send a message out an outlet. Let's say we want to send the message "green 43 crazy 8.34." This message consists of a selector "green" plus an array of three atoms.

First, we'll need to create a generic outlet with outlet_new in our new instance routine.

x->m_outlet = outlet_new((t_object *)x, NULL);
void * outlet_new(void *x, C74_CONST char *s)
Use outlet_new() to create an outlet that can send a specific non-standard message,...
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

The second argument being NULL indicates that the outlet can be used to send any message. If the second argument had been a character string such as "int" or "set" only that specific message could be sent out the outlet. You'd be correct if you wondered whether intout() is actually just outlet_new(x, "int").

Now that we have our generic outlet, we'll call outlet_anything() on it in a method. The first step, however, is to assemble our message, with a selector "green" plus an array of atoms. Assigning ints and floats to an atom is relatively simple, but to assign a symbol, we need to transform a character string into a symbol using gensym(). The gensym() function returns a pointer to a symbol that is guaranteed to be unique for the string you supply. This means the string is compared with other symbols to ensure its uniqueness. If it already exists, gensym() will supply a pointer to the symbol. Otherwise it will create a new one and store it in a table so it can be found the next time someone asks for it.

void myobject_bang(t_object *x)
@@ -111,16 +111,16 @@
t_max_err atom_setfloat(t_atom *a, double b)
Inserts a floating point number into a t_atom and change the t_atom's type to A_FLOAT.
void * outlet_anything(t_outlet *x, t_symbol *s, short ac, t_atom *av)
Use outlet_anything() to send any message out an outlet.
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
An atom is a typed datum.
Definition: ext_mess.h:293
+
An atom is a typed datum.
Definition: ext_mess.h:323

In the call to outlet_anything() above, gensym("green") represents the message selector. The outlet_anything() function will try to find a message "green" in each of the objects connected to the outlet. If outlet_anything() finds such a message, it will execute it, passing it the array of atoms it received.

If it cannot find a match for the symbol green, it does one more thing, which allows objects to handle messages generically. Your object can define a special method bound to the symbol "anything" that will be invoked if no other match is found for a selector. We'll discuss the anything method in a moment, but first, we need to return to class_addmethod() and explain the final arguments it accepts.

To access atoms, you can use the functions atom_setlong(), atom_getlong() etc. or you can access the t_atom structure directly. We recommend using the accessor functions, as they lead to both cleaner code and will permit your source to work without modifications when changes to the t_atom structure occur over time.

Argument Type Specifiers

-

In the simp example, you saw the int method defined as follows:

class_addmethod(c, (method)simp_int, "int", A_LONG, 0);
-
@ A_LONG
long integer
Definition: ext_mess.h:251
+

In the simp example, you saw the int method defined as follows:

class_addmethod(c, (method)simp_int, "int", A_LONG, 0);
+
@ A_LONG
long integer
Definition: ext_mess.h:279
t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
Adds a method to a previously defined object class.
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25

The A_LONG, 0 arguments to class_addmethod() specify the type of arguments expected by the C function you have written. A_LONG means that the C function accepts a long integer argument. The 0 terminates the argument specifier list, so for the int message, there is a single long integer argument.

The other options are A_FLOAT for doubles, A_SYM for symbols, and A_GIMME, which passes the raw list of atoms that were originally used to send the Max message in the first place. These argument type specifiers define what are known as "typed" methods in Max. Typed methods are those where Max checks the type of each atom in a message to ensure it is consistent with what the receiving object has said it expects for a given selector.

If the atoms cannot be coerced into the format of the argument type specifier, a bad arguments error is printed in the Max window.

@@ -129,7 +129,7 @@

Writing A_GIMME Functions

A method that uses A_GIMME is declared as follows:

void myobject_message(t_myobject *x, t_symbol *s, long argc, t_atom *argv);
-
The symbol.
Definition: ext_mess.h:77
+
The symbol.
Definition: ext_mess.h:102

The symbol argument s is the message selector. Ordinarily this might seem redundant, but it is useful for the "anything" method as we'll discuss below.

argc is the number of atoms in the argv array. It could be 0 if the message was sent without arguments. argv is the array of atoms holding the arguments.

For typed messages, the atoms will be of type A_SYM, A_FLOAT, or A_LONG. Here is an example of a method that merely prints all of the arguments.

@@ -163,15 +163,15 @@

t_symbol * atom_getsym(const t_atom *a)
Retrieves a t_symbol * value from a t_atom.
t_atom_long atom_getlong(const t_atom *a)
Retrieves a long integer value from a t_atom.
long atom_gettype(const t_atom *a)
Retrieves type from a t_atom.
-
@ A_FLOAT
32-bit float
Definition: ext_mess.h:252
-
@ A_SYM
t_symbol pointer
Definition: ext_mess.h:253
+
@ A_FLOAT
32-bit float
Definition: ext_mess.h:280
+
@ A_SYM
t_symbol pointer
Definition: ext_mess.h:281
BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
Print text to the Max window.
-
char * s_name
name: a c-string
Definition: ext_mess.h:78
+
char * s_name
name: a c-string
Definition: ext_mess.h:103

You can interpret the arguments in whatever manner you wish. You cannot, however, modify the arguments as they may be about to be passed to another object.

Writing "Anything" Methods

-

As previously mentioned, your object can define a special method bound to the symbol "anything" that will be invoked if no other match is found for a selector. For example:

class_addmethod(c, (method)myobject_anything, "anything", A_GIMME, 0);
-
@ A_GIMME
request that args be passed as an array, the routine will check the types itself.
Definition: ext_mess.h:258
+

As previously mentioned, your object can define a special method bound to the symbol "anything" that will be invoked if no other match is found for a selector. For example:

class_addmethod(c, (method)myobject_anything, "anything", A_GIMME, 0);
+
@ A_GIMME
request that args be passed as an array, the routine will check the types itself.
Definition: ext_mess.h:286

Your function definition for an anything method follows the same pattern as for all other A_GIMME methods:

void myobject_anything(t_myobject *x, t_symbol *s, long argc, t_atom *argv)
{
diff --git a/html/chapter_dragndrop.html b/html/chapter_dragndrop.html index a0a2388b..0e1d49f1 100644 --- a/html/chapter_dragndrop.html +++ b/html/chapter_dragndrop.html @@ -90,7 +90,7 @@

Your object can specify the file types accepted as well as a message that will be sent when the user releases the mouse button with the file on top of the object. UI and non-UI objects use the same interface to drag'n'drop.

Example UI object: pictmeter~. Example non-UI: TBD.

Messages to support:

acceptsdrag_locked (A_CANT)
-
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:259
+
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:287

Sent to an object during a drag when the mouse is over the object in an unlocked patcher.

acceptsdrag_unlocked (A_CANT)

Sent to an object during a drag when the mouse is over the object in a locked patcher.

@@ -98,7 +98,7 @@

Why two different scenarios? acceptsdrag_unlocked() can be thought of as an "editing" operation. For example, objects such as pictslider accept new image files for changing their appearance when the patcher is unlocked, but not when the patcher is locked. By contrast, sfplay~ can accept audio files for playback in either locked or unlocked patchers, since that is something you can do with a message (rather than an editing operation that changes the patcher).

Message handler definitions:

long myobject_acceptsdrag_unlocked(t_myobject *x, t_object *drag, t_object *view);
long myobject_acceptsdrag_locked(t_myobject *x, t_object *drag, t_object *view);
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

The handlers return true if the file(s) contained in the drag can be used in some way by the object. To test the filetypes, use jdrag_matchdragrole() passing in the drag object and a symbol for the file type. Here is list of pre-defined file types:

  • audiofile
  • diff --git a/html/chapter_enhancements.html b/html/chapter_enhancements.html index b6907b16..d4a19d3e 100644 --- a/html/chapter_enhancements.html +++ b/html/chapter_enhancements.html @@ -91,14 +91,14 @@

    Presets are a simple state-saving mechanism. Your object receives a preset message when state is being saved. You respond by creating a message that will be sent back to your object when the preset is recalled.

    For more powerful and general state-saving, use the pattr system described below.

    To support saving a single integer in a preset, you can use the preset_int() convenience function. The preset_int() function records an int message with the value you pass it in the preset, to be sent back to your object at a later time.

    -
    class_addmethod(c, (method)myobject_preset, "preset", 0);
    +
    class_addmethod(c, (method)myobject_preset, "preset", 0);
    void myobject_preset(t_myobject *x)
    {
    preset_int(x, x->m_currentvalue);
    }
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    void preset_int(t_object *x, t_atom_long n)
    Restore the state of your object with an int message.

    More generally, you can use preset_store(). Here is an example of storing two values (m_xvalue and m_yvalue) in a list.

    preset_store("ossll", x, ob_sym(x), gensym("list"), x->m_xvalue, x->m_yvalue);
    void preset_store(char *fmt,...)
    Give the preset object a general message to restore the current state of your object.
    @@ -109,8 +109,8 @@

    Assistance

    To show descriptions of your object's inlets and outlets while editing a patcher, your object can respond to the assist message with a function that copies the text to a string.

    -
    class_addmethod(c, (method)myobject_assist, "assist", A_CANT, 0);
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    +
    class_addmethod(c, (method)myobject_assist, "assist", A_CANT, 0);
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287

    The function below has two inlets and one outlet. The io argument will be 1 for inlets, 2 for outlets. The index argument will be 0 for the leftmost inlet or outlet. You can copy a maximum of 512 characters to the output string s. You can use strncpy_zero() to copy the string, or if you want to format the assistance string based on a current value in the object, you could use snprintf_zero().

    void myobject_assist(t_myobject *x, void *b, long io, long index, char *s)
    {
    @@ -134,8 +134,8 @@

    Hot and Cold Inlets

    Objects such as operators (+, -, etc.) and the int object have inlets that merely store values rather than performing an operation and producing output. These inlets are labeled with a blue color to indicate they are "cold" rather than action-producing "hot" inlets. To implement this labeling, your object can respond to the inletinfo message.

    -
    class_addmethod(c, (method)myobject_inletinfo, "inletinfo", A_CANT, 0);
    -

    If all of your object's non-left inlets are "cold" you can use the function stdinletinfo() instead of writing your own, as shown below:

    class_addmethod(c, (method)stdinletinfo, "inletinfo", A_CANT, 0);
    +
    class_addmethod(c, (method)myobject_inletinfo, "inletinfo", A_CANT, 0);
    +

    If all of your object's non-left inlets are "cold" you can use the function stdinletinfo() instead of writing your own, as shown below:

    class_addmethod(c, (method)stdinletinfo, "inletinfo", A_CANT, 0);

    To write your own function, just look at the index argument (which is 0 for the left inlet). This example turns the third inlet cold. You don't need to do anything for "hot" inlets.

    void myobject_inletinfo(t_myobject *x, void *b, long index, char *t)
    {
    @@ -146,7 +146,7 @@

    Showing a Text Editor

    Objects such as coll and text display a text editor window when you double-click. Users can edit the contents of the objects and save the updated data (or not). Here's how to do the same thing in your object.

    First, if you want to support double-clicking on a non-UI object, you can respond to the dblclick message.

    -
    class_addmethod(c, (method)myobject_dblclick, "dblclick", A_CANT, 0);
    +
    class_addmethod(c, (method)myobject_dblclick, "dblclick", A_CANT, 0);
    void myobject_dblclick(t_myobject *x)
    {
    @@ -158,7 +158,7 @@

    t_object m_obj;
    t_object *m_editor;
    } t_myobject;
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    Initialize the m_editor field to NULL in your new instance routine. Then implement the dblclick method as follows:

    if (!x->m_editor)
    x->m_editor = object_new(CLASS_NOBOX, gensym("jed"), (t_object *)x, 0);
    else
    @@ -175,7 +175,7 @@

    void * object_method(void *x, t_symbol *s,...)
    Sends an untyped message to an object.

    The title attribute sets the window title of the text editor.

    object_attr_setsym(x->m_editor, gensym("title"), gensym("crazytext"));
    t_max_err object_attr_setsym(void *x, t_symbol *s, t_symbol *c)
    Sets the value of an attribute, given its parent object and name.
    -

    When the user closes the text window, your object (or the object you passed as an argument when creating the editor) will be sent the edclose message.

    class_addmethod(c, (method)myobject_edclose, "edclose", A_CANT, 0);
    +

    When the user closes the text window, your object (or the object you passed as an argument when creating the editor) will be sent the edclose message.

    class_addmethod(c, (method)myobject_edclose, "edclose", A_CANT, 0);

    The edclose method is responsible for doing something with the text. It should also zero the reference to the editor stored in the object, because it will be freed. A pointer to the text pointer is passed, along with its size. The encoding of the text is always UTF-8.

    void myobject_edclose(t_myobject *x, char **ht, long size)
    {
    @@ -189,7 +189,7 @@

    sprintf(titlename, "myobject: %s", x->m_myfilename);
    object_attr_setsym(x->m_editor, gensym("title"), gensym(titlename));

    Each time the user chooses Save, your object will receive an edsave message. If you return zero from your edsave method, the editor will proceed with saving the text in a file. If you return non-zero, the editor assumes you have taken care of saving the text. The general idea is that when the user wants to save the text, it is either updated inside your object, updated in a file, or both. As an example, the js object uses its edsave message to trigger a recompile of the Javascript code. But it also returns 0 from its edsave method so that the text editor will update the script file. Except for the return value, the prototype of the edsave method is identical to the edclose method.

    -
    class_addmethod(c, (method)myobject_edsave, "edsave", A_CANT, 0);
    +
    class_addmethod(c, (method)myobject_edsave, "edsave", A_CANT, 0);
    long myobject_edsave(t_myobject *x, char **ht, long size)
    {
    diff --git a/html/chapter_files.html b/html/chapter_files.html index e4aab200..d165eade 100644 --- a/html/chapter_files.html +++ b/html/chapter_files.html @@ -90,23 +90,23 @@

    These routines permit you to search for files, show file open and save dialogs, as well as open, read, write, and close them. The file API is based around a "path identifier" – a number that describes the location of a file. When searching or reading a file, path identifiers can be either a folders or collectives. Path identifiers that are negative (or zero) describe actual folders in the computer's file system, while path identifiers that are positive refer to collectives.

    A basic thing you might want to do make your object accept the read message in a manner similar to existing Max objects. If the word read is followed by no arguments, a file dialog appears for the user to choose a file. If read is followed by an argument, your object will search for the file. If a file is found (or chosen), your object will open it and read data from it.

    First, make your object accept the read message. The simplest way to make the filename argument optional is to use the A_DEFSYM argument type specifier. When the symbol argument is not present, Max passes your method the empty symbol.

    -
    class_addmethod(c, (method)myobject_read, "read", A_DEFSYM, 0);
    -
    @ A_DEFSYM
    symbol, defaults to ""
    Definition: ext_mess.h:257
    +
    class_addmethod(c, (method)myobject_read, "read", A_DEFSYM, 0);
    +
    @ A_DEFSYM
    symbol, defaults to ""
    Definition: ext_mess.h:285
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25

    The next requirement for any method that reads files is that it must defer execution to the low-priority thread, as shown in the following implementation, where the filename argument is passed as the symbol argument to defer.

    void myobject_read(t_myobject *x, t_symbol *s)
    {
    -
    defer(x, (method)myobject_doread, s, 0, NULL);
    +
    defer(x, (method)myobject_doread, s, 0, NULL);
    }
    void * defer(void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
    Defer execution of a function to the main thread if (and only if) your function is executing in the s...
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102

    The myobject_doread() function compares the filename argument with the empty symbol – if the argument was not supplied, the open_dialog() is used, otherwise, we call locatefile_extended() to search for the file. This object looks for text files, so we use a four-character code 'TEXT' as our file type to either open or locate. File type codes define a set of acceptable extensions. The file max-fileformats.txt permits contains standard definitions, and you can add your own by creating a similar text file and placing it in the init folder inside the Cycling '74 folder.

    void myobject_doread(t_myobject *x, t_symbol *s)
    {
    t_fourcc filetype = 'TEXT', outtype;
    short numtypes = 1;
    -
    char filename[MAX_PATH_CHARS];
    +
    char filename[MAX_PATH_CHARS];
    short path;
    if (s == gensym("")) { // if no argument supplied, ask for file
    @@ -123,12 +123,11 @@
    myobject_openfile(x, filename, path);
    }
    void object_error(t_object *x, C74_CONST char *s,...)
    Print text to the Max window, linked to an instance of your object, and flagged as an error (highligh...
    -
    #define MAX_PATH_CHARS
    The size you should use when allocating strings for full paths.
    Definition: ext_path.h:24
    short open_dialog(char *name, short *volptr, t_fourcc *typeptr, t_fourcc *types, short ntypes)
    Present the user with the standard open file dialog.
    short locatefile_extended(char *name, short *outvol, t_fourcc *outtype, C74_CONST t_fourcc *filetypelist, short numtypes)
    Find a file by name.
    t_uint32 t_fourcc
    an integer of suitable size to hold a four char code / identifier
    Definition: max_types.h:17
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    char * s_name
    name: a c-string
    Definition: ext_mess.h:78
    +
    char * s_name
    name: a c-string
    Definition: ext_mess.h:103

    To open and read files, you can use the cross-platform sysfile API. Files can be opened using a filename plus path identifier. If successfully opened, the file can be accessed using a t_filehandle. Note that "files" inside collective files are treated identically to regular files, with the exception that they are read-only.

    Reading Text Files

    @@ -198,11 +197,11 @@

    Some Max objects respond to the write message to save data into a file. If there is no argument present after the word write, a save file dialog is shown and the user specifies a file name and location. If an argument is present, it can either specify a complete path name or a filename. In the filename case, the file is written to the current "default" directory, which is the location where a patcher was last opened. In the full pathname case, the file is written to the location specified by the pathname.

    Here's how to implement this behavior. We'll show how to handle the message arguments, then provide text and data file writing examples.

    Message and argument handling is very similar to the way we implemented the read message above, including the use of deferred execution.

    -
    class_addmethod(c, (method)myobject_write, "write", A_DEFSYM, 0);
    +
    class_addmethod(c, (method)myobject_write, "write", A_DEFSYM, 0);
    void myobject_write(t_myobject *x, t_symbol *s)
    {
    -
    defer(x, (method)myobject_dowrite, s, 0, NULL);
    +
    defer(x, (method)myobject_dowrite, s, 0, NULL);
    }

    The myobject_dowrite() function compares the filename argument with the empty symbol – if the argument was not supplied, saveasdialog_extended() is used to obtain the user's choice for filename and location. Our first example looks for text files, so we use a four-character code 'TEXT' as our file type for saving. File type codes define a set of acceptable extensions. The file max-fileformats.txt permits contains standard definitions, and you can add your own by creating a similar text file and placing it in the init folder inside the Cycling '74 folder.

    void myobject_dowrite(t_myobject *x, t_symbol *s)
    diff --git a/html/chapter_inout.html b/html/chapter_inout.html index bcac65a6..521137c5 100644 --- a/html/chapter_inout.html +++ b/html/chapter_inout.html @@ -95,10 +95,10 @@

    Creating and Using Inlets

    Proper use of an inlet involves two steps: first, add a method that will respond to the message sent via the inlet in your initialization routine, and second, create the inlet in your new instance routine. (Creating inlets at any other time is not supported.)

    There are three types of inlets: int, float, and custom. We'll only describe int and float inlets here because proxies are generally a better way to create an inlet that can respond to any message. For int inlets, you'll bind a function to a message "in1", "in2", "in3" etc. depending on the inlet number you assign. Here's how to create a single inlet using "in1"...

    -

    In your initialization routine:

    class_addmethod(c, (method)myobject_in1, "in1", A_LONG, 0);
    -
    @ A_LONG
    long integer
    Definition: ext_mess.h:251
    +

    In your initialization routine:

    class_addmethod(c, (method)myobject_in1, "in1", A_LONG, 0);
    +
    @ A_LONG
    long integer
    Definition: ext_mess.h:279
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25

    In your new instance routine, after calling object_alloc() to create your instance:

    intin(x, 1);
    void * intin(void *x, short n)
    Use intin() to create an inlet typed to receive only integers.

    The method that will be called when an int is received in the right inlet:

    void myobject_in1(t_myobject *x, long n)
    @@ -108,8 +108,8 @@

    Creating a single inlet in this way gives your object two inlets (remember that it always has one by default). If you want to create multiple inlets, you'll need to create them in order from right to left, as shown below:

    intin(x, 2); // creates an inlet (the right inlet) that will send your object the "in2" message
    intin(x, 1); // creates an inlet (the middle inlet) that will send your object the "in1" message

    Inlets that send float messages to your object are created with floatin() and translate the float message into "ft1","ft2","ft3" etc. Example:

    -

    In initialization routine:

    class_addmethod(c, (method)myobject_ft1, "ft1", A_FLOAT, 0);
    -
    @ A_FLOAT
    32-bit float
    Definition: ext_mess.h:252
    +

    In initialization routine:

    class_addmethod(c, (method)myobject_ft1, "ft1", A_FLOAT, 0);
    +
    @ A_FLOAT
    32-bit float
    Definition: ext_mess.h:280

    In new instance routine:

    floatin(x, 1);
    void * floatin(void *x, short n)
    Use floatin() to create an inlet typed to receive only floats.

    Method:

    void myobject_ft1(t_myobject *x, double f)
    @@ -128,7 +128,7 @@

    void *m_outlet1;
    void *m_outlet2;
    } t_myobject;
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    Then we'll create the outlets in our new instance routine.

    x = (t_myobject *)object_alloc(s_myobject_class);
    x->m_outlet2 = bangout((t_object *)x);
    x->m_outlet1 = intout((t_object *)x);
    diff --git a/html/chapter_itm.html b/html/chapter_itm.html index cae5968c..327a7685 100644 --- a/html/chapter_itm.html +++ b/html/chapter_itm.html @@ -100,13 +100,13 @@

    t_object *m_timeobj;
    void *m_outlet;
    } _delay2simple;
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    -

    Next, in your ext_main() routine, you'll create attributes associated with the time object using the class_time_addattr() function.

    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    +

    Next, in your ext_main() routine, you'll create attributes associated with the time object using the class_time_addattr() function.

    void class_time_addattr(t_class *c, const char *attrname, const char *attrlabel, long flags)
    Create an attribute permitting a time object to be changed in a user-friendly way.
    -
    @ TIME_FLAGS_TRANSPORT
    add a transport attribute
    Definition: ext_itm.h:74
    -
    @ TIME_FLAGS_USECLOCK
    this time object will schedule events, not just hold a value
    Definition: ext_itm.h:70
    -
    @ TIME_FLAGS_TICKSONLY
    only ticks-based values (not ms) are acceptable
    Definition: ext_itm.h:67
    -

    The second argument, "delaytime", is a string that names the attribute. Users of your object will be able to change the delay value by sending a delaytime message. "Delay Time" is the label users see for the attribute in the inspector. The flags argument permits you to customize the type of time object you'd like. TIME_FLAGS_TICKSONLY means that the object can only be specified in tempo-relative units. You would not use this flag if you want the object to use the regular Max scheduler if the user specifies an absolute time (such as milliseconds). TIME_FLAGS_USECLOCK means that it is a time object that will actually schedule events. If you do not use this flag, you can use the time object to hold and convert time values, which you use to schedule events manually. TIME_FLAGS_TRANSPORT means that an additional attribute for specifying the transport name is added to your object automatically (it's called "transport" and has the label "Transport Name"). The combination of flags above is appropriate for an object that will be scheduling events on a temporary basis that are only synchronized with the transport and specified in tempo-relative units.

    +
    @ TIME_FLAGS_TRANSPORT
    add a transport attribute
    Definition: ext_itm.h:74
    +
    @ TIME_FLAGS_USECLOCK
    this time object will schedule events, not just hold a value
    Definition: ext_itm.h:70
    +
    @ TIME_FLAGS_TICKSONLY
    only ticks-based values (not ms) are acceptable
    Definition: ext_itm.h:67
    +

    The second argument, "delaytime", is a string that names the attribute. Users of your object will be able to change the delay value by sending a delaytime message. "Delay Time" is the label users see for the attribute in the inspector. The flags argument permits you to customize the type of time object you'd like. TIME_FLAGS_TICKSONLY means that the object can only be specified in tempo-relative units. You would not use this flag if you want the object to use the regular Max scheduler if the user specifies an absolute time (such as milliseconds). TIME_FLAGS_USECLOCK means that it is a time object that will actually schedule events. If you do not use this flag, you can use the time object to hold and convert time values, which you use to schedule events manually. TIME_FLAGS_TRANSPORT means that an additional attribute for specifying the transport name is added to your object automatically (it's called "transport" and has the label "Transport Name"). The combination of flags above is appropriate for an object that will be scheduling events on a temporary basis that are only synchronized with the transport and specified in tempo-relative units.

    The next step is to create a time object in your new instance routine using time_new. The time_new function is something like clock_new – you pass it a task function that will be executed when the scheduler reaches a certain time (in this case, delay2simple_tick, which will send out a bang). The first argument to time_new is a pointer to your object, the second is the name of the attribute created via class_time_addattr, the third is your task function, and the fourth are flags to control the behavior of the time object, as explained above for class_time_addattr.

    Finally, we use time_setvalue to set the initial delay value to 0.

    void *delay2simple_new()
    {
    @@ -114,20 +114,20 @@

    t_atom a;
    x = (t_delay2simple *)object_alloc(s_delay2simple_class);
    -
    x->m_timeobj = (t_object *)time_new((t_object *)x, gensym("delaytime"), (method)delay2simple_tick, TIME_FLAGS_TICKSONLY | TIME_FLAGS_USECLOCK);
    +
    x->m_timeobj = (t_object *)time_new((t_object *)x, gensym("delaytime"), (method)delay2simple_tick, TIME_FLAGS_TICKSONLY | TIME_FLAGS_USECLOCK);
    x->m_outlet = bangout((t_object *)x);
    atom_setfloat(&a, 0.);
    time_setvalue(x->d_timeobj, NULL, 1, &a);
    return x;
    }
    t_max_err atom_setfloat(t_atom *a, double b)
    Inserts a floating point number into a t_atom and change the t_atom's type to A_FLOAT.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    void * bangout(void *x)
    Use bangout() to create an outlet that will always send the bang message.
    void * object_alloc(t_class *c)
    Allocates the memory for an instance of an object class and initialize its object header.
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    void time_setvalue(t_timeobject *tx, t_symbol *s, long argc, t_atom *argv)
    Set the current value of a time object (either an interval or a position) using a Max message.
    void * time_new(t_object *owner, t_symbol *attrname, method tick, long flags)
    Create a new time object.
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323

    To make a delayed bang, we need a delay2simple_bang function that causes our time object to put its task function into the ITM scheduler. This is accomplished using time_schedule. Note that unlike the roughly equivalent clock_fdelay, where the delay time is an argument, the time value must already be stored inside the time object using time_setvalue. The second argument to time_schedule is another time object that can be used to control quantization of an event. Since we aren't using quantization in this simple version of delay2, we pass NULL.

    void delay2simple_bang(t_delay2 *x)
    {
    time_schedule(x->d_timeobj, NULL);
    @@ -150,16 +150,16 @@

    t_object *d_quantize;
    void *d_clock;
    } t_delay2;
    -

    In the initialization routine, we'll define a quantization time attribute to work in conjunction with the d_quantize time object we'll be creating. This attribute does not have its own clock to worry about. It just holds a time value, which we specify will only be in ticks (quantizing in milliseconds doesn't make sense in the ITM context). If you build delay2 and open the inspector, you will see time attributes for both Delay Time and Quantization.

    class_time_addattr(c, "quantize", "Quantization", TIME_FLAGS_TICKSONLY);
    +

    In the initialization routine, we'll define a quantization time attribute to work in conjunction with the d_quantize time object we'll be creating. This attribute does not have its own clock to worry about. It just holds a time value, which we specify will only be in ticks (quantizing in milliseconds doesn't make sense in the ITM context). If you build delay2 and open the inspector, you will see time attributes for both Delay Time and Quantization.

    class_time_addattr(c, "quantize", "Quantization", TIME_FLAGS_TICKSONLY);

    Here is part of the revised delay2 new instance routine. It now creates two time objects, plus a regular clock object.

    x->d_inletnum = 0;
    x->d_proxy = proxy_new(x, 1, &x->d_inletnum);
    x->d_outlet2 = bangout(x);
    x->d_outlet = bangout(x);
    -
    x->d_timeobj = (t_object*) time_new((t_object *)x, gensym("delaytime"), (method)delay2_tick, TIME_FLAGS_TICKSONLY | TIME_FLAGS_USECLOCK);
    -
    x->d_quantize = (t_object*) time_new((t_object *)x, gensym("quantize"), NULL, TIME_FLAGS_TICKSONLY);
    -
    x->d_clock = clock_new((t_object *)x, (method)delay2_clocktick);
    +
    x->d_timeobj = (t_object*) time_new((t_object *)x, gensym("delaytime"), (method)delay2_tick, TIME_FLAGS_TICKSONLY | TIME_FLAGS_USECLOCK);
    +
    x->d_quantize = (t_object*) time_new((t_object *)x, gensym("quantize"), NULL, TIME_FLAGS_TICKSONLY);
    +
    x->d_clock = clock_new((t_object *)x, (method)delay2_clocktick);
    t_clock * clock_new(void *obj, method fn)
    Create a new Clock object.
    void * proxy_new(void *x, long id, long *stuffloc)
    Use proxy_new to create a new Proxy object.

    To use the quantization time object, we can pass it as the second argument to time_schedule. If the value of the quantization is 0, there is no effect. Otherwise, time_schedule will move the event time so it lies on a quantization boundary. For example, if the quantization value is 4n (480 ticks), the delay time is 8n (240 ticks) and current time is 650 ticks, the delay time will be adjusted so that the bang comes out of the delay2 object at 980 ticks instead of 890 ticks.

    @@ -187,18 +187,18 @@

    Permanent Events

    A permanent event in ITM is one that has been scheduled to occur when the transport reaches a specific time. You can schedule a permanent event in terms of ticks or bars/beats/units. An event based in ticks will occur when the transport reaches the specified tick value, and it will not be affected by changes in time signature. An event specified for a time in bars/beats/units will be affected by the time signature. As an example, consider an event scheduled for bar 2, beat 1, unit 0. If the time signature of the ITM object on which the event has been scheduled is 3/4, the event will occur at 480 times 3 or 1440 ticks. But if the time signature is 4/4, the event will occur at 1920 ticks. If, as an alternative, you had scheduled the event to occur at 1920 ticks, setting the time signature to 3/4 would not have affected when it occurred.

    You don't "schedule" a permanent event. Once it is created, it is always in an ITM object's list of permanent events. To specify when the event should occur, use time_setvalue.

    -

    The high-level time object interface handles permanent events. Let's say we want to have a time value called "targettime." First, we declare an attribute using class_time_addattr. The flags used are TIME_FLAGS_TICKSONLY (required because you can't specify a permanent event in milliseconds), TIME_FLAGS_LOCATION (which interprets the bar/beat/unit times where 1 1 0 is zero ticks), TIME_FLAGS_PERMANENT (for a permanent event), and TIME_FLAGS_TRANSPORT (which adds a transport attribute permitting a user to choose a transport object as a destination for the event) and TIME_FLAGS_POSITIVE (constrains the event to happen only for positive tick and bar/beat/unit values).

    -
    -
    @ TIME_FLAGS_POSITIVE
    constrain any values <= 0 to a minimum value (default: 0)
    Definition: ext_itm.h:80
    -
    @ TIME_FLAGS_LOCATION
    1 1 0 location-based bar/beat/unit values (as opposed to interval values, which are 0 0 0 relative)
    Definition: ext_itm.h:66
    -
    @ TIME_FLAGS_PERMANENT
    event will be scheduled in the permanent list (tied to a specific time)
    Definition: ext_itm.h:73
    -

    The TIME_FLAGS_TRANSPORT flag is particularly nice. Without any intervention on your part, it creates a transport attribute for your object, and takes care of scheduling the permanent event on the transport the user specifies, with a default value of the global ITM object. If you want to cause your event to be rescheduled dynamically when the user changes the transport, your object can respond to the reschedule message as follows.

    -
    class_addmethod(c, (method)myobject_reschedule, "reschedule", A_CANT, 0); // for dynamic transport reassignment
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    +

    The high-level time object interface handles permanent events. Let's say we want to have a time value called "targettime." First, we declare an attribute using class_time_addattr. The flags used are TIME_FLAGS_TICKSONLY (required because you can't specify a permanent event in milliseconds), TIME_FLAGS_LOCATION (which interprets the bar/beat/unit times where 1 1 0 is zero ticks), TIME_FLAGS_PERMANENT (for a permanent event), and TIME_FLAGS_TRANSPORT (which adds a transport attribute permitting a user to choose a transport object as a destination for the event) and TIME_FLAGS_POSITIVE (constrains the event to happen only for positive tick and bar/beat/unit values).

    +
    +
    @ TIME_FLAGS_POSITIVE
    constrain any values <= 0 to a minimum value (default: 0)
    Definition: ext_itm.h:80
    +
    @ TIME_FLAGS_LOCATION
    1 1 0 location-based bar/beat/unit values (as opposed to interval values, which are 0 0 0 relative)
    Definition: ext_itm.h:66
    +
    @ TIME_FLAGS_PERMANENT
    event will be scheduled in the permanent list (tied to a specific time)
    Definition: ext_itm.h:73
    +

    The TIME_FLAGS_TRANSPORT flag is particularly nice. Without any intervention on your part, it creates a transport attribute for your object, and takes care of scheduling the permanent event on the transport the user specifies, with a default value of the global ITM object. If you want to cause your event to be rescheduled dynamically when the user changes the transport, your object can respond to the reschedule message as follows.

    +
    class_addmethod(c, (method)myobject_reschedule, "reschedule", A_CANT, 0); // for dynamic transport reassignment
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.

    All you need to do in your reschedule method is just act as if the user has changed the time value, and use the current time value to call time_setvalue.

    In your new instance routine, creating a permanent event with time_new uses the same flags as were passed to class_time_addattr:

    -
    +

    The task called by the permanent time object is identical to a clock task or an ITM temporary event task.

    Cleaning Up

    diff --git a/html/chapter_jit_maxwrappers.html b/html/chapter_jit_maxwrappers.html index 93fea870..a37d8a18 100644 --- a/html/chapter_jit_maxwrappers.html +++ b/html/chapter_jit_maxwrappers.html @@ -107,8 +107,8 @@
    // create the Max class as documented in Writing Max Externals
    setup(&class_max_jit_foo,
    -
    (method) max_jit_foo_new,
    -
    (method) max_jit_foo_free,
    +
    (method) max_jit_foo_new,
    +
    (method) max_jit_foo_free,
    (short)sizeof(t_max_jit_foo),
    0L, A_GIMME, 0);
    @@ -122,7 +122,7 @@
    // add an inlet/outlet assistance method
    -
    addmess((method)max_jit_foo_assist, "assist", A_CANT,0);
    +
    addmess((method)max_jit_foo_assist, "assist", A_CANT,0);
    }
    void max_jit_foo_assist(t_max_jit_foo *x, void *b, long m, long a, char *s)
    @@ -176,31 +176,31 @@
    return (x);
    }
    -
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:258
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    +
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:286
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287
    void addmess(method f, char *s, short type,...)
    Use addmess() to bind a function to a message other than the standard ones covered by addbang(),...
    BEGIN_USING_C_LINKAGE void setup(t_messlist **ident, method makefun, method freefun, t_getbytes_size size, method menufun, short type,...)
    Use the setup() function to initialize your class by informing Max of its size, the name of your func...
    void freeobject(void *op)
    Release the memory used by a Max object.
    void ext_main(void *r)
    ext_main() is the entry point for an extern to be loaded, which all externs must implement this share...
    Definition: myob.c:35
    -
    void * jit_class_findbyname(t_symbol *classname)
    Retrieves class pointer associated with name provided.
    Definition: jit.foundation.c:616
    +
    void * jit_class_findbyname(t_symbol *classname)
    Retrieves class pointer associated with name provided.
    Definition: jit.foundation.c:621
    void error(C74_CONST char *fmt,...)
    Print an error to the Max window.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    void * outlet_new(void *x, C74_CONST char *s)
    Use outlet_new() to create an outlet that can send a specific non-standard message,...
    -
    void * max_jit_obex_jitob_get(void *x)
    Retrieves the wrapped Jitter object from a Max wrapper object.
    Definition: jit.max.c:2588
    -
    long max_jit_attr_args_offset(short ac, t_atom *av)
    Determines argument offset to first attribute argument.
    Definition: jit.max.c:390
    -
    void * max_jit_classex_setup(long oboffset)
    Allocates and initializes special t_max_jit_classex data, used by the Max wrapper class.
    Definition: jit.max.c:2017
    -
    void max_jit_obex_dumpout_set(void *x, void *outlet)
    Sets the Max wrapper object's dump outlet's outlet pointer.
    Definition: jit.max.c:2801
    -
    void max_jit_classex_standard_wrap(void *mclass, void *jclass, long flags)
    Adds standard Jitter methods, as well as public methods and attributes of the specified Jitter class.
    Definition: jit.max.c:953
    -
    void max_jit_obex_jitob_set(void *x, void *jitob)
    Sets the wrapped Jitter object for a Max wrapper object.
    Definition: jit.max.c:2606
    -
    void max_jit_obex_free(void *x)
    Frees additional resources for the Max wrapper object instance.
    Definition: jit.max.c:2366
    -
    void max_jit_attr_args(void *x, short ac, t_atom *av)
    Processes attribute arguments.
    Definition: jit.max.c:406
    -
    void * max_jit_obex_new(void *mc, t_symbol *classname)
    Allocates an initializes a new Max wrapper object instance.
    Definition: jit.max.c:2314
    -
    #define calcoffset(x, y)
    Find byte offset of a named member of a struct, relative to the beginning of that struct.
    Definition: ext_prefix.h:180
    -
    t_jit_err jit_object_free(void *x)
    Frees an object.
    Definition: jit.foundation.c:931
    +
    void * max_jit_obex_jitob_get(void *x)
    Retrieves the wrapped Jitter object from a Max wrapper object.
    Definition: jit.max.c:2613
    +
    long max_jit_attr_args_offset(short ac, t_atom *av)
    Determines argument offset to first attribute argument.
    Definition: jit.max.c:392
    +
    void * max_jit_classex_setup(long oboffset)
    Allocates and initializes special t_max_jit_classex data, used by the Max wrapper class.
    Definition: jit.max.c:2042
    +
    void max_jit_obex_dumpout_set(void *x, void *outlet)
    Sets the Max wrapper object's dump outlet's outlet pointer.
    Definition: jit.max.c:2826
    +
    void max_jit_classex_standard_wrap(void *mclass, void *jclass, long flags)
    Adds standard Jitter methods, as well as public methods and attributes of the specified Jitter class.
    Definition: jit.max.c:955
    +
    void max_jit_obex_jitob_set(void *x, void *jitob)
    Sets the wrapped Jitter object for a Max wrapper object.
    Definition: jit.max.c:2631
    +
    void max_jit_obex_free(void *x)
    Frees additional resources for the Max wrapper object instance.
    Definition: jit.max.c:2391
    +
    void max_jit_attr_args(void *x, short ac, t_atom *av)
    Processes attribute arguments.
    Definition: jit.max.c:408
    +
    void * max_jit_obex_new(void *mc, t_symbol *classname)
    Allocates an initializes a new Max wrapper object instance.
    Definition: jit.max.c:2339
    +
    #define calcoffset(x, y)
    Find byte offset of a named member of a struct, relative to the beginning of that struct.
    Definition: ext_prefix.h:143
    +
    t_jit_err jit_object_free(void *x)
    Frees an object.
    Definition: jit.foundation.c:936
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    +
    The symbol.
    Definition: ext_mess.h:102

    Object Struct

    The first thing you must do is define your Max class object struct. As is typical, for standard Max objects the first entry of the object struct must be of type t_object; for UI objects, it must be of type t_jbox; for MSP objects, it must be of type t_pxobject; and for MSP UI objects, it must be of type t_pxjbox. For more information on these different Max object types, please consult the Max developer documentation. Jitter objects can be wrapped within any of these object types.

    diff --git a/html/chapter_jit_mopdetails.html b/html/chapter_jit_mopdetails.html index a473e2d3..bb85d630 100644 --- a/html/chapter_jit_mopdetails.html +++ b/html/chapter_jit_mopdetails.html @@ -96,7 +96,7 @@

    // add jit_mop object as an adornment to the class
    jit_class_addadornment(_jit_your_class,mop);
    -
    t_jit_err jit_class_addadornment(void *c, t_jit_object *o)
    Adds an adornment to a class.
    Definition: jit.foundation.c:367
    +
    t_jit_err jit_class_addadornment(void *c, t_jit_object *o)
    Adds an adornment to a class.
    Definition: jit.foundation.c:372
    JIT_EX_DATA t_symbol * _jit_sym_jit_mop
    cached t_symbol
    Definition: jit.symbols.h:84

    The jit_mop_io Object

    @@ -156,7 +156,7 @@

    JIT_EX_DATA t_symbol * _jit_sym_frommatrix
    cached t_symbol
    Definition: jit.symbols.h:44
    JIT_EX_DATA t_symbol * _jit_sym_restrict_planecount
    cached t_symbol
    Definition: jit.symbols.h:102
    t_jit_err jit_mop_ioproc_copy_adapt(void *mop, void *mop_io, void *matrix)
    MOP I/O procedure to copy and adapt to input.
    Definition: jit.mop.c:1009
    -
    Matrix information struct.
    Definition: jit.common.h:107
    +
    Matrix information struct.
    Definition: jit.common.h:116

    Variable Inputs/Outputs

    You can specify variable input/output MOPs with a negative argument for input and/or outputs when constructing your jit_mop object. When the using variable inputs and/or outputs, there is not a jit_mop_io for each input and/or output within your class definition, and therefore the template type, dim, planecount, and linking attributes are not settable. If anything but the default behavior is required, you must accomplished it in another way — for example, either by overriding the jit_matrix method of the MOP Max wrapper class, or defining an mproc method to be called from within the standard jit_matrix method of the MOP Max wrapper class. The jit.pack, jit.unpack, jit.scissors, and jit.glue objects are a few SDK examples of MOPs with variable inputs and outputs. More information on overriding the jit_matrix, mproc, and other default methods of the MOP Max wrapper class is covered later in this chapter.

    @@ -168,7 +168,7 @@

    // look up jit_mop adornment
    -
    void * jit_class_adornment_get(void *c, t_symbol *classname)
    Retrieves an adornment from a class.
    Definition: jit.foundation.c:464
    +
    void * jit_class_adornment_get(void *c, t_symbol *classname)
    Retrieves an adornment from a class.
    Definition: jit.foundation.c:469

    The Matrix Calculation Method

    The entry point of the MOP Jitter class is the matrix_calc method, which is passed a list of matrices for the input, and a list of matrices for the output. It is not the responsibility of the matrix_calc method to perform any copying and adaptation behavior, but rather simply ensure that the matrices are valid, compatible, and if so, process. Certain objects may modify the dim, type, or planecount of the output matrices — e.g. the SDK project, jit.thin. However, it is the calling party's responsibility to perform any copying and conformance to MOP I/O restrictions as defined by the jit_mop_io objects—i.e. either the Max wrapper class, or the C, Java, or Javascript code which calls the matrix_calc method.

    @@ -214,12 +214,12 @@

    t_symbol *type; // primitive type
    long flags; // matrix flags: my data?, handle?
    long dimcount; // # of dimensions
    -
    long dim[JIT_MATRIX_MAX_DIMCOUNT]; // dimension sizes
    -
    long dimstride[JIT_MATRIX_MAX_DIMCOUNT]; // in bytes
    +
    long dim[JIT_MATRIX_MAX_DIMCOUNT]; // dimension sizes
    +
    long dimstride[JIT_MATRIX_MAX_DIMCOUNT]; // in bytes
    long planecount; // # of planes
    -
    #define JIT_MATRIX_MAX_DIMCOUNT
    maximum dimension count
    Definition: jit.common.h:58
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    @ JIT_MATRIX_MAX_DIMCOUNT
    maximum dimension count
    Definition: jit.common.h:64
    +
    The symbol.
    Definition: ext_mess.h:102

    And here is an example of calling the getinfo method to fill out the t_jit_matrix_info struct:

    // fill out matrix info structs for input and output
    jit_object_method(in_matrix,_jit_sym_getinfo,&in_minfo);
    jit_object_method(out_matrix,_jit_sym_getinfo,&out_minfo);
    @@ -248,11 +248,11 @@

    // call the calculate_ndim function in multiple
    // threads if there are multiple processors available
    -
    (method)jit_scalebias_calculate_ndim,
    +
    (method)jit_scalebias_calculate_ndim,
    x, dimcount, dim, planecount,
    &in_minfo, in_bp, &out_minfo, out_bp,
    0, 0 );
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    void jit_parallel_ndim_simplecalc2(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2)
    Tasks two input/output N-dimensional matrix calcuations to multiple threads if appropriate.
    Definition: jit.parallel.utils.c:234

    Important Note: If you aren't sure if your object is a pointwise operator, or don't fully understand how to make your algorithm parallelizable, you shouldn't use the parallel utility functions in your object. You should simply call the function directly.

    @@ -261,18 +261,18 @@

    This function is at the heart of the logic you will add in your own custom object. Since there is no "right way" to process this data, we won't cover any more code listings for the recursive N-dimensional processing function. However, the SDK projects that are good examples include: jit.clip, which performs a planar independent, pointwise operation (limiting numbers to some specified range); jit.rgb2luma, which performs a planar dependent, pointwise operation (converting RGB color to luminance); and jit.transpose, which performs a planar independent, spatial operation (rows become columns). For more ideas about N-dimensional matrix processing, we would recommend reading one of the several books available on 2D signal processing and/or image processing. Most of these concepts are easily generalized to higher dimensions.

    Defining the MOP Max Wrapper Class

    -

    MOP Max wrapper classes typically have a large amount of default behavior, as setup through the max_jit_classex_mop_wrap function, based on the jit_mop Jitter class adornment, and user specified flags. You can either override all of the default behavior or just specific features. If you wish to override all of the default behavior, you can use the flag MAX_JIT_MOP_FLAGS_OWN_ALL, when calling the max_jit_classex_mop_wrap() function. If you need to make use of the jit_mop adornment(), the jit_mop can be looked up by calling the jit_class_adornment_get() method on the Jitter class. The jit_mop_io inputs and outputs can be queried and their attributes inspected, similar to how they were set in the MOP Jitter class definition, described earlier in this chapter. Here is an example of how to look up the jit_mop adornment of the jit.scalebias object:

    +

    MOP Max wrapper classes typically have a large amount of default behavior, as setup through the max_jit_classex_mop_wrap function, based on the jit_mop Jitter class adornment, and user specified flags. You can either override all of the default behavior or just specific features. If you wish to override all of the default behavior, you can use the flag MAX_JIT_MOP_FLAGS_OWN_ALL, when calling the max_jit_classex_mop_wrap() function. If you need to make use of the jit_mop adornment(), the jit_mop can be looked up by calling the jit_class_adornment_get() method on the Jitter class. The jit_mop_io inputs and outputs can be queried and their attributes inspected, similar to how they were set in the MOP Jitter class definition, described earlier in this chapter. Here is an example of how to look up the jit_mop adornment of the jit.scalebias object:

    // look up jitter class by name
    jclass = jit_class_findbyname(gensym("jit_scalebias"));
    // look up jit_mop adornment
    -
    void * jit_class_findbyname(t_symbol *classname)
    Retrieves class pointer associated with name provided.
    Definition: jit.foundation.c:616
    +
    void * jit_class_findbyname(t_symbol *classname)
    Retrieves class pointer associated with name provided.
    Definition: jit.foundation.c:621
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...

    Overriding the jit_matrix Method

    -

    By default, a jit_matrix method is added which automatically manages matrix copying and calculation based on the incoming data. Most typical MOPs simply use the default jit_matrix method. However there are instances where it is necessary to override the default MOP method to get special behavior, such as recording which matrix input data is being input to as is the case for the jit.op SDK example, or to do something other than standard copying and adaptation as is the case for the jit.pack or jit.str.op SDK examples, or to prevent any jit_matrix method at all, as is the case for the jit.noise SDK example. To prevent the default jit_matrix method from being defined, you can use the flag MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX, when calling the max_jit_classex_mop_wrap() function. To define your own jit_matrix method, you can add an A_GIMME method bound to the symbol jit_matrix, in your ext_main() function. Here's an example from jit.op:

    +

    By default, a jit_matrix method is added which automatically manages matrix copying and calculation based on the incoming data. Most typical MOPs simply use the default jit_matrix method. However there are instances where it is necessary to override the default MOP method to get special behavior, such as recording which matrix input data is being input to as is the case for the jit.op SDK example, or to do something other than standard copying and adaptation as is the case for the jit.pack or jit.str.op SDK examples, or to prevent any jit_matrix method at all, as is the case for the jit.noise SDK example. To prevent the default jit_matrix method from being defined, you can use the flag MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX, when calling the max_jit_classex_mop_wrap() function. To define your own jit_matrix method, you can add an A_GIMME method bound to the symbol jit_matrix, in your ext_main() function. Here's an example from jit.op:

    // add custom jit_matrix method in ext_main()
    -
    addmess((method)max_jit_op_jit_matrix, "jit_matrix", A_GIMME, 0);
    +
    addmess((method)max_jit_op_jit_matrix, "jit_matrix", A_GIMME, 0);
    void max_jit_op_jit_matrix(t_max_jit_op *x, t_symbol *s, short argc,
    t_atom *argv)
    @@ -287,21 +287,21 @@

    // now pass on to the default jit_matrix method
    max_jit_mop_jit_matrix(x,s,argc,argv);
    }
    -
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:258
    +
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:286
    void addmess(method f, char *s, short type,...)
    Use addmess() to bind a function to a message other than the standard ones covered by addbang(),...
    t_jit_err max_jit_mop_jit_matrix(void *x, t_symbol *s, long argc, t_atom *argv)
    Default jit_matrix method for a MOP Max wrapper object.
    Definition: max.jit.mop.c:1193
    -
    long max_jit_obex_inletnumber_get(void *x)
    Retrieves the current inlet number used by inlet proxies.
    Definition: jit.max.c:2663
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    long max_jit_obex_inletnumber_get(void *x)
    Retrieves the current inlet number used by inlet proxies.
    Definition: jit.max.c:2688
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323

    The jit.pack and jit.str.op examples are a bit more involved and also better illustrate the kinds of tasks the default jit_matrix method performs.

    Overriding the bang and outputmatrix Methods

    -

    A MOP Max wrapper class typically has a bang and outputmatrix method. These two methods are typically equivalent, and by default, both send out the most recently calcuated matrix output. Certain objects that don't have a matrix output, like the jit.3m SDK example, typcially override these messages with their own bang and sometimes outputmatrix method. These methods can be overridden by using the MAX_JIT_MOP_FLAGS_OWN_BANG and MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX flags when calling the max_jit_classex_mop_wrap() function. These flags are typically both passed in together.

    +

    A MOP Max wrapper class typically has a bang and outputmatrix method. These two methods are typically equivalent, and by default, both send out the most recently calcuated matrix output. Certain objects that don't have a matrix output, like the jit.3m SDK example, typcially override these messages with their own bang and sometimes outputmatrix method. These methods can be overridden by using the MAX_JIT_MOP_FLAGS_OWN_BANG and MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX flags when calling the max_jit_classex_mop_wrap() function. These flags are typically both passed in together.

    Overriding the name, type, dim, and planecount Attributes

    -

    For each input and output, other than the leftmost input, there is, by default, an attribute added to query and set that input or output's matrix attributes, including name, type, dim, and planecount. While overriding the default attribute behavior is conceivably necessary to perform very specialized behavior, it is not used by any of the SDK examples. To prevent the addition of the default attributes for name, type, dim, and planecount, you can use the MAX_JIT_MOP_FLAGS_OWN_NAME, MAX_JIT_MOP_FLAGS_OWN_TYPE, MAX_JIT_MOP_FLAGS_OWN_DIM, and MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT flags when calling the max_jit_classex_mop_wrap() function. To define your own attributes, you would follow the same means of defining any attributes for a Max wrapper class with the appropriate attribute name you wish to override.

    +

    For each input and output, other than the leftmost input, there is, by default, an attribute added to query and set that input or output's matrix attributes, including name, type, dim, and planecount. While overriding the default attribute behavior is conceivably necessary to perform very specialized behavior, it is not used by any of the SDK examples. To prevent the addition of the default attributes for name, type, dim, and planecount, you can use the MAX_JIT_MOP_FLAGS_OWN_NAME, MAX_JIT_MOP_FLAGS_OWN_TYPE, MAX_JIT_MOP_FLAGS_OWN_DIM, and MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT flags when calling the max_jit_classex_mop_wrap() function. To define your own attributes, you would follow the same means of defining any attributes for a Max wrapper class with the appropriate attribute name you wish to override.

    Overriding the clear and notify Methods

    -

    By default, a clear and a notify method are added. The default clear method clears each of the input and output matrices. The default notify method, max_jit_mop_notify(), is called whenever any of the matrices maintained by the MOP are changed. If it is necessary to respond to additional notifications, it is important to call the max_jit_mop_notify function so that the MOP can perform any necessary maintenance with respect to input and output matrices, as demonstrated by the jit.notify SDK example. These methods can be overridden using the MAX_JIT_MOP_FLAGS_OWN_CLEAR and MAX_JIT_MOP_FLAGS_OWN_NOTIFY flags, respectively, when calling the max_jit_classex_mop_wrap() function. Object registration and notification is covered in detail in a future chapter, but the jit.notify notify method is provided as an example.

    +

    By default, a clear and a notify method are added. The default clear method clears each of the input and output matrices. The default notify method, max_jit_mop_notify(), is called whenever any of the matrices maintained by the MOP are changed. If it is necessary to respond to additional notifications, it is important to call the max_jit_mop_notify function so that the MOP can perform any necessary maintenance with respect to input and output matrices, as demonstrated by the jit.notify SDK example. These methods can be overridden using the MAX_JIT_MOP_FLAGS_OWN_CLEAR and MAX_JIT_MOP_FLAGS_OWN_NOTIFY flags, respectively, when calling the max_jit_classex_mop_wrap() function. Object registration and notification is covered in detail in a future chapter, but the jit.notify notify method is provided as an example.

    // s is the servername, msg is the message, ob is the server object pointer,
    // and data is extra data the server might provide for a given message
    void max_jit_notify_notify(
    @@ -324,11 +324,11 @@

    void error(C74_CONST char *fmt,...)
    Print an error to the Max window.
    BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
    Print text to the Max window.
    t_jit_err max_jit_mop_notify(void *x, t_symbol *s, t_symbol *msg)
    Default notify method for a MOP Max wrapper object.
    Definition: max.jit.mop.c:1428
    -
    void max_jit_obex_dumpout(void *x, t_symbol *s, short argc, t_atom *argv)
    Sends a message and arguments out the dump outlet.
    Definition: jit.max.c:2840
    -
    char * s_name
    name: a c-string
    Definition: ext_mess.h:78
    +
    void max_jit_obex_dumpout(void *x, t_symbol *s, short argc, t_atom *argv)
    Sends a message and arguments out the dump outlet.
    Definition: jit.max.c:2865
    +
    char * s_name
    name: a c-string
    Definition: ext_mess.h:103

    Overriding the adapt and outputmode Attributes

    -

    By default, adapt and outputmode attributes are added to the MOP Max Wrapper. These attributes determine whether or not to adapt to incoming matrix attributes, and whether or not the output should calculate a new output matrix, output the last calculated matrix (freeze), pass on the input matrix (bypass). To prevent the addition of the default attributes for adapt and outputmode, you can use the MAX_JIT_MOP_FLAGS_OWN_ADAPT, and MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE flags when calling the max_jit_classex_mop_wrap() function. To define your own attributes, you would follow the same means of defining any attributes for a Max wrapper class with the appropriate attribute name you wish to override.

    +

    By default, adapt and outputmode attributes are added to the MOP Max Wrapper. These attributes determine whether or not to adapt to incoming matrix attributes, and whether or not the output should calculate a new output matrix, output the last calculated matrix (freeze), pass on the input matrix (bypass). To prevent the addition of the default attributes for adapt and outputmode, you can use the MAX_JIT_MOP_FLAGS_OWN_ADAPT, and MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE flags when calling the max_jit_classex_mop_wrap() function. To define your own attributes, you would follow the same means of defining any attributes for a Max wrapper class with the appropriate attribute name you wish to override.

    Defining an mproc Method

    For many types of operations, it's not required to fully override the default jit_matrix method and any adaptation. If your object simply needs to override the way in which the Jitter class' matrix_calc method and outlet functions are called, you can do so by defining an mproc method, which will be called instead of the default behavior. The jit.3m SDK project is an example where after it calls the Jitter class' matrix_calc method, it queries the Jitter class' attributes and outputs max messages rather than the default jit_matrix message output.

    @@ -353,8 +353,8 @@

    JIT_EX_DATA t_symbol * _jit_sym_matrix_calc
    cached t_symbol
    Definition: jit.symbols.h:81
    JIT_EX_DATA t_symbol * _jit_sym_getinputlist
    cached t_symbol
    Definition: jit.symbols.h:91
    JIT_EX_DATA t_symbol * _jit_sym_getoutputlist
    cached t_symbol
    Definition: jit.symbols.h:92
    -
    void * max_jit_obex_jitob_get(void *x)
    Retrieves the wrapped Jitter object from a Max wrapper object.
    Definition: jit.max.c:2588
    -
    void jit_error_code(void *x, t_jit_err v)
    Sends error code based error message to Max console (safe from all threads)
    Definition: jit.foundation.c:1559
    +
    void * max_jit_obex_jitob_get(void *x)
    Retrieves the wrapped Jitter object from a Max wrapper object.
    Definition: jit.max.c:2613
    +
    void jit_error_code(void *x, t_jit_err v)
    Sends error code based error message to Max console (safe from all threads)
    Definition: jit.foundation.c:1572

    The Max Class Constructor/Destructor

    As we discussed in the Matrix Operator Quick Start, inside your Max class' constructor you need to allocate the matrices necessary for the MOP inputs and outputs, the corresponding matrix inlets and outlets, process matrix arguments and other MOP setup. And in your destructor, you need to free oup MOP resources. Typically you would accomplish this all with the standard max_jit_mop_setup_simple() and max_jit_mop_free() functions, however there are some instances where you may need to introduce custom behavior.

    @@ -434,10 +434,10 @@

    t_jit_err max_jit_mop_outputs(void *x)
    Creates output resources for a MOP Max wrapper object.
    Definition: max.jit.mop.c:951
    t_jit_err max_jit_mop_matrixout_new(void *x, long c)
    Creates matrix outlet for a MOP Max wrapper object.
    Definition: max.jit.mop.c:1047
    t_jit_err max_jit_mop_inputs(void *x)
    Creates input resources for a MOP Max wrapper object.
    Definition: max.jit.mop.c:860
    -
    t_jit_err max_jit_obex_proxy_new(void *x, long c)
    Creates a new proxy inlet.
    Definition: jit.max.c:2697
    -
    void * max_jit_obex_adornment_get(void *x, t_symbol *classname)
    Retrieves Max wrapper object adornment specified by class name.
    Definition: jit.max.c:2878
    -
    void * jit_object_attach(t_symbol *s, void *x)
    Attaches an object as a client of a named server object for notification.
    Definition: jit.foundation.c:1172
    -
    void * jit_object_register(void *x, t_symbol *s)
    Registers an object in the named object registry.
    Definition: jit.foundation.c:1102
    +
    t_jit_err max_jit_obex_proxy_new(void *x, long c)
    Creates a new proxy inlet.
    Definition: jit.max.c:2722
    +
    void * max_jit_obex_adornment_get(void *x, t_symbol *classname)
    Retrieves Max wrapper object adornment specified by class name.
    Definition: jit.max.c:2903
    +
    void * jit_object_attach(t_symbol *s, void *x)
    Attaches an object as a client of a named server object for notification.
    Definition: jit.foundation.c:1185
    +
    void * jit_object_register(void *x, t_symbol *s)
    Registers an object in the named object registry.
    Definition: jit.foundation.c:1115

    Matrix Arguments

    The max_jit_mop_setup_simple() function calls max_jit_mop_matrix_args() to read any matrix arguments, and if present send them to any linked inputs/outputs and disable the adapt attribute. The listing is provided below to illustrate the default behavior.

    @@ -524,11 +524,11 @@

    JIT_EX_DATA t_symbol * _jit_sym_typelink
    cached t_symbol
    Definition: jit.symbols.h:98
    JIT_EX_DATA t_symbol * _jit_sym_adapt
    cached t_symbol
    Definition: jit.symbols.h:106
    t_jit_err max_jit_mop_matrix_args(void *x, long argc, t_atom *argv)
    Process matrix arguments for a MOP Max wrapper object.
    Definition: max.jit.mop.c:1092
    -
    long max_jit_attr_args_offset(short ac, t_atom *av)
    Determines argument offset to first attribute argument.
    Definition: jit.max.c:390
    -
    long dim[JIT_MATRIX_MAX_DIMCOUNT]
    dimension sizes
    Definition: jit.common.h:112
    -
    long planecount
    number of planes
    Definition: jit.common.h:114
    -
    long dimcount
    number of dimensions
    Definition: jit.common.h:111
    -
    t_symbol * type
    primitifve type (char, long, float32, or float64)
    Definition: jit.common.h:109
    +
    long max_jit_attr_args_offset(short ac, t_atom *av)
    Determines argument offset to first attribute argument.
    Definition: jit.max.c:392
    +
    long dim[JIT_MATRIX_MAX_DIMCOUNT]
    dimension sizes
    Definition: jit.common.h:121
    +
    long planecount
    number of planes
    Definition: jit.common.h:123
    +
    long dimcount
    number of dimensions
    Definition: jit.common.h:120
    +
    t_symbol * type
    primitifve type (char, long, float32, or float64)
    Definition: jit.common.h:118

    diff --git a/html/chapter_jit_mopqs.html b/html/chapter_jit_mopqs.html index 22201176..131912db 100644 --- a/html/chapter_jit_mopqs.html +++ b/html/chapter_jit_mopqs.html @@ -102,7 +102,7 @@

    // add the jit_mop object as an adornment to the class
    jit_class_addadornment(_jit_scalebias_class,mop);
    -
    t_jit_err jit_class_addadornment(void *c, t_jit_object *o)
    Adds an adornment to a class.
    Definition: jit.foundation.c:367
    +
    t_jit_err jit_class_addadornment(void *c, t_jit_object *o)
    Adds an adornment to a class.
    Definition: jit.foundation.c:372
    JIT_EX_DATA t_symbol * _jit_sym_char
    cached t_symbol
    Definition: jit.symbols.h:25
    JIT_EX_DATA t_symbol * _jit_sym_jit_mop
    cached t_symbol
    Definition: jit.symbols.h:84
    t_jit_err jit_mop_single_type(void *mop, t_symbol *s)
    Utility function to set the type attribute for all MOP inputs and outputs.
    Definition: jit.mop.c:835
    @@ -111,11 +111,11 @@

    Once you have created your jit_mop instance, and configured it according to the needs of your object, you add it as an adornment to your Jitter class with the jit_class_add_adornment() function. Adornments are one way for Jitter objects to have additional information, and in some instances behavior, tacked onto an existing class. Adornments will be discussed in detail in a later chapter.

    You also want to define your matrix calculation method, where most of the work of a Matrix Operator occurs, with the jit_class_addmethod() function as a private, untyped method bound to the symbol matrix_calc.

    jit_class_addmethod(_jit_scalebias_class,
    -
    (method)jit_scalebias_matrix_calc,
    +
    (method)jit_scalebias_matrix_calc,
    "matrix_calc", A_CANT, 0L);
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    -
    t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
    Adds a named method to a class.
    Definition: jit.foundation.c:326
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287
    +
    t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
    Adds a named method to a class.
    Definition: jit.foundation.c:331
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25

    The Jitter Class Constructor/Destructor

    You don't need to add anything special to your Matrix Operator's constructor or destructor, aside from the standard initialization and cleanup any Jitter object would need to do. Any internal matrices for input and outputs are maintained, and only required, by the Max wrapper's asynchronous interface. The Jitter MOP contains no matrices for inputs and outputs, but rather expects that the matrix calculation method is called with all inputs and outputs synchronously. When used from languages like C, Java, and JavaScript, it is up to the programmer to maintain and provide any matrices which are being passed into the matrix calculation method.

    @@ -129,7 +129,7 @@

    long in_savelock,out_savelock;
    t_jit_matrix_info in_minfo,out_minfo;
    char *in_bp,*out_bp;
    -
    long i,dimcount,planecount,dim[JIT_MATRIX_MAX_DIMCOUNT];
    +
    long i,dimcount,planecount,dim[JIT_MATRIX_MAX_DIMCOUNT];
    void *in_matrix,*out_matrix;
    // get the zeroth index input and output from
    @@ -189,7 +189,7 @@

    // call the calculate_ndim function in multiple
    // threads if there are multiple processors available
    -
    (method)jit_scalebias_calculate_ndim,
    +
    (method)jit_scalebias_calculate_ndim,
    x, dimcount, dim, planecount,
    &in_minfo, in_bp, &out_minfo, out_bp,
    0, 0);
    @@ -205,16 +205,16 @@

    }
    JIT_EX_DATA t_symbol * _jit_sym_lock
    cached t_symbol
    Definition: jit.symbols.h:51
    JIT_EX_DATA t_symbol * _jit_sym_getdata
    cached t_symbol
    Definition: jit.symbols.h:56
    -
    #define JIT_MATRIX_MAX_DIMCOUNT
    maximum dimension count
    Definition: jit.common.h:58
    JIT_EX_DATA t_symbol * _jit_sym_getindex
    cached t_symbol
    Definition: jit.symbols.h:65
    JIT_EX_DATA t_symbol * _jit_sym_getinfo
    cached t_symbol
    Definition: jit.symbols.h:54
    +
    @ JIT_MATRIX_MAX_DIMCOUNT
    maximum dimension count
    Definition: jit.common.h:64
    #define MIN(a, b)
    Return the lower of two values.
    Definition: ext_common.h:77
    void jit_parallel_ndim_simplecalc2(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2)
    Tasks two input/output N-dimensional matrix calcuations to multiple threads if appropriate.
    Definition: jit.parallel.utils.c:234
    -
    Matrix information struct.
    Definition: jit.common.h:107
    -
    long dim[JIT_MATRIX_MAX_DIMCOUNT]
    dimension sizes
    Definition: jit.common.h:112
    -
    long planecount
    number of planes
    Definition: jit.common.h:114
    -
    long dimcount
    number of dimensions
    Definition: jit.common.h:111
    -
    t_symbol * type
    primitifve type (char, long, float32, or float64)
    Definition: jit.common.h:109
    +
    Matrix information struct.
    Definition: jit.common.h:116
    +
    long dim[JIT_MATRIX_MAX_DIMCOUNT]
    dimension sizes
    Definition: jit.common.h:121
    +
    long planecount
    number of planes
    Definition: jit.common.h:123
    +
    long dimcount
    number of dimensions
    Definition: jit.common.h:120
    +
    t_symbol * type
    primitifve type (char, long, float32, or float64)
    Definition: jit.common.h:118

    Processing N-Dimensional Matrices

    Since Jitter supports the processing of N-dimensional matrices where N can be any number from 1 to 32, most Matrix Operators are designed with a recursive function that will process the data in some lower dimensional slice, most often 2 dimensional. The recursive function that does this is typically named myobject_calculate_ndim(), and is called by your matrix_calc method either directly or via one of the parallel processing utility functions, which are discussed in a future chapter.

    @@ -313,7 +313,7 @@

    }
    }
    }
    -
    long dimstride[JIT_MATRIX_MAX_DIMCOUNT]
    stride across dimensions in bytes
    Definition: jit.common.h:113
    +
    long dimstride[JIT_MATRIX_MAX_DIMCOUNT]
    stride across dimensions in bytes
    Definition: jit.common.h:122

    Rather than using multidimensional arrays, Jitter matrix data is packed in a single dimensional array, with defined byte strides for each dimension for greatest flexibility. This permits matrices to reference subregions of larger matrices, as well as support data that is not tightly packed. Therefore, rather than using multidimensional array syntax, this code uses pointer arithmetic to access each plane of each cell of the matrix, adding the corresponding byte strides to the base pointer for each dimension across which it is iterating. These byte strides are stored in the dimstride entry of the t_jit_matrix_info struct. Note that Jitter requires that planes within a cell, and cells across the first dimension (dim[0]) are tightly packed. The above code assumes that this is the case, using a simple pointer increment for each plane and cell, rather than looking up byte strides for dim[0].

    Defining the MOP Max Wrapper Class

    @@ -363,11 +363,11 @@

    void freeobject(void *op)
    Release the memory used by a Max object.
    void error(C74_CONST char *fmt,...)
    Print an error to the Max window.
    t_jit_err max_jit_mop_setup_simple(void *x, void *o, long argc, t_atom *argv)
    Initializes default state and resources for MOP Max wrapper class.
    Definition: max.jit.mop.c:2246
    -
    void max_jit_attr_args(void *x, short ac, t_atom *av)
    Processes attribute arguments.
    Definition: jit.max.c:406
    -
    void * max_jit_obex_new(void *mc, t_symbol *classname)
    Allocates an initializes a new Max wrapper object instance.
    Definition: jit.max.c:2314
    +
    void max_jit_attr_args(void *x, short ac, t_atom *av)
    Processes attribute arguments.
    Definition: jit.max.c:408
    +
    void * max_jit_obex_new(void *mc, t_symbol *classname)
    Allocates an initializes a new Max wrapper object instance.
    Definition: jit.max.c:2339
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The symbol.
    Definition: ext_mess.h:102

Below is the listing of the max_jit_mop_setup_simple() function, demonstrating the smaller pieces, it manages for you. If your object has special requirements, you can use whatever subset of the following function as necessary.

t_jit_err max_jit_mop_setup_simple(void *x, void *o, long argc, t_atom *argv)
{
@@ -385,8 +385,8 @@

t_jit_err max_jit_mop_setup(void *x)
Sets up necessary resources for MOP Max wrapper object.
Definition: max.jit.mop.c:793
t_jit_err max_jit_mop_matrix_args(void *x, long argc, t_atom *argv)
Process matrix arguments for a MOP Max wrapper object.
Definition: max.jit.mop.c:1092
t_jit_err max_jit_mop_inputs(void *x)
Creates input resources for a MOP Max wrapper object.
Definition: max.jit.mop.c:860
-
void max_jit_obex_dumpout_set(void *x, void *outlet)
Sets the Max wrapper object's dump outlet's outlet pointer.
Definition: jit.max.c:2801
-
void max_jit_obex_jitob_set(void *x, void *jitob)
Sets the wrapped Jitter object for a Max wrapper object.
Definition: jit.max.c:2606
+
void max_jit_obex_dumpout_set(void *x, void *outlet)
Sets the Max wrapper object's dump outlet's outlet pointer.
Definition: jit.max.c:2826
+
void max_jit_obex_jitob_set(void *x, void *jitob)
Sets the wrapped Jitter object for a Max wrapper object.
Definition: jit.max.c:2631

In your Max class' destructor, you need to free the resources allocated for your MOP. This is accomplished with the max_jit_mop_free() function, which should be called before you free your internal Jitter instance, and your Max class' obex data. As an example, the jit.scalebias destructor is listed below.

void max_jit_scalebias_free(t_max_jit_scalebias *x)
{
@@ -401,9 +401,9 @@

}
void max_jit_mop_free(void *x)
Frees additional resources used by a MOP Max wrapper object.
Definition: max.jit.mop.c:1484
-
void * max_jit_obex_jitob_get(void *x)
Retrieves the wrapped Jitter object from a Max wrapper object.
Definition: jit.max.c:2588
-
void max_jit_obex_free(void *x)
Frees additional resources for the Max wrapper object instance.
Definition: jit.max.c:2366
-
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:931
+
void * max_jit_obex_jitob_get(void *x)
Retrieves the wrapped Jitter object from a Max wrapper object.
Definition: jit.max.c:2613
+
void max_jit_obex_free(void *x)
Frees additional resources for the Max wrapper object instance.
Definition: jit.max.c:2391
+
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:936

diff --git a/html/chapter_jit_networking.html b/html/chapter_jit_networking.html index 3d2978a5..c6fb9f2c 100644 --- a/html/chapter_jit_networking.html +++ b/html/chapter_jit_networking.html @@ -127,12 +127,12 @@
t_int32 planecount;
t_int32 type; //0=char,1=long,2=float32,3=float64
t_int32 dimcount;
-
t_int32 dim[JIT_MATRIX_MAX_DIMCOUNT];
-
t_int32 dimstride[JIT_MATRIX_MAX_DIMCOUNT];
+
t_int32 dim[JIT_MATRIX_MAX_DIMCOUNT];
+
t_int32 dimstride[JIT_MATRIX_MAX_DIMCOUNT];
t_int32 datasize;
double time;
} t_jit_net_packet_matrix;
-
#define JIT_MATRIX_MAX_DIMCOUNT
maximum dimension count
Definition: jit.common.h:58
+
@ JIT_MATRIX_MAX_DIMCOUNT
maximum dimension count
Definition: jit.common.h:64

Following this header the next data received will be the matrix data, the size of which was passed in the above header. When using the data, please note the dimstrides transmitted in the header.

The time field in the above header will be set to the time of transmission from the sending computer. jit.net.send expects the server to respond by sending back timing data of its own – it uses this data to estimate the transmission latency. The exact data in the latency chunk that jit.net.send expects to receive is the following:

@@ -200,13 +200,13 @@
break;
}
}
-
@ A_LONG
long integer
Definition: ext_mess.h:251
-
@ A_FLOAT
32-bit float
Definition: ext_mess.h:252
-
@ A_SYM
t_symbol pointer
Definition: ext_mess.h:253
+
@ A_LONG
long integer
Definition: ext_mess.h:279
+
@ A_FLOAT
32-bit float
Definition: ext_mess.h:280
+
@ A_SYM
t_symbol pointer
Definition: ext_mess.h:281
BEGIN_USING_C_LINKAGE t_ptr sysmem_newptr(t_ptr_size size)
Allocate memory.
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
An atom is a typed datum.
Definition: ext_mess.h:293
-
The symbol.
Definition: ext_mess.h:77
+
An atom is a typed datum.
Definition: ext_mess.h:323
+
The symbol.
Definition: ext_mess.h:102
diff --git a/html/chapter_jit_notification.html b/html/chapter_jit_notification.html index 4a9ae0e3..229ced70 100644 --- a/html/chapter_jit_notification.html +++ b/html/chapter_jit_notification.html @@ -121,11 +121,11 @@

}
t_symbol * jit_atom_getsym(t_atom *a)
Retrieves atom value as symbol pointer.
Definition: jit.atom.c:120
JIT_EX_DATA t_symbol * _jit_sym_class_jit_matrix
cached t_symbol
Definition: jit.symbols.h:41
-
void * jit_object_findregistered(t_symbol *s)
Retrieves a registered object associated with name.
Definition: jit.foundation.c:1136
+
void * jit_object_findregistered(t_symbol *s)
Retrieves a registered object associated with name.
Definition: jit.foundation.c:1149

Attaching to Named Objects

Once an object has been registered, it can be considered a server to which clients attach to be notified of various events. To attach to a named object, use the the jit_object_attach() function. Similarly to detach from a named object, use the jit_object_detach() function. It is typical to detach from a server in your object's destructor, or any time your object is switching which server it is attached to. For your client object to receive any notification from the server object, it is important for your object to have defined a "notify" method which will receive the notification from all objects it is attached to.

-

Below is the jit.notify SDK example's max wrapper object's notify method, which receives some atom values from its internal Jitter object instance. Since this object is a Matrix Operator, it is important in the following example that jit.notify calls the max_jit_classex_mop_wrap() function with the MAX_JIT_MOP_FLAGS_OWN_NOTIFY flag to override the default MOP notify method, and that we pass on all other messages to the standard max_jit_mop_notify() method so that the default MOP code is informed of any changes to the input and output matrices.

+

Below is the jit.notify SDK example's max wrapper object's notify method, which receives some atom values from its internal Jitter object instance. Since this object is a Matrix Operator, it is important in the following example that jit.notify calls the max_jit_classex_mop_wrap() function with the MAX_JIT_MOP_FLAGS_OWN_NOTIFY flag to override the default MOP notify method, and that we pass on all other messages to the standard max_jit_mop_notify() method so that the default MOP code is informed of any changes to the input and output matrices.

// s is the servername, msg is the message, ob is the server object pointer,
// and data is extra data the server might provide for a given message
void max_jit_notify_notify(t_max_jit_notify *x, t_symbol *s, t_symbol *msg, void *ob, void *data)
@@ -151,10 +151,10 @@

void error(C74_CONST char *fmt,...)
Print an error to the Max window.
BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
Print text to the Max window.
t_jit_err max_jit_mop_notify(void *x, t_symbol *s, t_symbol *msg)
Default notify method for a MOP Max wrapper object.
Definition: max.jit.mop.c:1428
-
void max_jit_obex_dumpout(void *x, t_symbol *s, short argc, t_atom *argv)
Sends a message and arguments out the dump outlet.
Definition: jit.max.c:2840
-
An atom is a typed datum.
Definition: ext_mess.h:293
-
The symbol.
Definition: ext_mess.h:77
-
char * s_name
name: a c-string
Definition: ext_mess.h:78
+
void max_jit_obex_dumpout(void *x, t_symbol *s, short argc, t_atom *argv)
Sends a message and arguments out the dump outlet.
Definition: jit.max.c:2865
+
An atom is a typed datum.
Definition: ext_mess.h:323
+
The symbol.
Definition: ext_mess.h:102
+
char * s_name
name: a c-string
Definition: ext_mess.h:103

Notifying Clients

If you are making an object which is to be registered, and wish to send custom notification to clients in addition to the default notification that attributes send to all clients when the attribute is modified, and the default object free notification, then you will want to use the jit_object_notify() function. This function lets you determine a message name to use for notification and optionally specify additional, but untyped data to all clients. If you choose to send additional data to clients, it is necessary for all client code to know how to unpack this information. Below is the example from the jit.notify SDK example which uses the notification mechanism to send some data to its max wrapper object:

@@ -165,7 +165,7 @@

jit_atom_setlong(&foo[2],3);
jit_object_notify(x,gensym("splat"), foo);
t_jit_err jit_atom_setlong(t_atom *a, t_atom_long b)
Sets atom value to long integer.
Definition: jit.atom.c:27
-
t_jit_err jit_object_notify(void *x, t_symbol *s, void *data)
Notifies all client objects for a named server object.
Definition: jit.foundation.c:1207
+
t_jit_err jit_object_notify(void *x, t_symbol *s, void *data)
Notifies all client objects for a named server object.
Definition: jit.foundation.c:1220
diff --git a/html/chapter_jit_ob3ddetails.html b/html/chapter_jit_ob3ddetails.html index 9182f6ab..bfa013bc 100644 --- a/html/chapter_jit_ob3ddetails.html +++ b/html/chapter_jit_ob3ddetails.html @@ -102,38 +102,38 @@

Since all Jitter OB3D objects are named to support reference by name in jit.gl.sketch, and other objects, it is necessary to add the default registration method, jit_object_register(). Object registration and notification are covered in detail in a future chapter.

Overriding Rotation and Scale Related Attributes

-

By default, each Jitter OB3D has rotate, rotatexyz, scale, and viewalign attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble() function to set up OpenGL state prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_ROTATION_SCALE flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glMatrixMode, glTranslate, glRotate, and glScale.

+

By default, each Jitter OB3D has rotate, rotatexyz, scale, and viewalign attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble() function to set up OpenGL state prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_ROTATION_SCALE flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glMatrixMode, glTranslate, glRotate, and glScale.

Overriding Color Related Attributes

-

By default, each Jitter OB3D has color, aux_color, and smooth_shading attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_COLOR flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glColor and glShadeModel.

+

By default, each Jitter OB3D has color, aux_color, and smooth_shading attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_COLOR flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glColor and glShadeModel.

Overriding Texture Related Attributes

-

By default, each Jitter OB3D has texture, capture, tex_map, tex_plane_s, and tex_plane_t attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble() function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_TEXTURE flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glTexGen, jit_gl_bindtexture, jit_gl_unbindtexture, jit_gl_begincapture, and jit_gl_endcapture.

+

By default, each Jitter OB3D has texture, capture, tex_map, tex_plane_s, and tex_plane_t attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble() function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_TEXTURE flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glTexGen, jit_gl_bindtexture, jit_gl_unbindtexture, jit_gl_begincapture, and jit_gl_endcapture.

Overriding Lighting and Material Related Attributes

-

By default, each Jitter OB3D has lighting_enable, auto_material, shininess, mat_ambient, mat_diffuse, mat_specular, and mat_emission attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_LIGHTING_MATERIAL flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glLight, glLightModel, and glMaterial.

+

By default, each Jitter OB3D has lighting_enable, auto_material, shininess, mat_ambient, mat_diffuse, mat_specular, and mat_emission attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_LIGHTING_MATERIAL flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glLight, glLightModel, and glMaterial.

Overriding Fog Related Attributes

-

By default, each Jitter OB3D has fog and fog_params attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_FOG flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glHint, and glFog.

+

By default, each Jitter OB3D has fog and fog_params attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_FOG flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable, glHint, and glFog.

Overriding Polygon Variable Related Attributes

-

By default, each Jitter OB3D has poly_mode, cull_face, point_size, and line_width attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_POLY_VARS flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glPolygonMode, glEnable, glCullFace, glPointSize, and glLineWidth.

+

By default, each Jitter OB3D has poly_mode, cull_face, point_size, and line_width attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_POLY_VARS flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glPolygonMode, glEnable, glCullFace, glPointSize, and glLineWidth.

Overriding Blending Related Attributes

-

By default, each Jitter OB3D has blend_mode and blend_enable attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_BLEND flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable and glBlendFunc.

+

By default, each Jitter OB3D has blend_mode and blend_enable attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_BLEND flag. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable and glBlendFunc.

Overriding Depth Buffer and Antialiasing Related Attributes

-

By default, each Jitter OB3D has depth_enable and antialias attributes added to the class by jit_ob3d_setup(), and these attributes are used in your ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_DEPTH and JIT_OB3D_NO_ANTIALIAS flags, respectively. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable and glHint.

+

By default, each Jitter OB3D has depth_enable and antialias attributes added to the class by jit_ob3d_setup(), and these attributes are used in your ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_DEPTH and JIT_OB3D_NO_ANTIALIAS flags, respectively. You can override these attributes by defining your own attributes of the same name, however, you will need to manage any necessary OpenGL state inside of your own draw method with the appropriate calls to glEnable and glHint.

Overriding Matrixoutput and Automatic Attributes

-

By default, each Jitter OB3D has matrixoutput and automatic attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_MATRIXOUTPUT and JIT_OB3D_AUTO_ONLY flags, respectively. You can override these attributes by defining your own attributes of the same name.

+

By default, each Jitter OB3D has matrixoutput and automatic attributes added to the class by jit_ob3d_setup(), and these attributes are used in the ob3d_draw_preamble function prior to calling your object's draw method. These attributes can be disabled by using the JIT_OB3D_NO_MATRIXOUTPUT and JIT_OB3D_AUTO_ONLY flags, respectively. You can override these attributes by defining your own attributes of the same name.

Declaring a User Interface Object

-

It is possible to declare a user interface OB3D, such as jit.gl.handle. To do so, you must use the JIT_OB3D_DOES_UI flag to jit_ob3d_setup(), and define a method bound to the symbol ob3d_ui, with the private A_CANT type signature and prototype similar to the following example from jit.gl.handle:

+

It is possible to declare a user interface OB3D, such as jit.gl.handle. To do so, you must use the JIT_OB3D_DOES_UI flag to jit_ob3d_setup(), and define a method bound to the symbol ob3d_ui, with the private A_CANT type signature and prototype similar to the following example from jit.gl.handle:

t_jit_err jit_gl_handle_ui(t_jit_gl_handle *x,
t_line_3d *p_line, t_wind_mouse_info *p_mouse);
-
Line or line segment in 3D space (GLfloat)
Definition: jit.gl.common.h:149
-
t_wind_mouse_info_struct provided by jit.window and jit.pwindow mouse events
Definition: jit.gl.common.h:111
+
Line or line segment in 3D space (GLfloat)
Definition: jit.gl.common.h:160
+
t_wind_mouse_info_struct provided by jit.window and jit.pwindow mouse events
Definition: jit.gl.common.h:122

The Jitter Class Constructor and Destructor

Inside your Jitter class constructor, you must call jit_ob3d_new() with a pointer to your newly allocated object, and your render destination name. The jit_ob3d_new() function allocates an opaque structure that stores the standard OB3D attributes and some additional OB3D state, initializing them to default values, and then setting the pointer at the byte offset specified when calling the jit_ob3d_setup() function in your class definition. If your object supports matrix output or simply uses the t_jit_glchunk structure when drawing, you should typically allocate your initial t_jit_glchunk in your constructor using the jit_glchunk_new() or jit_glchunk_grid_new() functions. Use of the t_jit_glchunk structure and matrix output is described later in this chapter. Similarly, your OB3D Jitter class destructor must call jit_ob3d_free() to free the opaque structure used for common OB3D state, free any allocated instances of t_jit_glchunk with jit_glchunk_free(), and free any other resources allocated such as display lists or textures.

@@ -165,8 +165,8 @@

#define JIT_GL_CHUNK_IGNORE_COLORS 1 << 2
#define JIT_GL_CHUNK_IGNORE_EDGES 1 << 3
t_jit_glchunk is a public structure to store one gl-command's-worth of data, in a format which can be...
Definition: jit.gl.chunk.h:37
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
-
The symbol.
Definition: ext_mess.h:77
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191
+
The symbol.
Definition: ext_mess.h:102

OB3D OpenGL Caveats

While you can use any standard Open GL calls inside of your ob3d_draw method. There are a few things worth noting to follow Jitter conventions. The first of which is the binding of texture coordinates. Since Jitter OB3Ds support multi-texturing by default, it is not necessarily satisfactory to submit only one texture coordinate with glTexCoord. Jitter provides some utility routines to set the texture coordinates for as many texture units which are bound, jit_gl_texcoord(1/2/3)(f/fv). Determining how many texture units have been bound by the default OB3D attributes requires some overhead, so rather than perform this overhead with every jit_gl_texcoord call, the jit_gl_texcoord functions take a t_jit_gl_drawinfo struct as an argument. This struct can be setup once before rendering many vertices with the jit_gl_drawinfo_setup function. Example use of jit_gl_texcoord and jit_gl_drawinfo_setup is in the jit.gl.videoplane SDK project. Another Jitter specific mechanism is the means to bind textures using named instances of jit.gl.texture. It is possible to create and bind your own textures in an OB3D, but you must then perform all maintenance instead of relying on jit.gl.texture to handle this work for you. To bind and unbind an instance of jit.gl.texture, you should call the jit_gl_bindtexture and jit_gl_unbindtexture functions, which take a t_jit_gl_drawinfo argument, a symbol with the name of the jit.gl.texture instance, and an integer for which texture unit to bind. Unlike binding ordinary textures in OpenGL, it is important to unbind instances of jit.gl.texture, or else problems may arise.

diff --git a/html/chapter_jit_ob3dqs.html b/html/chapter_jit_ob3dqs.html index 7c4d0961..cadf1f15 100644 --- a/html/chapter_jit_ob3dqs.html +++ b/html/chapter_jit_ob3dqs.html @@ -109,11 +109,11 @@

Aside from the attributes and methods added to your class by jit_ob3d_setup(), you need to define a private, untyped method bound to the symbol ob3d_draw. This method is where your object does all its drawing. It is called by the standard OB3D draw and drawraw methods. The OB3D draw method sets up all of the OpenGL state associated with the common OB3D attributes before calling your private ob3d_draw method. The drawraw method simply sets the context before calling your private ob3d_draw method. Because OB3Ds support being named for use within jit.gl.sketch*'s drawobject command, you must also add a private, untyped "register" method associated with the jit_object_register() function. Let's examine the *jit.gl.simple SDK project as an example:

t_jit_err jit_gl_simple_init(void)
{
-
long ob3d_flags = JIT_OB3D_NO_MATRIXOUTPUT; // no matrix output
+
long ob3d_flags = JIT_OB3D_NO_MATRIXOUTPUT; // no matrix output
void *ob3d;
_jit_gl_simple_class = jit_class_new("jit_gl_simple",
-
(method)jit_gl_simple_new, (method)jit_gl_simple_free,
+
(method)jit_gl_simple_new, (method)jit_gl_simple_free,
sizeof(t_jit_gl_simple),0L);
// set up object extension for 3d object, customized with flags
@@ -126,7 +126,7 @@

// method is A_CANT because our draw setup needs to happen
// in the ob3d beforehand to initialize OpenGL state
jit_class_addmethod(_jit_gl_simple_class,
-
(method)jit_gl_simple_draw, "ob3d_draw", A_CANT, 0L);
+
(method)jit_gl_simple_draw, "ob3d_draw", A_CANT, 0L);
// define the dest_closing and dest_changed methods.
// these methods are called by jit.gl.render when the
@@ -138,26 +138,26 @@

// changed. In this object, these functions do nothing, and
// could be omitted.
jit_class_addmethod(_jit_gl_simple_class,
-
(method)jit_gl_simple_dest_closing, "dest_closing", A_CANT, 0L);
+
(method)jit_gl_simple_dest_closing, "dest_closing", A_CANT, 0L);
jit_class_addmethod(_jit_gl_simple_class,
-
(method)jit_gl_simple_dest_changed, "dest_changed", A_CANT, 0L);
+
(method)jit_gl_simple_dest_changed, "dest_changed", A_CANT, 0L);
// must register for ob3d use
jit_class_addmethod(_jit_gl_simple_class,
-
(method)jit_object_register, "register", A_CANT, 0L);
+
(method)jit_object_register, "register", A_CANT, 0L);
jit_class_register(_jit_gl_simple_class);
return JIT_ERR_NONE;
}
-
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:259
-
t_jit_err jit_class_register(void *c)
Registers class in the class registry.
Definition: jit.foundation.c:529
-
void * jit_class_new(C74_CONST char *name, method mnew, method mfree, long size,...)
Creates a new class with the name specified by the name argument.
Definition: jit.foundation.c:281
-
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:326
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
-
#define JIT_OB3D_NO_MATRIXOUTPUT
ob3d flag
Definition: jit.gl.common.h:62
-
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:180
-
void * jit_object_register(void *x, t_symbol *s)
Registers an object in the named object registry.
Definition: jit.foundation.c:1102
+
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:287
+
t_jit_err jit_class_register(void *c)
Registers class in the class registry.
Definition: jit.foundation.c:534
+
void * jit_class_new(C74_CONST char *name, method mnew, method mfree, long size,...)
Creates a new class with the name specified by the name argument.
Definition: jit.foundation.c:286
+
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:331
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25
+
@ JIT_OB3D_NO_MATRIXOUTPUT
ob3d flag
Definition: jit.gl.common.h:71
+
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:143
+
void * jit_object_register(void *x, t_symbol *s)
Registers an object in the named object registry.
Definition: jit.foundation.c:1115

The Jitter Class Constructor/Destructor

In your OB3D Jitter Class constructor, you need to pass in your rendering destination name as the first argument. You should call the jit_ob3d_new() function with your destination name argument to initialize the OB3D data pointer, associating it with your rendering destination. In your destructor, you need to free your OB3D data pointer with jit_ob3d_free(). The jit.gl.simple constructor and destructors are below as an example.

@@ -184,7 +184,7 @@

// free ob3d data
jit_ob3d_free(x);
}
-
The symbol.
Definition: ext_mess.h:77
+
The symbol.
Definition: ext_mess.h:102

The OB3D draw Method

Your OB3D draw method, bound to the ob3d_draw symbol, is where all of your drawing code takes place. It is called automatically when your associated jit.gl.render object receives a bang, if your automatic and enabled attributes are turned on, as they are by default. It is also called if your Max wrapper object receives a bang, or the draw or drawraw messages. With the exception of the drawraw message, all of the standard OB3D object state is setup prior to calling your ob3d_draw method, so you needn't setup things like the modelview transform, color, lighting properties, texture information, if your object doesn't have special needs. The following example from jit.gl.simple, just draws a simple quadrilateral.

@@ -215,7 +215,7 @@

// create Max class
setup((t_messlist **)&max_jit_gl_simple_class,
-
(method)max_jit_gl_simple_new, (method)max_jit_gl_simple_free,
+
(method)max_jit_gl_simple_new, (method)max_jit_gl_simple_free,
(short)sizeof(t_max_jit_gl_simple), 0L, A_GIMME, 0);
// specify a byte offset to keep additional information about our object
@@ -228,20 +228,20 @@

max_jit_classex_standard_wrap(classex, jitclass, 0);
// use standard ob3d assist method
-
addmess((method)max_jit_ob3d_assist, "assist", A_CANT,0);
+
addmess((method)max_jit_ob3d_assist, "assist", A_CANT,0);
// add methods for 3d drawing
max_ob3d_setup();
}
-
@ A_GIMME
request that args be passed as an array, the routine will check the types itself.
Definition: ext_mess.h:258
+
@ A_GIMME
request that args be passed as an array, the routine will check the types itself.
Definition: ext_mess.h:286
void addmess(method f, char *s, short type,...)
Use addmess() to bind a function to a message other than the standard ones covered by addbang(),...
BEGIN_USING_C_LINKAGE void setup(t_messlist **ident, method makefun, method freefun, t_getbytes_size size, method menufun, short type,...)
Use the setup() function to initialize your class by informing Max of its size, the name of your func...
void ext_main(void *r)
ext_main() is the entry point for an extern to be loaded, which all externs must implement this share...
Definition: myob.c:35
-
void * jit_class_findbyname(t_symbol *classname)
Retrieves class pointer associated with name provided.
Definition: jit.foundation.c:616
-
void * max_jit_classex_setup(long oboffset)
Allocates and initializes special t_max_jit_classex data, used by the Max wrapper class.
Definition: jit.max.c:2017
-
void max_jit_classex_standard_wrap(void *mclass, void *jclass, long flags)
Adds standard Jitter methods, as well as public methods and attributes of the specified Jitter class.
Definition: jit.max.c:953
+
void * jit_class_findbyname(t_symbol *classname)
Retrieves class pointer associated with name provided.
Definition: jit.foundation.c:621
+
void * max_jit_classex_setup(long oboffset)
Allocates and initializes special t_max_jit_classex data, used by the Max wrapper class.
Definition: jit.max.c:2042
+
void max_jit_classex_standard_wrap(void *mclass, void *jclass, long flags)
Adds standard Jitter methods, as well as public methods and attributes of the specified Jitter class.
Definition: jit.max.c:955
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
A list of symbols and their corresponding methods, complete with typechecking information.
Definition: ext_mess.h:129
+
A list of symbols and their corresponding methods, complete with typechecking information.
Definition: ext_mess.h:157

The Max Class Constructor/Destructor

Your Max class' constructor should be similar to the standard Max wrapper constructor, but the differences worth noting are that you should pass your first normal argument, which is the rendering destination, on to your Jitter OB3D constructor, and create a second outlet for matrix output, attached to your object's OB3D data. For your destructor, there is nothing additional you need to do for OB3D. The jit.gl.simple Max class' constructor and destructor are provided as examples.

@@ -302,16 +302,16 @@

void error(C74_CONST char *fmt,...)
Print an error to the Max window.
void * outlet_new(void *x, C74_CONST char *s)
Use outlet_new() to create an outlet that can send a specific non-standard message,...
JIT_EX_DATA t_symbol * _jit_sym_nothing
cached t_symbol
Definition: jit.symbols.h:16
-
void * max_jit_obex_jitob_get(void *x)
Retrieves the wrapped Jitter object from a Max wrapper object.
Definition: jit.max.c:2588
-
long max_jit_attr_args_offset(short ac, t_atom *av)
Determines argument offset to first attribute argument.
Definition: jit.max.c:390
-
void max_jit_obex_dumpout_set(void *x, void *outlet)
Sets the Max wrapper object's dump outlet's outlet pointer.
Definition: jit.max.c:2801
-
void max_jit_obex_jitob_set(void *x, void *jitob)
Sets the wrapped Jitter object for a Max wrapper object.
Definition: jit.max.c:2606
-
void max_jit_obex_free(void *x)
Frees additional resources for the Max wrapper object instance.
Definition: jit.max.c:2366
-
void max_jit_attr_args(void *x, short ac, t_atom *av)
Processes attribute arguments.
Definition: jit.max.c:406
-
void * max_jit_obex_new(void *mc, t_symbol *classname)
Allocates an initializes a new Max wrapper object instance.
Definition: jit.max.c:2314
-
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:931
-
An atom is a typed datum.
Definition: ext_mess.h:293
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
void * max_jit_obex_jitob_get(void *x)
Retrieves the wrapped Jitter object from a Max wrapper object.
Definition: jit.max.c:2613
+
long max_jit_attr_args_offset(short ac, t_atom *av)
Determines argument offset to first attribute argument.
Definition: jit.max.c:392
+
void max_jit_obex_dumpout_set(void *x, void *outlet)
Sets the Max wrapper object's dump outlet's outlet pointer.
Definition: jit.max.c:2826
+
void max_jit_obex_jitob_set(void *x, void *jitob)
Sets the wrapped Jitter object for a Max wrapper object.
Definition: jit.max.c:2631
+
void max_jit_obex_free(void *x)
Frees additional resources for the Max wrapper object instance.
Definition: jit.max.c:2391
+
void max_jit_attr_args(void *x, short ac, t_atom *av)
Processes attribute arguments.
Definition: jit.max.c:408
+
void * max_jit_obex_new(void *mc, t_symbol *classname)
Allocates an initializes a new Max wrapper object instance.
Definition: jit.max.c:2339
+
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:936
+
An atom is a typed datum.
Definition: ext_mess.h:323
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191
diff --git a/html/chapter_jit_objectmodel.html b/html/chapter_jit_objectmodel.html index d73d07aa..657a8177 100644 --- a/html/chapter_jit_objectmodel.html +++ b/html/chapter_jit_objectmodel.html @@ -108,8 +108,8 @@

t_jit_object *attr;
// create new class named "jit_foo" with constructor + destructor
-
_jit_foo_class = jit_class_new("jit_foo",(method)jit_foo_new,
-
(method)jit_foo_free, sizeof(t_jit_foo), 0L);
+
_jit_foo_class = jit_class_new("jit_foo",(method)jit_foo_new,
+
(method)jit_foo_free, sizeof(t_jit_foo), 0L);
// add method to class
jit_class_addmethod(jit_foo_scream, "scream", A_DEFLONG, 0L);
@@ -120,8 +120,8 @@

"myval", // with name "myval"
_jit_sym_float32, // type float32
attrflags, // default flags
-
(method)0L, // default getter accessor
-
(method)0L, // default setter accessor
+
(method)0L, // default getter accessor
+
(method)0L, // default setter accessor
calcoffset(t_jit_foo,myval)); // byte offset to struct member
// add attribute object to class
@@ -158,18 +158,18 @@

{
post("MY VALUE IS %f! AND MY ARGUMENT IS %d", x->myval, i);
}
-
@ A_DEFLONG
long but defaults to zero
Definition: ext_mess.h:255
-
t_jit_err jit_class_register(void *c)
Registers class in the class registry.
Definition: jit.foundation.c:529
-
t_jit_err jit_class_addattr(void *c, t_jit_object *attr)
Adds an attribute to a class.
Definition: jit.foundation.c:346
-
void * jit_class_new(C74_CONST char *name, method mnew, method mfree, long size,...)
Creates a new class with the name specified by the name argument.
Definition: jit.foundation.c:281
-
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:326
+
@ A_DEFLONG
long but defaults to zero
Definition: ext_mess.h:283
+
t_jit_err jit_class_register(void *c)
Registers class in the class registry.
Definition: jit.foundation.c:534
+
t_jit_err jit_class_addattr(void *c, t_jit_object *attr)
Adds an attribute to a class.
Definition: jit.foundation.c:351
+
void * jit_class_new(C74_CONST char *name, method mnew, method mfree, long size,...)
Creates a new class with the name specified by the name argument.
Definition: jit.foundation.c:286
+
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:331
BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
Print text to the Max window.
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25
JIT_EX_DATA t_symbol * _jit_sym_jit_attr_offset
cached t_symbol
Definition: jit.symbols.h:47
JIT_EX_DATA t_symbol * _jit_sym_float32
cached t_symbol
Definition: jit.symbols.h:27
-
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:180
-
The data structure for a Max class.
Definition: ext_mess.h:184
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:143
+
The data structure for a Max class.
Definition: ext_mess.h:212
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

The above example has a constructor, jit_foo_new(); a destructor, jit_foo_free(); one 32 bit floating point attribute, myval, a member of the object struct accessed with default accessor methods; and a method jit_foo_scream(), which posts the current value of myval to the Max window.

Object Struct

@@ -195,17 +195,17 @@

jit_object_method_typed(x, gensym("scream"), 1, a, NULL);
t_jit_err jit_atom_setlong(t_atom *a, t_atom_long b)
Sets atom value to long integer.
Definition: jit.atom.c:27
-
void * jit_object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
Calls a typed object method specified by method name.
Definition: jit.foundation.c:852
+
void * jit_object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
Calls a typed object method specified by method name.
Definition: jit.foundation.c:857
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
An atom is a typed datum.
Definition: ext_mess.h:293
+
An atom is a typed datum.
Definition: ext_mess.h:323

What the jit_object_method() and jit_object_method_typed() functions do is look up the provided method symbol in the object's class information, and then calls the corresponding C function associated with the provided symbol. The difference between jit_object_method() and jit_object_method_typed() is that jit_object_method() will not require that the method is typed and public, and blindly pass all of the arguments following the method symbol on to the corresponding method. For this reason, it is required that you know the signature of the method you are calling, and pass the correct arguments. This is not type checked at compile time, so you must be extremely attentive to the arguments you pass via jit_object_method(). It is also possible for you to define methods which have a typed return value with the A_GIMMEBACK type signature. When calling such methods, the final argument to jit_object_method_typed(), should point to a t_atom to be filled in by the callee. This and the subject of "typed wrappers" for exposing otherwise private methods to language bindings that require typed methods (e.g. Java/!JavaScript) will be covered in a later chapter.

Attributes

You can add attributes to the class with jit_class_addattr(). Attributes themselves are Jitter objects which share a common interface for getting and setting values. While any class which conforms to the attribute interface could be used to define attributes of a given class, there are a few common classes which are currently used: jit_attr_offset(), which specifies a scalar attribute of a specific type (char, long, float32, float64, symbol, or atom) at some byte offset in the object struct; jit_attr_offset_array() which specifies an array (vector) attribute of a specific type (char, long, float32, float64, symbol, or atom) at some byte offset in the object struct; and jit_attribute, which is a more generic attribute object that can be instantiated on a per object basis. We will not document the usage of jit_attribute at this time. The constructor for the class jit_attr_offset() has the following prototype:

t_jit_object *jit_attr_offset_new(char *name, t_symbol *type, long flags,
-
method mget, method mset, long offset);
+
method mget, method mset, long offset);
t_jit_object * jit_attr_offset_new(char *name, t_symbol *type, long flags, method mget, method mset, long offset)
Constructs instance of t_jit_attr_offset.
Definition: jit.attribute.c:939
-
The symbol.
Definition: ext_mess.h:77
+
The symbol.
Definition: ext_mess.h:102

When this constructor is called via jit_object_new(), additionally the class name, _jit_sym_jit_attr_offset (a global variable equivalent to gensym("jit_attr_offset") ) must be passed as the first parameter, followed by the above arguments, which are passed on to the constructor. The name argument specifies the attribute name as a null terminated C string. The type argument specifies the attribute type, which may be one of the following symbols: _jit_sym_char, _jit_sym_long, _jit_sym_float32, _jit_sym_float64, _jit_sym_symbol, _jit_sym_atom, _jit_sym_object, or _jit_sym_pointer. The latter two are only useful for private attributes as these types are not exposed to, or converted from Max message atom values.

The flags argument specifies the attribute flags, which may be a bitwise combination of the following constants:

#define JIT_ATTR_GET_OPAQUE 0x00000001 // cannot query
@@ -220,7 +220,7 @@

#define JIT_ATTR_SET_USURP 0x02000000 // (deprecated)
#define JIT_ATTR_SET_DEFER_LOW 0x04000000 // set at low priority
#define JIT_ATTR_SET_USURP_LOW 0x08000000 // set at low, usurping
-

Typically attributes in Jitter are defined with flags JIT_ATTR_GET_DEFER_LOW, and JIT_ATTR_SET_USURP_LOW. This means that multiple queries from the patcher will generate a response for each query, and that multiple attempts to set the value at high priority will collapse into a single call with the last received value. For more information on defer and usurp, see the chapter on Jitter scheduling issues.

+

Typically attributes in Jitter are defined with flags JIT_ATTR_GET_DEFER_LOW, and JIT_ATTR_SET_USURP_LOW. This means that multiple queries from the patcher will generate a response for each query, and that multiple attempts to set the value at high priority will collapse into a single call with the last received value. For more information on defer and usurp, see the chapter on Jitter scheduling issues.

The mget argument specifies the attribute "getter" accessor method, used to query the attribute value. If this argument is zero (NULL), then the default getter accessor will be used. If you need to define a custom accessor, it should have a prototype and form comparable to the following custom getter:

t_jit_err jit_foo_myval_get(t_jit_foo *x, void *attr, long *ac, t_atom **av)
{
@@ -256,22 +256,22 @@

After creating the attribute, it must be added to the Jitter class using the jit_class_addattr() function:

t_jit_err jit_class_addattr(void *c, t_jit_object *attr);

To put it all together: to define a jit_attribute_offset() with the custom getter and setter functions defined above, you'd make the following call:

-
+
t_jit_object *attr = jit_object_new(_jit_sym_jit_attr_offset, "myval", _jit_sym_float32, attrflags,
-
(method)jit_foo_myval_get, (method)jit_foo_myval_set, NULL);
+
(method)jit_foo_myval_get, (method)jit_foo_myval_set, NULL);
jit_class_addattr(_jit_foo_class, attr);
-
#define JIT_ATTR_SET_USURP_LOW
usurp setter
Definition: jit.common.h:49
-
#define JIT_ATTR_GET_DEFER_LOW
defer getter
Definition: jit.common.h:44
+
@ JIT_ATTR_GET_DEFER_LOW
defer getter
Definition: jit.common.h:45
+
@ JIT_ATTR_SET_USURP_LOW
usurp setter
Definition: jit.common.h:50

And to define a completely standard jit_attribute_offset(), using the default getter and setter methods:

-
+
t_jit_object *attr = jit_object_new(_jit_sym_jit_attr_offset, "myval", _jit_sym_float32, attrflags,
-
(method)NULL, (method)NULL, calcoffset(t_jit_foo, myval));
+
(method)NULL, (method)NULL, calcoffset(t_jit_foo, myval));
jit_class_addattr(_jit_foo_class, attr);

Array Attributes

Attributes can, in addition to referencing single values, also refer to arrays of data. The class jit_attribute_offset_array is used in this instance. The constructor for the class jit_attr_offset_array() has the following prototype:

t_jit_object *jit_attr_offset_array_new(char *name, t_symbol *type, long size,
-
long flags, method mget, method mset, long offsetcount, long offset);
+
long flags, method mget, method mset, long offsetcount, long offset);
t_jit_object * jit_attr_offset_array_new(char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset)
Constructs instance of t_jit_attr_offset_array.
Definition: jit.attribute.c:1103

When this constructor is called via jit_object_new(), additionally the class name, _jit_sym_jit_attr_offset_array() (a global variable equivalent to gensym("jit_attr_offset_array") ) must be passed as the first parameter, followed by the above arguments, which are passed on to the constructor.

The name, type, flags, mget, mset and offset arguments are identical to those specified above.

@@ -284,9 +284,9 @@

long myarraycount; // actual number being used
} t_jit_foo;
- +
t_jit_object *attr = jit_object_new(_jit_sym_jit_attr_offset_array, "myarray",
-
_jit_sym_long, 10, attrflags, (method)0L, (method)0L,
+
_jit_sym_long, 10, attrflags, (method)0L, (method)0L,
calcoffset(t_jit_foo, myarraycount), calcoffset(t_jit_foo, myarray));
jit_class_addattr(_jit_foo_class, attr);
JIT_EX_DATA t_symbol * _jit_sym_jit_attr_offset_array
cached t_symbol
Definition: jit.symbols.h:48
diff --git a/html/chapter_jit_sched.html b/html/chapter_jit_sched.html index b8c3f0f4..9ebb2b4e 100644 --- a/html/chapter_jit_sched.html +++ b/html/chapter_jit_sched.html @@ -98,10 +98,10 @@

When defining a method in Jitter, there is the possibility to define a type signature for the method just as one would do in Max. Typical type signatures include typical atom elements such as A_LONG, A_FLOAT, and A_SYM; or the corresponding default value versions A_DEFLONG, A_DEFFLOAT, A_DEFSYM; or the variable argument version A_GIMME which provides a list of atoms and the number of atoms provided; or the private and untyped status of A_CANT used for methods which are not exposed to the patcher and require additional C function prototype information in order to call. While these type signatures can be used within Jitter objects, most methods exposed to the patcher interface make use of either the defer or usurp mechanism as defined by two new type signatures A_DEFER_LOW or A_USURP_LOW. Methods defined with the A_DEFER_LOW, or A_USURP_LOW type signatures should conform to the same variable argument prototype as A_GIMME methods, but behind the scenes, Jitter will make use of the defer and usurp mechanism to enforce the appropriate behavior.

An example of two methods from jit.gl.videoplane which use these mechanisms is below:

// add a usurping jit_matrix method
-
jit_class_addmethod(_jit_gl_videoplane_class, (method)jit_gl_videoplane_jit_matrix, "jit_matrix", A_USURP_LOW, 0);
+
jit_class_addmethod(_jit_gl_videoplane_class, (method)jit_gl_videoplane_jit_matrix, "jit_matrix", A_USURP_LOW, 0);
// add a deferred sendtexture method
-
jit_class_addmethod(_jit_gl_videoplane_class, (method)jit_gl_videoplane_sendtexture, "sendtexture", A_DEFER_LOW, 0);
+
jit_class_addmethod(_jit_gl_videoplane_class, (method)jit_gl_videoplane_sendtexture, "sendtexture", A_DEFER_LOW, 0);
The implementation of these methods is below:
@@ -140,56 +140,56 @@

object_method_typed(x->texture,s,argc,argv,NULL);
}
}
-
@ A_DEFER_LOW
A special signature for declaring methods. This is like A_GIMME, but the call is deferref to the back...
Definition: ext_mess.h:268
-
@ A_USURP_LOW
A special signature for declaring methods. This is like A_GIMME, but the call is deferred to the back...
Definition: ext_mess.h:269
+
@ A_DEFER_LOW
A special signature for declaring methods. This is like A_GIMME, but the call is deferref to the back...
Definition: ext_mess.h:296
+
@ A_USURP_LOW
A special signature for declaring methods. This is like A_GIMME, but the call is deferred to the back...
Definition: ext_mess.h:297
t_symbol * jit_atom_getsym(t_atom *a)
Retrieves atom value as symbol pointer.
Definition: jit.atom.c:120
t_jit_err jit_attr_setsym(void *x, t_symbol *s, t_symbol *c)
Sets attribute value as a symbol value.
Definition: jit.attribute.util.c:158
long jit_attr_getlong_array(void *x, t_symbol *s, long max, t_atom_long *vals)
Retrieves attribute value as an array of long integer values.
Definition: jit.attribute.util.c:186
-
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:326
+
t_jit_err jit_class_addmethod(void *c, method m, const char *name,...)
Adds a named method to a class.
Definition: jit.foundation.c:331
void error(C74_CONST char *fmt,...)
Print an error to the Max window.
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25
JIT_EX_DATA t_symbol * _jit_sym_getinfo
cached t_symbol
Definition: jit.symbols.h:54
JIT_EX_DATA t_symbol * _jit_sym_nothing
cached t_symbol
Definition: jit.symbols.h:16
JIT_EX_DATA t_symbol * _jit_sym_dim
cached t_symbol
Definition: jit.symbols.h:35
t_max_err object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
Sends a type-checked message to an object.
-
void * jit_object_findregistered(t_symbol *s)
Retrieves a registered object associated with name.
Definition: jit.foundation.c:1136
-
An atom is a typed datum.
Definition: ext_mess.h:293
-
Matrix information struct.
Definition: jit.common.h:107
-
The symbol.
Definition: ext_mess.h:77
+
void * jit_object_findregistered(t_symbol *s)
Retrieves a registered object associated with name.
Definition: jit.foundation.c:1149
+
An atom is a typed datum.
Definition: ext_mess.h:323
+
Matrix information struct.
Definition: jit.common.h:116
+
The symbol.
Definition: ext_mess.h:102

From inspecting the header files, you may note that there are also A_DEFER and A_USURP type signatures, but these should be considered obsolete, as they make use of the problematic deferral strategy of placing the event at the front of the low priority queue and have the potential of reversing message sequencing.

Using Defer and Usurp in Jitter Object Attributes

-

Unlike methods, attributes do not make use of type signatures for their getter and setter accessor methods. Instead they should always be prototyped similar to A_GIMME, but with an attribute object being passed in place of the traditional method symbol pointer of the A_GIMME signature. So the way you can specify to use the defer and usurp mechanisms for attribute accessors are through the attribute flags argument to the attribute constructor. For the getter accessor method, you can use JIT_ATTR_GET_DEFER_LOW or JIT_ATTR_GET_USURP_LOW flags. For the setter accessor method, you can use JIT_ATTR_SET_DEFER_LOW or JIT_ATTR_SET_USURP_LOW flags.

+

Unlike methods, attributes do not make use of type signatures for their getter and setter accessor methods. Instead they should always be prototyped similar to A_GIMME, but with an attribute object being passed in place of the traditional method symbol pointer of the A_GIMME signature. So the way you can specify to use the defer and usurp mechanisms for attribute accessors are through the attribute flags argument to the attribute constructor. For the getter accessor method, you can use JIT_ATTR_GET_DEFER_LOW or JIT_ATTR_GET_USURP_LOW flags. For the setter accessor method, you can use JIT_ATTR_SET_DEFER_LOW or JIT_ATTR_SET_USURP_LOW flags.

An example attribute definition from jit.gl.videoplane is below:

-
+
attr = jit_object_new(_jit_sym_jit_attr_offset,"displaylist",_jit_sym_char,attrflags,
-
(method)0L,(method)jit_gl_videoplane_displaylist,calcoffset(t_jit_gl_videoplane, displaylist));
+
(method)0L,(method)jit_gl_videoplane_displaylist,calcoffset(t_jit_gl_videoplane, displaylist));
jit_class_addattr(_jit_gl_videoplane_class,attr);
-
t_jit_err jit_class_addattr(void *c, t_jit_object *attr)
Adds an attribute to a class.
Definition: jit.foundation.c:346
-
#define JIT_ATTR_SET_USURP_LOW
usurp setter
Definition: jit.common.h:49
+
t_jit_err jit_class_addattr(void *c, t_jit_object *attr)
Adds an attribute to a class.
Definition: jit.foundation.c:351
JIT_EX_DATA t_symbol * _jit_sym_char
cached t_symbol
Definition: jit.symbols.h:25
-
#define JIT_ATTR_GET_DEFER_LOW
defer getter
Definition: jit.common.h:44
+
@ JIT_ATTR_GET_DEFER_LOW
defer getter
Definition: jit.common.h:45
+
@ JIT_ATTR_SET_USURP_LOW
usurp setter
Definition: jit.common.h:50
JIT_EX_DATA t_symbol * _jit_sym_jit_attr_offset
cached t_symbol
Definition: jit.symbols.h:47
-
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:180
-

You may have noticed that like previous code example, all Jitter object attributes which are not private have been defined with getter accessors which use the defer mechanism (JIT_ATTR_GET_DEFER_LOW) and setter accessors which use the usurp mechanism (JIT_ATTR_SET_USURP_LOW). This is the recommended style of exposing Jitter object attributes to the patcher, since there are many cases where at high priority an attribute is set repeatedly and we want both the latest high priority value when the next calculation is made at low priority and no low priority queue backlog from generating more events at high priority than can be processed at low priority. The defer mechanism is used for getter accessor methods so that every attribute query results in a corresponding output message out the dump outlet. Otherwise certain patcher logic could easily become confused. If a different behavior is required by the Max programmer, they can make use of the jit.qball object to force either the defer or usurp mechanisms to be used for their message stream.

+
#define calcoffset(x, y)
Find byte offset of a named member of a struct, relative to the beginning of that struct.
Definition: ext_prefix.h:143
+

You may have noticed that like previous code example, all Jitter object attributes which are not private have been defined with getter accessors which use the defer mechanism (JIT_ATTR_GET_DEFER_LOW) and setter accessors which use the usurp mechanism (JIT_ATTR_SET_USURP_LOW). This is the recommended style of exposing Jitter object attributes to the patcher, since there are many cases where at high priority an attribute is set repeatedly and we want both the latest high priority value when the next calculation is made at low priority and no low priority queue backlog from generating more events at high priority than can be processed at low priority. The defer mechanism is used for getter accessor methods so that every attribute query results in a corresponding output message out the dump outlet. Otherwise certain patcher logic could easily become confused. If a different behavior is required by the Max programmer, they can make use of the jit.qball object to force either the defer or usurp mechanisms to be used for their message stream.

Using Defer and Usurp in the Max Wrapper Object

Most of the above is also true when declaring methods and attributes in the Max wrapper object, however the function calls which are used are slightly different. You must use the special max object function calls max_addmethod_defer_low() and max_addmethod_usurp_low() for methods, and max_jit_classex_addattr() for attributes. Below are examples from jit.matrixset. Note that there is no type signature provided for either max_addmethod_defer_low() or max_addmethod_usurp_low().

// add a deferred "exportmovie" method
-
max_addmethod_defer_low((method)max_jit_matrixset_export_movie, "exportmovie");
+
max_addmethod_defer_low((method)max_jit_matrixset_export_movie, "exportmovie");
// add a usurped outputmatrix method
-
max_addmethod_usurp_low((method)max_jit_matrixset_outputmatrix, "outputmatrix");
+
max_addmethod_usurp_low((method)max_jit_matrixset_outputmatrix, "outputmatrix");
// add index attribute
- +
attr = jit_object_new(_jit_sym_jit_attr_offset,"index",_jit_sym_long,attrflags,
-
(method)0L,(method)0L,calcoffset(t_max_jit_matrixset,index));
+
(method)0L,(method)0L,calcoffset(t_max_jit_matrixset,index));
JIT_EX_DATA t_symbol * _jit_sym_long
cached t_symbol
Definition: jit.symbols.h:26
-
void max_addmethod_usurp_low(method m, char *s)
Adds method to Max class that uses the usurp mechanism to execute method at low priority without back...
Definition: jit.max.c:1220
-
t_jit_err max_jit_classex_addattr(void *x, void *attr)
Adds an attribute to the Max wrapper class.
Definition: jit.max.c:2059
-
void max_addmethod_defer_low(method m, char *s)
Adds method to Max class that calls defer_low rather than the method directly.
Definition: jit.max.c:1144
+
void max_addmethod_usurp_low(method m, char *s)
Adds method to Max class that uses the usurp mechanism to execute method at low priority without back...
Definition: jit.max.c:1245
+
t_jit_err max_jit_classex_addattr(void *x, void *attr)
Adds an attribute to the Max wrapper class.
Definition: jit.max.c:2084
+
void max_addmethod_defer_low(method m, char *s)
Adds method to Max class that calls defer_low rather than the method directly.
Definition: jit.max.c:1169

When Not to Use the Usurp Mechanism

The bang method for Jitter MOP objects uses the usurp mechanism to drop frames when the number of bang messages cannot be handled in real time. However, jit.gl.render's bang method does not behave this way, and instead uses the defer mechanism. At first this might seem counterintuitive, however, because rendering in OpenGL with jit.gl.render uses a group of messages to perform erasing, any non automatic drawing of objects, and then a drawing of automatic clients and a swap to the screen with the bang method, it is not an atomic action (i.e. requires a sequence of different events rather than a single event). Since the usurp mechanism is method or attribute specific with regard to the events which are being usurped, it only works for atomic actions. For this reason, it is important for users to perform some drop framing behavior before triggering the message sequence, typically accomplished with qmetro or jit.qball. If your object has some operation which requires a sequence of events in a similar fashion as jit.gl.render, then it would be best to use the defer mechanism rather than the usurp mechanism for relevant methods.

diff --git a/html/chapter_jit_usingobjs.html b/html/chapter_jit_usingobjs.html index dde9c044..ea408434 100644 --- a/html/chapter_jit_usingobjs.html +++ b/html/chapter_jit_usingobjs.html @@ -172,16 +172,16 @@

void freebytes(void *b, t_getbytes_size size)
Free memory allocated with getbytes().
t_max_err object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
Sends a type-checked message to an object.
t_max_err object_getvalueof(void *x, long *ac, t_atom **av)
Retrieves the value of an object which supports the getvalueof/setvalueof interface.
-
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:931
+
t_jit_err jit_object_free(void *x)
Frees an object.
Definition: jit.foundation.c:936
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
An atom is a typed datum.
Definition: ext_mess.h:293
-
Matrix information struct.
Definition: jit.common.h:107
-
long dim[JIT_MATRIX_MAX_DIMCOUNT]
dimension sizes
Definition: jit.common.h:112
-
long planecount
number of planes
Definition: jit.common.h:114
-
long dimcount
number of dimensions
Definition: jit.common.h:111
-
t_symbol * type
primitifve type (char, long, float32, or float64)
Definition: jit.common.h:109
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
-
The symbol.
Definition: ext_mess.h:77
+
An atom is a typed datum.
Definition: ext_mess.h:323
+
Matrix information struct.
Definition: jit.common.h:116
+
long dim[JIT_MATRIX_MAX_DIMCOUNT]
dimension sizes
Definition: jit.common.h:121
+
long planecount
number of planes
Definition: jit.common.h:123
+
long dimcount
number of dimensions
Definition: jit.common.h:120
+
t_symbol * type
primitifve type (char, long, float32, or float64)
Definition: jit.common.h:118
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191
+
The symbol.
Definition: ext_mess.h:102

Naturally, we could also set the t_jit_qt_movie object's time attribute, or call its or frame method, to recall an arbitrary point in time. In fact, nearly every documented method and attribute of the jit.movie object, as it functions in the Max interface, is available from C. The exceptions are those functions implemented in the Max wrapper object, such as framedump.

diff --git a/html/chapter_mc.html b/html/chapter_mc.html index f8205adf..30d8a25c 100644 --- a/html/chapter_mc.html +++ b/html/chapter_mc.html @@ -117,7 +117,7 @@

Most of what you have to do is related to being a bit more careful about what you might previously have been able to assume about your perform method.

The prototype for your MSP perform method looks like this:

void myobject_perform64(t_myobject *x, t_object *dsp64, double **ins, long numins, double **outs, long numouts, long sampleframes, long flags, void *userparam);
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

Let’s say your object will have one multi-channel signal input and one multi-channel signal output. As you can probably guess, the numins parameter to the perform method will be the count of channels in the input and the numouts parameter will be the count of channels in the output. Now let’s consider some other cases because once we have more than one inlet and/or outlet, things get trickier.

Consider an object with two multi-channel inputs. You don’t know in advance how many channels will be in each signal connected to your object. It could be 1 (if the user connects an old-style patch cord). It could be 100. It could be there is no connection at all to your object. What do you do?

If you’re in this situation, you’ll need to ask MSP how many channels are in each input in your dsp64 method, which is called before the DSP is turned on. The prototype for your dsp64 method looks like this:

@@ -137,7 +137,7 @@

Specifying Output Channel Counts

The channel count for a multi-channel signal outlet is determined when MSP is building the DSP chain with the signal compiler. This means it can change each time the user turns the audio on if the graph has changed.

In MC, it’s important to remember that outlets, not inlets, determine signal channel counts. You report the number of channels your object’s outlets will have by supporting the multichanneloutputs method.

-
class_addmethod(c, (method)myobject_multichanneloutputs, "multichanneloutputs", A_CANT, 0);
+
class_addmethod(c, (method)myobject_multichanneloutputs, "multichanneloutputs", A_CANT, 0);
...
@@ -145,9 +145,9 @@

{
return 4;
}
-
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:259
+
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:287
t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
Adds a method to a previously defined object class.
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25

The above creates an outlet with four channels. Every time.

How to Auto-Adapt

@@ -155,7 +155,7 @@

Auto-adapting is a “conversational†protocol that involves both the inputchanged and multichanneloutputs methods.

Here’s how it works:

First, implement an the inputchanged method in addition to a multichannel outputs method:

-
class_addmethod(c, (method)myobject_inputchanged, "inputchanged", A_CANT, 0);
+
class_addmethod(c, (method)myobject_inputchanged, "inputchanged", A_CANT, 0);
...
diff --git a/html/chapter_msgattached.html b/html/chapter_msgattached.html index 44cbf03b..3c98c0a9 100644 --- a/html/chapter_msgattached.html +++ b/html/chapter_msgattached.html @@ -111,8 +111,8 @@

t_symbol *m_shipname;
char m_compatmode;
} t_myobject;
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
-
The symbol.
Definition: ext_mess.h:77
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191
+
The symbol.
Definition: ext_mess.h:102

We want to create attributes for m_targetaddress, m_shipname, and m_compatmode. For each data type (and a few others), there are macros in ext_obex_util.h that will save a fair amount of typing. So, for example, we can define an attribute for m_targetaddress that uses CLASS_ATTR_LONG. Here are attribute definitions for all of the members of our data structure above.

CLASS_ATTR_LONG(c, "targetaddress", 0, t_myobject, m_targetaddress);
CLASS_ATTR_SYM(c, "shipname", 0, t_myobject, m_shipname);
@@ -132,7 +132,7 @@

t_max_err myobject_size_get(t_myobject *x, t_object *attr, long *argc, t_atom **argv);
t_max_err myobject_size_set(t_myobject *x, t_object *attr, long argc, t_atom *argv);
t_atom_long t_max_err
an integer value suitable to be returned as an error code
Definition: max_types.h:78
-
An atom is a typed datum.
Definition: ext_mess.h:293
+
An atom is a typed datum.
Definition: ext_mess.h:323

Here is how we define our attribute using CLASS_ATTR_ACCESSORS macro to define the custom setter and getter. Because we aren't really using an "offset" due to the custom setter and getter, we can pass any data structure member as a dummy. (Only the default attribute getter and setter will use this offset, and they are out of the picture.)

CLASS_ATTR_LONG(c, "size", 0, t_myobject, m_ob);
CLASS_ATTR_ACCESSORS(c, "size", myobject_size_get, myobject_size_set);
@@ -176,10 +176,10 @@

As an alternative to writing a custom setter, you can take advantage of the fact that objects receive a "notify" message whenever one of their attributes is changed. The prototype for a notify method is as follows:

t_max_err myobject_notify(t_myobject *x, t_symbol *s, t_symbol *msg, void *sender, void *data);

Add the following to your class initialization so your notification method will be called:

-
class_addmethod(c, (method)myobject_notify, "notify", A_CANT, 0);
-
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:259
+
class_addmethod(c, (method)myobject_notify, "notify", A_CANT, 0);
+
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:287
t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
Adds a method to a previously defined object class.
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25

The notify method can handle a variety of notifications (more documentation on this is coming soon!), but the one we're interested in is "attr_modified" – the notification type is passed to the notify method in the msg argument. Here is an example of a notify method that prints out the name of the attribute that has been modified. You could take any action instead. To obtain the name, we interpret the data argument to the notify method as an attribute object. As an attribute is a regular Max object, we can use object_method to send it a message. In the case we are sending the message getname to the attribute object to obtain its name.

t_max_err myobject_notify(t_myobject *x, t_symbol *s, t_symbol *msg, void *sender, void *data)
{
@@ -194,7 +194,7 @@

void object_post(t_object *x, C74_CONST char *s,...)
Print text to the Max window, linked to an instance of your object.
void * object_method(void *x, t_symbol *s,...)
Sends an untyped message to an object.
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
char * s_name
name: a c-string
Definition: ext_mess.h:78
+
char * s_name
name: a c-string
Definition: ext_mess.h:103

diff --git a/html/chapter_msp_advanced.html b/html/chapter_msp_advanced.html index b5088775..feb400f4 100644 --- a/html/chapter_msp_advanced.html +++ b/html/chapter_msp_advanced.html @@ -104,7 +104,7 @@

}
void * object_method(void *x, t_symbol *s,...)
Sends an untyped message to an object.
t_symbol * gensym(C74_CONST char *s)
Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

Here is the perform routine, which obtains the internal state before entering the processing loop, then stores the most recent value after the loop is finished.

void myfilter_perform64(t_myfilter *x, t_object *dsp64, double **ins, long numins, double **outs, long numouts, long sampleframes, long flags, void *userparam)
{
diff --git a/html/chapter_msp_anatomy.html b/html/chapter_msp_anatomy.html index 5f45240b..6f09de44 100644 --- a/html/chapter_msp_anatomy.html +++ b/html/chapter_msp_anatomy.html @@ -102,14 +102,14 @@

Header for any non-ui signal processing object.
Definition: z_dsp.h:65

Initialization Routine

-

When creating the class with class_new(), you must have a free function. If you have nothing special to do, use dsp_free(), which is defined for this purpose. If you write your own free function, the first thing it should do is call dsp_free(). This is essential to avoid crashes when freeing your object when audio processing is turned on.

c = class_new("mydspobject", (method)mydspobject_new, (method)dsp_free, sizeof(t_mydspobject), NULL, 0);
+

When creating the class with class_new(), you must have a free function. If you have nothing special to do, use dsp_free(), which is defined for this purpose. If you write your own free function, the first thing it should do is call dsp_free(). This is essential to avoid crashes when freeing your object when audio processing is turned on.

c = class_new("mydspobject", (method)mydspobject_new, (method)dsp_free, sizeof(t_mydspobject), NULL, 0);
t_class * class_new(C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type,...)
Initializes a class by informing Max of its name, instance creation and free functions,...
-
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
Function pointer type for generic methods.
Definition: ext_mess.h:23
+
BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
Function pointer type for generic methods.
Definition: ext_mess.h:25
#define dsp_free
This is commonly used rather than directly calling z_dsp_free() in MSP objects.
Definition: z_dsp.h:329

After creating your class with class_new(), you must call class_dspinit(), which will add some standard method handlers for internal messages used by all signal objects.

void class_dspinit(t_class *c)
This routine must be called in your object's initialization routine.
-

Your signal object needs a method that is bound to the symbol "dsp" – we'll detail what this method does below, but the following line needs to be added while initializing the class:

class_addmethod(c, (method)mydspobject_dsp64, "dsp64", A_CANT, 0);
-
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:259
+

Your signal object needs a method that is bound to the symbol "dsp" – we'll detail what this method does below, but the following line needs to be added while initializing the class:

class_addmethod(c, (method)mydspobject_dsp64, "dsp64", A_CANT, 0);
+
@ A_CANT
cannot typecheck args
Definition: ext_mess.h:287
t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
Adds a method to a previously defined object class.

New Instance Routine

@@ -119,7 +119,7 @@

If your object will have audio signal outputs, they need to be created in the new instance routine with outlet_new(). However, you will never access them directly, so you don't need to store pointers to them as you do with regular outlets. Here is an example of creating two signal outlets:

outlet_new((t_object *)x, "signal");
outlet_new((t_object *)x, "signal");
void * outlet_new(void *x, C74_CONST char *s)
Use outlet_new() to create an outlet that can send a specific non-standard message,...
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

The DSP Method and Perform Routine

The dsp64 method specifies the signal processing function your object defines along with its arguments. Your object's dsp64 method will be called when the MSP signal compiler is building a sequence of operations (known as the DSP Chain) that will be performed on each set of audio samples. The operation sequence consists of a pointers to functions (called perform routines) followed by arguments to those functions.

diff --git a/html/chapter_scheduler.html b/html/chapter_scheduler.html index 46ee8a16..aef2d3ed 100644 --- a/html/chapter_scheduler.html +++ b/html/chapter_scheduler.html @@ -107,7 +107,7 @@

void *m_clock;
-
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:163
+
The structure for the head of any object which wants to have inlets or outlets, or support attributes...
Definition: ext_mess.h:191

  • Write a task function that will do something when the clock is executed. The function has only a single argument, a pointer to your object. The example below gets the current scheduler time and prints it.
  • @@ -120,9 +120,9 @@

    }
    BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
    Print text to the Max window.
      -
    1. In your new instance routine, create the clock (passing a pointer to your object and the task function) and store the result in your object's data structure.
      x->m_clock = clock_new((t_object *)x, (method)myobject_task);
      +
    2. In your new instance routine, create the clock (passing a pointer to your object and the task function) and store the result in your object's data structure.
      x->m_clock = clock_new((t_object *)x, (method)myobject_task);
      t_clock * clock_new(void *obj, method fn)
      Create a new Clock object.
      -
      BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
      Function pointer type for generic methods.
      Definition: ext_mess.h:23
      +
      BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
      Function pointer type for generic methods.
      Definition: ext_mess.h:25
    3. Schedule your clock. Use clock_fdelay() to schedule the clock in terms of a delay from the current time. Below we schedule the clock to execute 100 milliseconds from now.
      clock_fdelay(x->m_clock, 100.);
    4. @@ -153,7 +153,7 @@

      post("I am being executed a low priority!"
      }
      -
    5. In your new instance routine, create the qelem (passing a pointer to your object and the task function) and store the result in your object's data structure.
      x->m_qelem = qelem_new((t_object *)x, (method)myobject_qtask);
      +
    6. In your new instance routine, create the qelem (passing a pointer to your object and the task function) and store the result in your object's data structure.
      x->m_qelem = qelem_new((t_object *)x, (method)myobject_qtask);
      void * qelem_new(void *obj, method fn)
      Create a new Qelem.
    7. Set the qelem by using qelem_set(). You could, for example, call qelem_set() in a clock task function or in direct response to a message such as bang or int.
      qelem_set(x->m_qelem);
      @@ -177,16 +177,16 @@

      {
      post("I am deferred");
      }
      -
      An atom is a typed datum.
      Definition: ext_mess.h:293
      -
      The symbol.
      Definition: ext_mess.h:77
      -

      To call the task, use defer() as shown below. The first example passes no arguments. The second passes a couple of long atoms.

      defer((t_object *)x, (method)myobject_deferredtask, NULL, 0, NULL);
      +
      An atom is a typed datum.
      Definition: ext_mess.h:323
      +
      The symbol.
      Definition: ext_mess.h:102
      +

      To call the task, use defer() as shown below. The first example passes no arguments. The second passes a couple of long atoms.

      defer((t_object *)x, (method)myobject_deferredtask, NULL, 0, NULL);
      t_atom av[2];
      atom_setlong(av, 1);
      atom_setlong(av+ 2, 74);
      -
      defer((t_object *)x, (method)myobject_deferredtask, NULL, 2, av);
      +
      defer((t_object *)x, (method)myobject_deferredtask, NULL, 2, av);
      t_max_err atom_setlong(t_atom *a, t_atom_long b)
      Inserts an integer into a t_atom and change the t_atom's type to A_LONG.
      void * defer(void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
      Defer execution of a function to the main thread if (and only if) your function is executing in the s...

      Defer copies any atoms you pass to newly allocated memory, which it frees when the deferred task has executed.

      diff --git a/html/chapter_scripting.html b/html/chapter_scripting.html index e6d28ae7..688fa91f 100644 --- a/html/chapter_scripting.html +++ b/html/chapter_scripting.html @@ -102,14 +102,14 @@

      BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
      Print text to the Max window.
      t_max_err object_obex_lookup(void *x, t_symbol *key, t_object **val)
      Retrieves the value of a data stored in the obex.
      t_symbol * gensym(C74_CONST char *s)
      Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
      -
      The structure for the head of any object which wants to have inlets or outlets, or support attributes...
      Definition: ext_mess.h:163
      +
      The structure for the head of any object which wants to have inlets or outlets, or support attributes...
      Definition: ext_mess.h:191

      The patcher is an opaque Max object. To access data in a patcher, you'll use attributes and methods.

      Patcher Name and File Path

      To obtain the name of the patcher and its file path (if any), obtain attribute values as shown below.

      t_symbol *name = object_attr_getsym(patcher, gensym("name"));
      t_symbol *path = object_attr_getsym(patcher, gensym("filepath"));
      t_symbol * object_attr_getsym(void *x, t_symbol *s)
      Retrieves the value of an attribute, given its parent object and name.
      -
      The symbol.
      Definition: ext_mess.h:77
      +
      The symbol.
      Definition: ext_mess.h:102

      These attributes may return NULL or empty symbols.

      Patcher Hierarchy

      @@ -128,7 +128,7 @@

      }
      } while (parent != NULL);
      t_object * jpatcher_get_parentpatcher(t_object *p)
      Given a patcher, return its parent patcher.
      -
      char * s_name
      name: a c-string
      Definition: ext_mess.h:78
      +
      char * s_name
      name: a c-string
      Definition: ext_mess.h:103

      Getting Objects in a Patcher

      To obtain the first object in a patcher, you can use jpatcher_get_firstobject(). Subsequent objects are available with jbox_get_nextobject().

      @@ -163,12 +163,12 @@

      err = object_obex_lookup(x, gensym("#P"), &patcher);
      -
      object_method(patcher, gensym("iterate"), myobject_iterator, (void *)x, PI_WANTBOX | PI_DEEP, &result);
      +
      object_method(patcher, gensym("iterate"), myobject_iterator, (void *)x, PI_WANTBOX | PI_DEEP, &result);
      t_atom_long t_max_err
      an integer value suitable to be returned as an error code
      Definition: max_types.h:78
      void * object_method(void *x, t_symbol *s,...)
      Sends an untyped message to an object.
      -
      @ PI_WANTBOX
      instead, of b->b_firstin, pass b to function, whether or not b->b_firstin is NULL
      Definition: ext_maxtypes.h:39
      -
      @ PI_DEEP
      descend into subpatchers (not used by audio library)
      Definition: ext_maxtypes.h:37
      -

      The PI_WANTBOX flag tells the patcher iterator that it should pass your iterator function the box, rather than the object contained in the box. The PI_DEEP flag means that the iteration will descend, depth first, into subpatchers. The result parameter returns the last value returned by the iterator. For example, if the iterator terminates early by returning a non-zero value, it will contain that value. If the iterator function does not terminate early, result will be 0.

      +
      @ PI_WANTBOX
      instead, of b->b_firstin, pass b to function, whether or not b->b_firstin is NULL
      Definition: ext_maxtypes.h:39
      +
      @ PI_DEEP
      descend into subpatchers (not used by audio library)
      Definition: ext_maxtypes.h:37
      +

      The PI_WANTBOX flag tells the patcher iterator that it should pass your iterator function the box, rather than the object contained in the box. The PI_DEEP flag means that the iteration will descend, depth first, into subpatchers. The result parameter returns the last value returned by the iterator. For example, if the iterator terminates early by returning a non-zero value, it will contain that value. If the iterator function does not terminate early, result will be 0.

      Assuming the iterator function receives boxes, here is an example iterator that prints out the class and scripting name (if any) of all of the objects in a patcher. Note that the scripting name is an attribute of the box, while the class we would like to know is of the object associated with the box.

      long myobject_iterator(t_myobject *x, t_object *b)
      {
      @@ -215,7 +215,7 @@

      t_max_err atom_setobj(t_atom *a, void *b)
      Inserts a generic pointer value into a t_atom and change the t_atom's type to A_OBJ.
      t_max_err atom_setlong(t_atom *a, t_atom_long b)
      Inserts an integer into a t_atom and change the t_atom's type to A_LONG.
      t_max_err object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
      Sends a type-checked message to an object.
      -
      An atom is a typed datum.
      Definition: ext_mess.h:293
      +
      An atom is a typed datum.
      Definition: ext_mess.h:323

      If you want to have a hidden connection, pass an optional fifth argument that is any negative number.

      Deleting Objects

      diff --git a/html/chapter_ui_anatomy.html b/html/chapter_ui_anatomy.html index ceedb4bb..3970a53c 100644 --- a/html/chapter_ui_anatomy.html +++ b/html/chapter_ui_anatomy.html @@ -139,32 +139,32 @@

      Initialization Routine for UI Objects

      Once you've declared your object's struct, you'll write your initialization ( ext_main() ) routine to set up the class, declaring methods and attributes used by UI objects.

      The first addition to the class initialization of a normal Max object you need to make is a call to jbox_initclass(). This adds standard methods and attributes common to all UI objects. Here's how you should to it:

      -
      c = class_new("uisimp", (method)uisimp_new, (method)uisimp_free, sizeof(t_uisimp), 0L, A_GIMME, 0);
      +
      c = class_new("uisimp", (method)uisimp_new, (method)uisimp_free, sizeof(t_uisimp), 0L, A_GIMME, 0);
      jbox_initclass(c, JBOX_FIXWIDTH | JBOX_COLOR);
      -
      @ A_GIMME
      request that args be passed as an array, the routine will check the types itself.
      Definition: ext_mess.h:258
      +
      @ A_GIMME
      request that args be passed as an array, the routine will check the types itself.
      Definition: ext_mess.h:286
      t_class * class_new(C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type,...)
      Initializes a class by informing Max of its name, instance creation and free functions,...
      -
      @ CLASS_FLAG_NEWDICTIONARY
      dictionary based constructor
      Definition: ext_mess.h:218
      -
      BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
      Function pointer type for generic methods.
      Definition: ext_mess.h:23
      +
      @ CLASS_FLAG_NEWDICTIONARY
      dictionary based constructor
      Definition: ext_mess.h:246
      +
      BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
      Function pointer type for generic methods.
      Definition: ext_mess.h:25
      #define JBOX_COLOR
      support the "color" method for color customization
      Definition: jpatcher_api.h:1728
      #define JBOX_FIXWIDTH
      give the box a textfield based fix-width (bfixwidth) method
      Definition: jpatcher_api.h:1721

      The line c->c_flags |= CLASS_FLAG_NEWDICTIONARY is required, but the flags passed to jbox_initclass – JBOX_FIXWIDTH and JBOX_COLOR – are optional. JBOX_FIXWIDTH means that when your object is selected in a patcher, the Fix Width menu item will be enabled to resize your object to its class's default dimensions. We'll specify the default dimensions in a moment. JBOX_COLOR means that your object will be given a color attribute so that it can be edited with the color picked shown by the Color... menu item. This is a way to edit a "basic" color of your object without opening the inspector. If neither of these behaviors apply to your object, feel free to pass 0 for the flags argument to jbox_initclass().

      UI Object Methods

      Next we need to bind a few standard methods. The only required method for UI objects is paint, which draws the your object's content when its box is visible and needs to be redrawn.

      -
      class_addmethod(c, (method)uisimp_paint, "paint", A_CANT, 0);
      -
      @ A_CANT
      cannot typecheck args
      Definition: ext_mess.h:259
      +
      class_addmethod(c, (method)uisimp_paint, "paint", A_CANT, 0);
      +
      @ A_CANT
      cannot typecheck args
      Definition: ext_mess.h:287
      t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
      Adds a method to a previously defined object class.

      We'll discuss the paint method in detail below. It makes use of the JGraphics API, which is described in more detail in its own chapter.

      Our uisimp toggle will respond to mouse gestures, so we will define a set of mouse handling methods.

      -
      class_addmethod(c, (method)uisimp_mousedown, "mousedown", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mousedrag, "mousedrag", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mouseup, "mouseup", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mouseenter, "mouseenter", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mouseleave, "mouseleave", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mousemove, "mousemove", A_CANT, 0);
      -
      class_addmethod(c, (method)uisimp_mousewheel, "mousewheel", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mousedown, "mousedown", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mousedrag, "mousedrag", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mouseup, "mouseup", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mouseenter, "mouseenter", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mouseleave, "mouseleave", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mousemove, "mousemove", A_CANT, 0);
      +
      class_addmethod(c, (method)uisimp_mousewheel, "mousewheel", A_CANT, 0);

      mousedown is sent to your object when the user clicks on your object – in other words, when the mouse is moved over the object and the primary mouse button is depressed. mousedrag is sent after an initial mousedown when the mouse moves and the button is still held down from the click. mouseup is sent when the mouse button is released after a mousedown is sent. mouseenter is sent when the mouse button is not down and the mouse moves into your object's box. mousemove is sent – after a mouseenter – when the mouse button is not down but the mouse position changes inside your object's box. mouseleave is sent when the mouse button is not down and the mouse position moves from being over your object's box to being outside of it. mousewheel is sent when information about the scrollwheel on the mouse (or scrolling from another source such as a trackpad) is transmitted while the cursor is hovering over your object.

      You are not obligated to respond to any of these messages. You could, for example, only respond to mousedown and ignore the other messages.

      It might be helpful to summarize mouse messages in the following "rules" (although normally it's not necessary to think about them explicitly):

      @@ -210,18 +210,18 @@

      #define CLASS_ATTR_CATEGORY(c, attrname, flags, parsestr)
      Add a new attribute to the specified attribute to specify a category to which the attribute is assign...
      Definition: ext_obex_util.h:1413

      To define a category for a series of attributes, you can use CLASS_STICKY_ATTR, which applies the current value of a specified attribute attribute to any attributes subsequently defined, until a CLASS_STICKY_ATTR_CLEAR is set for an attribute attribute name. CLASS_STICKY_ATTR is used in uisimp to apply the "Color" category to a set of three color attributes.

      CLASS_STICKY_ATTR(c, "category", 0, "Color");
      -
      #define CLASS_STICKY_ATTR(c, name, flags, parsestr)
      Create an attribute, and add it to all following attribute declarations.
      Definition: ext_obex_util.h:1722
      +
      #define CLASS_STICKY_ATTR(c, name, flags, parsestr)
      Create an attribute, and add it to all following attribute declarations.
      Definition: ext_obex_util.h:1728

      Color attributes are defined using CLASS_ATTR_RGBA. The uisimp object defines four color attributes. Here is the first, called bgcolor:

      CLASS_ATTR_RGBA(c, "bgcolor", 0, t_uisimp, u_background);
      CLASS_ATTR_DEFAULTNAME_SAVE_PAINT(c, "bgcolor", 0, "1. 1. 1. 1.");
      CLASS_ATTR_STYLE_LABEL(c,"bgcolor",0,"rgba","Background Color");
      -
      #define CLASS_ATTR_RGBA(c, attrname, flags, structname, structmember)
      Create a color (t_jrgba) attribute and add it to a Max class.
      Definition: jgraphics.h:1915
      +
      #define CLASS_ATTR_RGBA(c, attrname, flags, structname, structmember)
      Create a color (t_jrgba) attribute and add it to a Max class.
      Definition: jgraphics.h:1914
      #define CLASS_ATTR_DEFAULTNAME_SAVE_PAINT(c, attrname, flags, parsestr)
      A convenience wrapper for CLASS_ATTR_DEFAULTNAME, CLASS_ATTR_SAVE, and CLASS_ATTR_PAINT.
      Definition: ext_obex_util.h:1288

      The difference between CLASS_ATTR_RGBA and CLASS_ATTR_CHAR for defining an attribute is that CLASS_ATTR_RGBA expects the name of a structure member declared of type t_jrgba rather than type char. When set, the attribute will assign values to the four doubles that make up the components of the color.

      The next line uses the CLASS_ATTR_DEFAULTNAME_SAVE_PAINT macro. This sets three things about the bgcolor attribute. First it says that the color attribute bgcolor can be assigned a default value via the object defaults window. So, if you don't like the standard white defined by the object, you can assign you own color for the background color of all newly created uisimp objects. The four values 1 1 1 1 supplied as the last argument to CLASS_ATTR_DEFAULTNAME_SAVE_PAINT specify the "standard" default value that will be used for the bgcolor attribute in the absence of any overrides from the user.

      The SAVE aspect of this macro specifies that this attribute's values should be saved with the object in a patcher. A patcher file saves an object's class, location and connections, but it can also save the object's appearance or any other attribute value you specify, by using the "save" attribute attribute.

      The PAINT aspect of this macro provides the ability to have your object redrawn whenever this attribute (bgcolor) changes. However, to implement auto-repainting on attribute changes, you'll need to add the following code when initializing your class:

      -
      +
      t_max_err jbox_notify(t_jbox *b, t_symbol *s, t_symbol *msg, void *sender, void *data)
      Send a notification to a box.

      The function jbox_notify() will determine whether an attribute that has caused a change notification to be sent has its paint attribute attribute set, and if so, will call jbox_redraw(). If you write your own notify method because you want to respond to changes in attributes or other environment changes, you *must* call jbox_notify() inside of it.

      @@ -242,8 +242,8 @@

      Let's take a look at the pattern you should follow for your object's new instance routine.

      First, the new instance routine is declared as follows:

      void *uisimp_new(t_symbol *s, long argc, t_atom *argv);
      -
      An atom is a typed datum.
      Definition: ext_mess.h:293
      -
      The symbol.
      Definition: ext_mess.h:77
      +
      An atom is a typed datum.
      Definition: ext_mess.h:323
      +
      The symbol.
      Definition: ext_mess.h:102

      We will get the dictionary that defines the object out of the arguments passed in argc, argv. (The symbol argument s is the name of the object.) If obtaining the dictionary fails, we should return NULL to indicate we didn't make an instance.

      void *uisimp_new(t_symbol *s, long argc, t_atom *argv);
      {
      @@ -290,7 +290,7 @@

      x->u_mousedowninside = x->u_mouseover = x->u_state = 0;
      x->u_out = intout((t_object *)x);
      void * intout(void *x)
      Use intout() to create an outlet that will always send the int message.
      -
      The structure for the head of any object which wants to have inlets or outlets, or support attributes...
      Definition: ext_mess.h:163
      +
      The structure for the head of any object which wants to have inlets or outlets, or support attributes...
      Definition: ext_mess.h:191

      Once your object is in a safe initialized state, call attr_dictionary_process() if you've defined any attributes. This will find the attributes in the dictionary your object received, then set them to the values stored in the dictionary. There is no way to guarantee the order in which the attributes will be set. If this a problem, you can obtain the attribute values "by hand" and assign them to your object.

      Note that you do not need to call attr_dictionary_process() if you have not defined any attributes. jbox_new() will take care of setting all attributes common to all UI objects.

      diff --git a/html/functions_e.html b/html/functions_e.html index f14d1a90..af88a1e4 100644 --- a/html/functions_e.html +++ b/html/functions_e.html @@ -86,7 +86,7 @@

      - e -

      • ex_cont -: t_ex_ex +: t_ex_ex
      • ex_type : t_ex_ex diff --git a/html/functions_vars_e.html b/html/functions_vars_e.html index 79089eb2..6f440adf 100644 --- a/html/functions_vars_e.html +++ b/html/functions_vars_e.html @@ -86,7 +86,7 @@

        - e -

        • ex_cont -: t_ex_ex +: t_ex_ex
        • ex_type : t_ex_ex diff --git a/html/graph_legend.png b/html/graph_legend.png index 94ac7618..9a75f05b 100644 Binary files a/html/graph_legend.png and b/html/graph_legend.png differ diff --git a/html/group__atom.html b/html/group__atom.html index 96303df1..deb1669e 100644 --- a/html/group__atom.html +++ b/html/group__atom.html @@ -84,7 +84,6 @@
          @@ -112,13 +111,6 @@

     An atom is a typed datum. More...
     
    - - - - -

    -Macros

    -#define ATOM_MAX_STRLEN
     Defines the largest possible string size for an atom.
     
    + + + - + @@ -529,7 +529,7 @@

    Parameters

    Enumerations

    enum  e_max_atomtypes {
    @@ -149,6 +141,9 @@ }
     the list of officially recognized types, including pseudotypes for commas and semicolons. More...
     
    enum  
     Defines the largest possible string size for an atom.
     
    enum  e_max_atom_gettext_flags {
      OBEX_UTIL_ATOM_GETTEXT_DEFAULT , OBEX_UTIL_ATOM_GETTEXT_TRUNCATE_ZEROS @@ -666,8 +661,8 @@

    t_max_err atom_arg_getlong(t_atom_long *c, long idx, long ac, const t_atom *av)
    Retrieves the integer value of a particular t_atom from an atom list, if the atom exists.
    BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
    Print text to the Max window.
    t_ptr_int t_atom_long
    the type that is an A_LONG in a t_atom
    Definition: max_types.h:77
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The symbol.
    Definition: ext_mess.h:102

    Referenced by jit_atom_arg_getlong().

    diff --git a/html/group__atom.js b/html/group__atom.js index 38118876..84362cb7 100644 --- a/html/group__atom.js +++ b/html/group__atom.js @@ -7,7 +7,6 @@ var group__atom = [ "w_sym", "unionword.html#a979bae342fac8dbb9af68f15080bedbc", null ] ] ], [ "t_atom", "structt__atom.html", null ], - [ "ATOM_MAX_STRLEN", "group__atom.html#ga27eb80f98b4020e3ecab761d634a3876", null ], [ "e_max_atom_gettext_flags", "group__atom.html#ga42fa1c131691f55dbc781a0be60e3772", [ [ "OBEX_UTIL_ATOM_GETTEXT_DEFAULT", "group__atom.html#gga42fa1c131691f55dbc781a0be60e3772a2e8bad722419a8be35f8ef13364ddcc7", null ], [ "OBEX_UTIL_ATOM_GETTEXT_TRUNCATE_ZEROS", "group__atom.html#gga42fa1c131691f55dbc781a0be60e3772a433f595f519e0a4051d769db66b9b5d8", null ], diff --git a/html/group__atom.png b/html/group__atom.png index fc9423fb..06a26419 100644 Binary files a/html/group__atom.png and b/html/group__atom.png differ diff --git a/html/group__atomarray.html b/html/group__atomarray.html index 00e374bc..b5b720c4 100644 --- a/html/group__atomarray.html +++ b/html/group__atomarray.html @@ -84,7 +84,7 @@
    Atom Array
    @@ -100,8 +100,8 @@ @@ -111,11 +111,11 @@
     The atomarray object. More...
     
    - - - - + + + +

    -Macros

    #define ATOMARRAY_FLAG_FREECHILDREN
     The atomarray flags. More...
     

    +Enumerations

    enum  t_atomarray_flags
     The atomarray flags. More...
     
    @@ -161,7 +161,7 @@ - +

    Functions

    void atomarray_clear (t_atomarray *x)
     Clear the array. More...
     
    void atomarray_funall (t_atomarray *x, method fun, void *arg)
    void atomarray_funall (t_atomarray *x, method fun, void *arg)
     Call the specified function for every item in the atom array. More...
     
    @@ -169,15 +169,15 @@

    Max's atomarray object is a container for an array of atoms with an interface for manipulating that array.

    It can be useful for passing lists as a single atom, such as for the return value of an A_GIMMEBACK method. It also used frequently in when working with Max's t_dictionary object.

    See also
    Dictionary
    -

    Macro Definition Documentation

    - -

    ◆ ATOMARRAY_FLAG_FREECHILDREN

    +

    Enumeration Type Documentation

    + +

    ◆ t_atomarray_flags

    - +
    #define ATOMARRAY_FLAG_FREECHILDRENenum t_atomarray_flags
    @@ -422,7 +422,7 @@

    }

    t_max_err atomarray_copyatoms(t_atomarray *x, long *ac, t_atom **av)
    Retrieve a copy of the atoms in the array.
    void sysmem_freeptr(void *ptr)
    Free memory allocated with sysmem_newptr().
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    See also
    atomarray_getatoms()
    @@ -508,7 +508,7 @@

    method method  fun,
    - +
    xThe atomarray instance.
    funThe function to call, specified as function pointer cast to a Max method.
    funThe function to call, specified as function pointer cast to a Max method.
    argAn argument that you would like to pass to the function being called.
    diff --git a/html/group__atomarray.js b/html/group__atomarray.js index ab349bb5..4507976d 100644 --- a/html/group__atomarray.js +++ b/html/group__atomarray.js @@ -1,7 +1,7 @@ var group__atomarray = [ [ "t_atomarray", "structt__atomarray.html", null ], - [ "ATOMARRAY_FLAG_FREECHILDREN", "group__atomarray.html#ga9d4f9396731ae8115a08f99d02421d02", null ], + [ "t_atomarray_flags", "group__atomarray.html#gaf940052a0742e08204034817d6d21309", null ], [ "atomarray_appendatom", "group__atomarray.html#gad2d3608a3089f42590d744814c6fee42", null ], [ "atomarray_appendatoms", "group__atomarray.html#gae604fed9f8ca266b1b0d080e8cc929c3", null ], [ "atomarray_chuckindex", "group__atomarray.html#gaf76d3ab0de8a7b6b0b0e32193608c2dd", null ], diff --git a/html/group__atomarray.png b/html/group__atomarray.png index 619cbb79..891ef22b 100644 Binary files a/html/group__atomarray.png and b/html/group__atomarray.png differ diff --git a/html/group__atombuf.png b/html/group__atombuf.png index a5acf703..509eb34b 100644 Binary files a/html/group__atombuf.png and b/html/group__atombuf.png differ diff --git a/html/group__atommod.html b/html/group__atommod.html index 1bbc6815..d063a877 100644 --- a/html/group__atommod.html +++ b/html/group__atommod.html @@ -95,7 +95,7 @@ @@ -203,8 +203,8 @@

    - + @@ -669,7 +669,7 @@

    - + @@ -721,8 +721,8 @@

    object_attr_get (void *x, t_symbol *attrname)  Returns the pointer to an attribute, given its name. More...
      -method object_attr_method (void *x, t_symbol *methodname, void **attr, long *get) +method object_attr_method (void *x, t_symbol *methodname, void **attr, long *get)  Returns the method of an attribute's get or set function, as well as a pointer to the attribute itself, from a message name. More...
      long object_attr_usercanset (void *x, t_symbol *s) @@ -483,13 +483,13 @@ void attr_args_process (void *x, short ac, t_atom *av)  Takes an atom list and properly set any attributes described within. More...
      -t_objectattribute_new (C74_CONST char *name, t_symbol *type, long flags, method mget, method mset) +t_objectattribute_new (C74_CONST char *name, t_symbol *type, long flags, method mget, method mset)  Create a new attribute. More...
      -t_objectattr_offset_new (C74_CONST char *name, C74_CONST t_symbol *type, long flags, C74_CONST method mget, C74_CONST method mset, long offset) +t_objectattr_offset_new (C74_CONST char *name, C74_CONST t_symbol *type, long flags, C74_CONST method mget, C74_CONST method mset, long offset)  Create a new attribute. More...
      -t_objectattr_offset_array_new (C74_CONST char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset) +t_objectattr_offset_array_new (C74_CONST char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset)  Create a new attribute. More...
      t_atom_long object_attr_getlong (void *x, t_symbol *s) @@ -558,10 +558,10 @@ t_max_err attr_addfilter_clip_scale (void *x, double scale, double min, double max, long usemin, long usemax)  Attaches a clip/scale filter to an attribute. More...
      -t_max_err attr_addfilterset_proc (void *x, method proc) +t_max_err attr_addfilterset_proc (void *x, method proc)  Attaches a custom filter method to an attribute. More...
      -t_max_err attr_addfilterget_proc (void *x, method proc) +t_max_err attr_addfilterget_proc (void *x, method proc)  Attaches a custom filter method to an attribute. More...
      void attr_args_dictionary (t_dictionary *x, short ac, t_atom *av) @@ -649,7 +649,7 @@

    t_atom_long t_max_err
    an integer value suitable to be returned as an error code
    Definition: max_types.h:78
    @ MAX_ERR_OUT_OF_MEM
    Out of memory.
    Definition: max_types.h:122
    @ MAX_ERR_NONE
    No error.
    Definition: max_types.h:118
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323

    Note that getters require memory to be allocated, if there is not memory passed into the getter. Also the attr argument is the class' attribute object and can be queried using object_method for things like the attribute flags, names, filters, etc..

    Writing a custom Attribute Setter

    @@ -4095,11 +4095,11 @@

    Remarks
    An example which makes a method invisible to users:
    class_addmethod(c, (method)my_foo, "foo", 0);
    +
    Remarks
    An example which makes a method invisible to users:
    class_addmethod(c, (method)my_foo, "foo", 0);
    CLASS_METHOD_ATTR_PARSE(c, "foo", "undocumented", gensym("long"), 0, "1");
    #define CLASS_METHOD_ATTR_PARSE(c, methodname, attrname, type, flags, parsestring)
    Define and add attributes to class methods.
    Definition: ext_obex_util.h:1502
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    @@ -4314,10 +4314,10 @@

    CLASS_STICKY_ATTR_CLEAR(c, "category");

    #define CLASS_ATTR_CHAR(c, attrname, flags, structname, structmember)
    Create a char attribute and add it to a Max class.
    Definition: ext_obex_util.h:50
    #define CLASS_ATTR_STYLE_LABEL(c, attrname, flags, stylestr, labelstr)
    A convenience wrapper for CLASS_ATTR_STYLE, and CLASS_ATTR_LABEL.
    Definition: ext_obex_util.h:1431
    -
    #define CLASS_STICKY_ATTR(c, name, flags, parsestr)
    Create an attribute, and add it to all following attribute declarations.
    Definition: ext_obex_util.h:1722
    +
    #define CLASS_STICKY_ATTR(c, name, flags, parsestr)
    Create an attribute, and add it to all following attribute declarations.
    Definition: ext_obex_util.h:1728
    #define CLASS_ATTR_DOUBLE(c, attrname, flags, structname, structmember)
    Create a 64-bit float attribute and add it to a Max class.
    Definition: ext_obex_util.h:141
    #define CLASS_ATTR_LABEL(c, attrname, flags, labelstr)
    Add a new attribute to the specified attribute to specify an a human-friendly label for the Max inspe...
    Definition: ext_obex_util.h:1328
    -
    #define CLASS_STICKY_ATTR_CLEAR(c, name)
    Close a CLASS_STICKY_ATTR block.
    Definition: ext_obex_util.h:1734
    +
    #define CLASS_STICKY_ATTR_CLEAR(c, name)
    Close a CLASS_STICKY_ATTR block.
    Definition: ext_obex_util.h:1740
    See also
    CLASS_STICKY_ATTR_CLEAR
    @@ -4417,8 +4417,8 @@

    // generator will ignore these methods.
    CLASS_STICKY_METHOD_CLEAR(c, "undocumented");
    -
    #define CLASS_STICKY_METHOD(c, name, flags, parsestr)
    Create an attribute, and add it to all following method declarations.
    Definition: ext_obex_util.h:1765
    -
    #define CLASS_STICKY_METHOD_CLEAR(c, name)
    Close a CLASS_STICKY_METHOD block.
    Definition: ext_obex_util.h:1777
    +
    #define CLASS_STICKY_METHOD(c, name, flags, parsestr)
    Create an attribute, and add it to all following method declarations.
    Definition: ext_obex_util.h:1771
    +
    #define CLASS_STICKY_METHOD_CLEAR(c, name)
    Close a CLASS_STICKY_METHOD block.
    Definition: ext_obex_util.h:1783
    See also
    CLASS_STICKY_METHOD_CLEAR
    @@ -6933,7 +6933,7 @@

    - method  + method  proc  @@ -7100,7 +7100,7 @@

    - method  + method  proc  @@ -7302,7 +7302,7 @@

    }
    void attr_args_process(void *x, short ac, t_atom *av)
    Takes an atom list and properly set any attributes described within.
    void * object_alloc(t_class *c)
    Allocates the memory for an instance of an object class and initialize its object header.
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102
    @@ -7418,13 +7418,13 @@

    - method  + method  mget, - method  + method  mset, @@ -7463,10 +7463,10 @@

    Returns
    This function returns the new attribute's object pointer if successful, or NULL if unsuccessful.
    -
    Remarks
    For instance, to create a new attribute which references an array of 10 t_atoms (atm; the current number of "active" elements in the array is held in the variable atmcount) in an object class's data structure:
    t_object *attr = attr_offset_array_new("myattrarray", _sym_atom / * matches data size * /, 10 / * max * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, atmcount) / * count * /, calcoffset(t_myobject, atm) / * data * /);
    +
    Remarks
    For instance, to create a new attribute which references an array of 10 t_atoms (atm; the current number of "active" elements in the array is held in the variable atmcount) in an object class's data structure:
    t_object *attr = attr_offset_array_new("myattrarray", _sym_atom / * matches data size * /, 10 / * max * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, atmcount) / * count * /, calcoffset(t_myobject, atm) / * data * /);
    t_object * attr_offset_array_new(C74_CONST char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset)
    Create a new attribute.
    -
    #define calcoffset(x, y)
    Find byte offset of a named member of a struct, relative to the beginning of that struct.
    Definition: ext_prefix.h:180
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    #define calcoffset(x, y)
    Find byte offset of a named member of a struct, relative to the beginning of that struct.
    Definition: ext_prefix.h:143
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    Referenced by ext_main().

    @@ -7500,13 +7500,13 @@

    - C74_CONST method  + C74_CONST method  mget, - C74_CONST method  + C74_CONST method  mset, @@ -7537,7 +7537,7 @@

    Returns
    This function returns the new attribute's object pointer if successful, or NULL if unsuccessful.

    -
    Remarks
    For instance, to create a new attribute which references the value of a double variable (val) in an object class's data structure:
    t_object *attr = attr_offset_new("myattr", _sym_float64 / * matches data size * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, val));
    +
    Remarks
    For instance, to create a new attribute which references the value of a double variable (val) in an object class's data structure:
    t_object *attr = attr_offset_new("myattr", _sym_float64 / * matches data size * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, val));
    t_object * attr_offset_new(C74_CONST char *name, C74_CONST t_symbol *type, long flags, C74_CONST method mget, C74_CONST method mset, long offset)
    Create a new attribute.
    @@ -7572,13 +7572,13 @@

    - method  + method  mget, - method  + method  mset  @@ -8398,7 +8398,7 @@

    - + diff --git a/html/group__attrmod.html b/html/group__attrmod.html index 5be22f52..8c75981c 100644 --- a/html/group__attrmod.html +++ b/html/group__attrmod.html @@ -96,7 +96,7 @@ @@ -142,7 +142,7 @@ - + @@ -157,19 +157,19 @@ - + - + - + - + @@ -252,7 +252,7 @@

    Returns
    gettable flag
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References t_jit_attr::flags, and JIT_ATTR_GET_OPAQUE.

    +

    References t_jit_attr::flags, and JIT_ATTR_GET_OPAQUE.

    @@ -282,7 +282,7 @@

    Returns
    settable flag
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References t_jit_attr::flags, and JIT_ATTR_SET_OPAQUE.

    +

    References t_jit_attr::flags, and JIT_ATTR_SET_OPAQUE.

    @@ -319,7 +319,7 @@

    t_jit_object * jit_attr_filter_proc_new

    - + @@ -377,7 +377,7 @@

    Returns
    t_jit_err error code
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References _jit_sym_filter, t_jit_attr::filterget, jit_object_getmethod(), and method.

    +

    References _jit_sym_filter, t_jit_attr::filterget, jit_object_getmethod(), and method.

    + Here is the call graph for this function:
    @@ -385,9 +385,9 @@

    Returns
    t_jit_err error code
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References _jit_sym_filter, t_jit_attr::filterset, jit_object_getmethod(), and method.

    +

    References _jit_sym_filter, t_jit_attr::filterset, jit_object_getmethod(), and method.

    + Here is the call graph for this function:
    @@ -438,9 +438,9 @@

    method object_attr_method method object_attr_method ( void *  x,
    t_atom_long jit_attr_usercanset (t_jit_attr *x)
     Retrieves attribute user settable flag. More...
     
    method jit_attr_getmethod (t_jit_attr *x, t_symbol *methodname)
    method jit_attr_getmethod (t_jit_attr *x, t_symbol *methodname)
     Retrieves attribute getter or setter method. More...
     
    t_jit_err jit_attr_filterget (t_jit_attr *x, void *y)
    t_jit_err jit_attr_set (t_jit_attr *x, void *parent, long ac, t_atom *av)
     Calls attribute setter to set in parent object. More...
     
    t_jit_objectjit_attribute_new (char *name, t_symbol *type, long flags, method mget, method mset)
    t_jit_objectjit_attribute_new (char *name, t_symbol *type, long flags, method mget, method mset)
     Constructs instance of t_jit_attribute. More...
     
    t_jit_objectjit_attr_offset_new (char *name, t_symbol *type, long flags, method mget, method mset, long offset)
    t_jit_objectjit_attr_offset_new (char *name, t_symbol *type, long flags, method mget, method mset, long offset)
     Constructs instance of t_jit_attr_offset. More...
     
    t_jit_objectjit_attr_offset_array_new (char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset)
    t_jit_objectjit_attr_offset_array_new (char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset)
     Constructs instance of t_jit_attr_offset_array. More...
     
    t_jit_objectjit_attr_filter_clip_new (void)
     Constructs instance of t_jit_attr_filter_clip. More...
     
    t_jit_objectjit_attr_filter_proc_new (method proc)
    t_jit_objectjit_attr_filter_proc_new (method proc)
     Constructs instance of t_jit_attr_filter_proc. More...
     
    t_atom_long jit_attr_getlong (void *x, t_symbol *s)
    (method method  proc)
    - + @@ -908,7 +908,7 @@

    Returns
    getter or setter method
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References _jit_sym_get, _jit_sym_set, t_jit_attr::filterget, t_jit_attr::filterset, t_jit_attr::get, method, and t_jit_attr::set.

    +

    References _jit_sym_get, _jit_sym_set, t_jit_attr::filterget, t_jit_attr::filterset, t_jit_attr::get, method, and t_jit_attr::set.

    @@ -988,9 +988,9 @@

    - + - + @@ -1171,7 +1171,7 @@

    Returns
    t_jit_attr_offset_array object pointer
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_new.
    -

    References t_jit_attr_offset_array::filterget, t_jit_attr_offset_array::filterset, t_jit_attr_offset_array::flags, gensym(), t_jit_attr_offset_array::get, method, t_jit_attr_offset_array::name, t_jit_attr_offset_array::offset, t_jit_attr_offset_array::offsetcount, t_jit_attr_offset_array::reserved, t_jit_attr_offset_array::set, t_jit_attr_offset_array::size, and t_jit_attr_offset_array::type.

    +

    References t_jit_attr_offset_array::filterget, t_jit_attr_offset_array::filterset, t_jit_attr_offset_array::flags, gensym(), t_jit_attr_offset_array::get, method, t_jit_attr_offset_array::name, t_jit_attr_offset_array::offset, t_jit_attr_offset_array::offsetcount, t_jit_attr_offset_array::reserved, t_jit_attr_offset_array::set, t_jit_attr_offset_array::size, and t_jit_attr_offset_array::type.

    + Here is the call graph for this function:
    @@ -1179,8 +1179,8 @@

    - + - + @@ -1251,7 +1251,7 @@

    Returns
    t_jit_attr_offset object pointer
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_new.
    -

    References t_jit_attr_offset::filterget, t_jit_attr_offset::filterset, t_jit_attr_offset::flags, gensym(), t_jit_attr_offset::get, method, t_jit_attr_offset::name, t_jit_attr_offset::offset, t_jit_attr_offset::reserved, t_jit_attr_offset::set, and t_jit_attr_offset::type.

    +

    References t_jit_attr_offset::filterget, t_jit_attr_offset::filterset, t_jit_attr_offset::flags, gensym(), t_jit_attr_offset::get, method, t_jit_attr_offset::name, t_jit_attr_offset::offset, t_jit_attr_offset::reserved, t_jit_attr_offset::set, and t_jit_attr_offset::type.

    + Here is the call graph for this function:
    @@ -1260,7 +1260,7 @@

    - + @@ -1379,10 +1379,10 @@

    - - - + + + @@ -1831,10 +1831,10 @@

    Returns
    user gettable flag
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References t_jit_attr::flags, and JIT_ATTR_GET_OPAQUE_USER.

    +

    References t_jit_attr::flags, and JIT_ATTR_GET_OPAQUE_USER.

    @@ -1949,7 +1949,7 @@

    Returns
    user settable flag
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of any attribute obejct.
    -

    References t_jit_attr::flags, and JIT_ATTR_SET_OPAQUE_USER.

    +

    References t_jit_attr::flags, and JIT_ATTR_SET_OPAQUE_USER.

    @@ -1980,13 +1980,13 @@

    - + - + @@ -2011,7 +2011,7 @@

    Returns
    t_jit_attribute object pointer
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_new.
    -

    References t_jit_attribute::data, t_jit_attribute::filterget, t_jit_attribute::filterset, t_jit_attribute::flags, gensym(), t_jit_attribute::get, method, t_jit_attribute::name, t_jit_attribute::reserved, t_jit_attribute::set, t_jit_attribute::size, and t_jit_attribute::type.

    +

    References t_jit_attribute::data, t_jit_attribute::filterget, t_jit_attribute::filterset, t_jit_attribute::flags, gensym(), t_jit_attribute::get, method, t_jit_attribute::name, t_jit_attribute::reserved, t_jit_attribute::set, t_jit_attribute::size, and t_jit_attribute::type.

    + Here is the call graph for this function:
    @@ -2019,8 +2019,8 @@

    // do something with the t_atom
    }
    short binbuf_getatom(t_binbuf *x, long *p1, long *p2, t_atom *ap)
    Use binbuf_getatom to retrieve a single t_atom from a Binbuf.
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    diff --git a/html/group__binbuf.png b/html/group__binbuf.png index 2a20eb87..106ed8a1 100644 Binary files a/html/group__binbuf.png and b/html/group__binbuf.png differ diff --git a/html/group__binmod.html b/html/group__binmod.html index 98b16185..c12b6389 100644 --- a/html/group__binmod.html +++ b/html/group__binmod.html @@ -96,7 +96,7 @@
    - +

    method jit_attr_getmethod method jit_attr_getmethod ( t_jit_attr x, method method  mget,
    method method  mset,
    method method  mget,
    method method  mset,
    method method  mget,
    method method  mset 
    @@ -171,9 +171,9 @@

    Returns
    t_jit_err error code.
    -

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_getdata, _jit_sym_getinfo, _jit_sym_lock, _jit_sym_long, _jit_sym_setinfo, t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, t_jit_matrix_info::flags, gensym(), JIT_MATRIX_MAX_DIMCOUNT, t_jit_matrix_info::planecount, sysfile_read(), and t_jit_matrix_info::type.

    +

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_getdata, _jit_sym_getinfo, _jit_sym_lock, _jit_sym_long, _jit_sym_setinfo, t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, t_jit_matrix_info::flags, gensym(), JIT_MATRIX_MAX_DIMCOUNT, t_jit_matrix_info::planecount, sysfile_read(), and t_jit_matrix_info::type.

    + Here is the call graph for this function:
    @@ -282,9 +282,9 @@

    Returns
    t_jit_err error code.
    -

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_long, t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, gensym(), JIT_MATRIX_MAX_DIMCOUNT, t_jit_matrix_info::planecount, sysfile_write(), and t_jit_matrix_info::type.

    +

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_long, t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, gensym(), JIT_MATRIX_MAX_DIMCOUNT, t_jit_matrix_info::planecount, sysfile_write(), and t_jit_matrix_info::type.

    + Here is the call graph for this function:
    @@ -386,9 +386,9 @@

    - + @@ -633,13 +633,13 @@

    - + - + @@ -651,7 +651,7 @@

    - + @@ -905,7 +905,7 @@

    See also
    Anatomy of a Max Object
    Version
    Introduced in Max 6.1.9
    -

    References A_CANT, A_FLOAT, A_GIMME, A_LONG, addbang(), addfloat(), addint(), addmess(), attr_offset_array_new(), attr_offset_new(), ATTR_SET_OPAQUE, ATTR_SET_OPAQUE_USER, calcoffset, class_addattr(), class_addmethod(), CLASS_BOX, class_new(), class_obexoffset_set(), class_register(), method, object_obex_dumpout(), object_obex_quickref(), and setup().

    +

    References A_CANT, A_FLOAT, A_GIMME, A_LONG, addbang(), addfloat(), addint(), addmess(), attr_offset_array_new(), attr_offset_new(), ATTR_SET_OPAQUE, ATTR_SET_OPAQUE_USER, calcoffset, class_addattr(), class_addmethod(), CLASS_BOX, class_new(), class_obexoffset_set(), class_register(), method, object_obex_dumpout(), object_obex_quickref(), and setup().

    + Here is the call graph for this function:

    BEGIN_USING_C_LINKAGE void C74_EXPORT ext_main (void *r)
     ext_main() is the entry point for an extern to be loaded, which all externs must implement this shared/common prototype ensures that it will be exported correctly on all platforms. More...
     
    t_classclass_new (C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type,...)
    t_classclass_new (C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type,...)
     Initializes a class by informing Max of its name, instance creation and free functions, size and argument types. More...
     
    t_max_err class_free (t_class *c)
    t_max_err class_alias (t_class *c, t_symbol *aliasname)
     Registers an alias for a previously defined object class. More...
     
    t_max_err class_addmethod (t_class *c, C74_CONST method m, C74_CONST char *name,...)
    t_max_err class_addmethod (t_class *c, C74_CONST method m, C74_CONST char *name,...)
     Adds a method to a previously defined object class. More...
     
    t_max_err class_addattr (t_class *c, t_object *attr)
    C74_CONST method C74_CONST method  m,
    C74_CONST method C74_CONST method  mnew,
    C74_CONST method C74_CONST method  mfree,
    C74_CONST method C74_CONST method  mmenu,

    Functions

    BEGIN_USING_C_LINKAGE void setup (t_messlist **ident, method makefun, method freefun, t_getbytes_size size, method menufun, short type,...)
    BEGIN_USING_C_LINKAGE void setup (t_messlist **ident, method makefun, method freefun, t_getbytes_size size, method menufun, short type,...)
     Use the setup() function to initialize your class by informing Max of its size, the name of your functions that create and destroy instances, and the types of arguments passed to the instance creation function. More...
     
    void addmess (method f, char *s, short type,...)
    void addmess (method f, char *s, short type,...)
     Use addmess() to bind a function to a message other than the standard ones covered by addbang(), addint(), etc. More...
     
    void addbang (method f)
    void addbang (method f)
     Used to bind a function to the common triggering message bang. More...
     
    void addint (method f)
    void addint (method f)
     Use addint() to bind a function to the int message received in the leftmost inlet. More...
     
    void addfloat (method f)
    void addfloat (method f)
     Use addfloat() to bind a function to the float message received in the leftmost inlet. More...
     
    void addinx (method f, short n)
    void addinx (method f, short n)
     Use addinx() to bind a function to a int message that will be received in an inlet other than the leftmost one. More...
     
    void addftx (method f, short n)
    void addftx (method f, short n)
     Use addftx() to bind a function to a float message that will be received in an inlet other than the leftmost one. More...
     
    void * newobject (void *maxclass)
    void * typedmess (t_object *op, t_symbol *msg, short argc, t_atom *argp)
     Send a typed message directly to a Max object. More...
     
    method getfn (t_object *op, t_symbol *msg)
    method getfn (t_object *op, t_symbol *msg)
     Use getfn() to send an untyped message to a Max object with error checking. More...
     
    method egetfn (t_object *op, t_symbol *msg)
    method egetfn (t_object *op, t_symbol *msg)
     Use egetfn() to send an untyped message to a Max object that always works. More...
     
    method zgetfn (t_object *op, t_symbol *msg)
    method zgetfn (t_object *op, t_symbol *msg)
     Use zgetfn() to send an untyped message to a Max object without error checking. More...
     

    void addbang ( - method  + method  f) @@ -190,7 +190,7 @@

    void addfloat ( - method  + method  f) @@ -218,7 +218,7 @@

    void addftx ( - method  + method  f, @@ -256,7 +256,7 @@

    void addint ( - method  + method  f) @@ -284,7 +284,7 @@

    void addinx ( - method  + method  f, @@ -322,7 +322,7 @@

    void addmess ( - method  + method  f, @@ -437,7 +437,7 @@

    - + @@ -508,7 +508,7 @@

    method egetfn method egetfn ( t_object op,
    - + @@ -631,13 +631,13 @@

    - + - + @@ -649,7 +649,7 @@

    - + @@ -758,7 +758,7 @@

    method getfn method getfn ( t_object op, method method  makefun,
    method method  freefun,
    method method  menufun,
    - + diff --git a/html/group__class__old.png b/html/group__class__old.png index 5402feef..c1b4d0fb 100644 Binary files a/html/group__class__old.png and b/html/group__class__old.png differ diff --git a/html/group__class_ga2fa22e46d14006d0de5cde70af1f6221_cgraph.png b/html/group__class_ga2fa22e46d14006d0de5cde70af1f6221_cgraph.png index b555eda6..0a843153 100644 Binary files a/html/group__class_ga2fa22e46d14006d0de5cde70af1f6221_cgraph.png and b/html/group__class_ga2fa22e46d14006d0de5cde70af1f6221_cgraph.png differ diff --git a/html/group__classmod.html b/html/group__classmod.html index b27b82d8..6b5589c0 100644 --- a/html/group__classmod.html +++ b/html/group__classmod.html @@ -105,10 +105,10 @@ - + - + @@ -135,7 +135,7 @@ - + @@ -147,7 +147,7 @@ - + @@ -259,8 +259,8 @@

    Returns
    t_jit_err error code
    -

    References gensym(), hashtab_funall(), hashtab_new(), hashtab_store(), and method.

    +

    References gensym(), hashtab_funall(), hashtab_new(), hashtab_store(), and method.

    + Here is the call graph for this function:
    @@ -377,11 +377,11 @@

    - + @@ -445,9 +445,9 @@

    - + @@ -512,8 +512,8 @@

    method zgetfn method zgetfn ( t_object op,
    t_max_err class_copy (t_symbol *src_name_space, t_symbol *src_classname, t_symbol *dst_name_space, t_symbol *dst_classname)
     Duplicates a previously registered object class, and registers a copy of this class. More...
     
    void * jit_class_new (C74_CONST char *name, method mnew, method mfree, long size,...)
    void * jit_class_new (C74_CONST char *name, method mnew, method mfree, long size,...)
     Creates a new class with the name specified by the name argument. More...
     
    t_jit_err jit_class_addmethod (void *c, method m, const char *name,...)
    t_jit_err jit_class_addmethod (void *c, method m, const char *name,...)
     Adds a named method to a class. More...
     
    t_jit_err jit_class_addattr (void *c, t_jit_object *attr)
    t_jit_err jit_class_register (void *c)
     Registers class in the class registry. More...
     
    method jit_class_method (void *c, t_symbol *methodname)
    method jit_class_method (void *c, t_symbol *methodname)
     Retrieves method function pointer for named method. More...
     
    t_messlistjit_class_mess (t_jit_class *c, t_symbol *methodname)
    void * jit_class_findbyname (t_symbol *classname)
     Retrieves class pointer associated with name provided. More...
     
    t_jit_err jit_class_addtypedwrapper (void *c, method m, char *name,...)
    t_jit_err jit_class_addtypedwrapper (void *c, method m, char *name,...)
     Adds a typed wrapper method to a class. More...
     
    t_messlistjit_class_typedwrapper_get (void *c, t_symbol *s)
    method method  m,
    method method  m,
    - + @@ -808,9 +808,9 @@

    - + - + @@ -969,7 +969,7 @@

    Warning
    In order for the Jitter class to be exposed to JavaScript and Java, it is important that the constructor is typed, even if no arguments are provided–i.e. do not use the older strategy of defining Jitter constructors as private and untyped with A_CANT.
    Returns
    class pointer to be used in other class functions
    -

    References A_CANT, A_GIMME, class_addmethod(), class_new(), jit_object_exportattrs(), jit_object_importattrs(), and method.

    +

    References A_CANT, A_GIMME, class_addmethod(), class_new(), jit_object_exportattrs(), jit_object_importattrs(), and method.

    + Here is the call graph for this function:
    @@ -978,28 +978,28 @@

    - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + @@ -1038,9 +1038,9 @@

    method jit_class_method method jit_class_method ( void *  c, method method  mnew,
    method method  mfree,

    double m_interval;
    void *m_outlet;
    } t_mymetro;
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    We’ll assume that the class has been initialized already. Here’s the instance creation function that will allocate a new Clock.

    void *mymetro_create (double defaultInterval)
    {
    t_mymetro *x;
    x = (t_mymetro *)newobject(mymetro_class); // allocate space
    -
    x->m_clock = clock_new(x,(method)mymetro_tick); // make a clock
    +
    x->m_clock = clock_new(x,(method)mymetro_tick); // make a clock
    x->m_interval = defaultInterval; // store the interval
    x->m_outlet = bangout(x); // outlet for ticks
    return x; // return the new object
    }
    void * newobject(void *maxclass)
    Use newobject to allocate the space for an instance of your class and initialize its object header.
    t_clock * clock_new(void *obj, method fn)
    Create a new Clock object.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    void * bangout(void *x)
    Use bangout() to create an outlet that will always send the bang message.

    Here’s the method written to respond to the bang message that starts the metronome.

    void mymetro_bang (t_mymetro *x)
    @@ -239,7 +239,7 @@

    void *m_clock;
    t_symbol *m_setclock;
    } t_metro;
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102

    Here’s the implementation of the routines for turning the metronome on and off. Assume that in the instance creation function, the t_symbol m_setclock has been set to the empty symbol (gensym ("")) and m_clock has been created; the clock function metro_tick() is defined further on.

    void metro_bang(Metro *x) // turn metronome on
    {
    @@ -282,7 +282,7 @@

    }
    method zgetfn(t_object *op, t_symbol *msg)
    Use zgetfn() to send an untyped message to a Max object without error checking.
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:79
    +
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:104

    Creating Schedulers

    If you want to schedule events independently of the time of the global Max scheduler, you can create your own scheduler with scheduler_new(). By calling scheduler_set() with the newly created scheduler, calls to clock_new() will create Clocks tied to your scheduler instead of Max’s global one. You can then control the time of the scheduler (using scheduler_settime()) as well as when it executes clock functions (using scheduler_run()). This is a more general facility than the setclock object routines, but unlike using the time from a setclock object to determine when a Clock function runs, once a Clock is tied to a scheduler.

    @@ -411,7 +411,7 @@

    - + diff --git a/html/group__color.html b/html/group__color.html index b96f3755..824b278b 100644 --- a/html/group__color.html +++ b/html/group__color.html @@ -96,8 +96,8 @@

    Functions

    t_clock * clock_new (void *obj, method fn)
    t_clock * clock_new (void *obj, method fn)
     Create a new Clock object. More...
     
    void clock_delay (t_clock *x, long n)
    method method  fn 
    diff --git a/html/group__color.png b/html/group__color.png index 24264672..f0533ab3 100644 Binary files a/html/group__color.png and b/html/group__color.png differ diff --git a/html/group__console.html b/html/group__console.html index e6f54db1..3c2c94d9 100644 --- a/html/group__console.html +++ b/html/group__console.html @@ -95,8 +95,8 @@
    @@ -364,7 +364,7 @@

    object_post((t_object*)x, "This is my argument: %ld", someArgument);
    }
    void object_post(t_object *x, C74_CONST char *s,...)
    Print text to the Max window, linked to an instance of your object.
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    See also
    object_error()
    diff --git a/html/group__console.png b/html/group__console.png index f8b108a9..07cb6ff0 100644 Binary files a/html/group__console.png and b/html/group__console.png differ diff --git a/html/group__critical.html b/html/group__critical.html index 50bc9ee7..add7134b 100644 --- a/html/group__critical.html +++ b/html/group__critical.html @@ -99,8 +99,8 @@

    diff --git a/html/group__critical.png b/html/group__critical.png index d1c06d32..55a613e4 100644 Binary files a/html/group__critical.png and b/html/group__critical.png differ diff --git a/html/group__database.html b/html/group__database.html index 674e4e57..6b170c31 100644 --- a/html/group__database.html +++ b/html/group__database.html @@ -99,8 +99,8 @@
    diff --git a/html/group__database.png b/html/group__database.png index da2684fd..ebe2b8e0 100644 Binary files a/html/group__database.png and b/html/group__database.png differ diff --git a/html/group__datastore.html b/html/group__datastore.html index 8c0422d0..444cb6f4 100644 --- a/html/group__datastore.html +++ b/html/group__datastore.html @@ -100,17 +100,17 @@
    diff --git a/html/group__datastore.png b/html/group__datastore.png index a0ea2329..c1813354 100644 Binary files a/html/group__datastore.png and b/html/group__datastore.png differ diff --git a/html/group__datatypes.html b/html/group__datatypes.html index 48fc996d..0366bcf5 100644 --- a/html/group__datatypes.html +++ b/html/group__datatypes.html @@ -85,6 +85,7 @@
    @@ -132,12 +133,15 @@
     Coordinates for specifying the size of a region. More...
     
    + + + + +

    +Macros

    +#define CALL_METHOD_0(m)
     Function pointer type for methods returning a long.
     
    - - - @@ -157,10 +161,10 @@

    Typedefs

    -typedef long(* t_intmethod) (void *,...)
     Function pointer type for methods returning a long.
     
    typedef void *(* zero_meth) (void *x)
     Function pointer type for methods with no arguments.
    - - - + + +

    Variables

    -BEGIN_USING_C_LINKAGE typedef void *(* method )(void *,...)
     Function pointer type for generic methods.
     
    +BEGIN_USING_C_LINKAGE typedef void *(* method )(void *)
     Function pointer type for generic methods.
     

    Detailed Description

    diff --git a/html/group__datatypes.js b/html/group__datatypes.js index 9a17fefd..5a1c6c60 100644 --- a/html/group__datatypes.js +++ b/html/group__datatypes.js @@ -18,10 +18,10 @@ var group__datatypes = [ "height", "structt__size.html#aa7ec2bdc3c47d9e01bffdab3c63b3112", null ], [ "width", "structt__size.html#ae9a82c72ca8a72cdf94685a9cb2e1ef6", null ] ] ], + [ "CALL_METHOD_0", "group__datatypes.html#ga49146653b181391d327c8e713c270ca2", null ], [ "gimmeback_meth", "group__datatypes.html#ga9942fa14a64084fb30a92a9ace57b3c9", null ], [ "one_meth", "group__datatypes.html#ga2fba91191d852d779ccafd7a0d808a96", null ], - [ "t_intmethod", "group__datatypes.html#gaa7a0a81f1e809866db67b43eb6a967a5", null ], [ "two_meth", "group__datatypes.html#ga0143376f695266d29a16170631267a3e", null ], [ "zero_meth", "group__datatypes.html#ga8552ad27c1d2770e99ae94a7cdc87d0e", null ], - [ "method", "group__datatypes.html#ga2c3805706f85c0e789f59a1f1da080c8", null ] + [ "method", "group__datatypes.html#ga482c97424132ea0bcb931d42fca5be78", null ] ]; \ No newline at end of file diff --git a/html/group__datatypes.png b/html/group__datatypes.png index 2f7eae7d..d153e376 100644 Binary files a/html/group__datatypes.png and b/html/group__datatypes.png differ diff --git a/html/group__dictionary.html b/html/group__dictionary.html index 6d58b150..d22a39b1 100644 --- a/html/group__dictionary.html +++ b/html/group__dictionary.html @@ -99,8 +99,8 @@ @@ -211,7 +211,7 @@ - + @@ -375,8 +375,8 @@

    long object_classname_compare(void *x, t_symbol *name)
    Determines if a particular object is an instance of a given class.
    void * object_new(t_symbol *name_space, t_symbol *classname,...)
    Allocates the memory for an instance of an object class and initialize its object header internal to ...
    void * object_method(void *x, t_symbol *s,...)
    Sends an untyped message to an object.
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    Creating JSON from a Dictionary

    The easiest way to get write a t_dictionary to disk as JSON is to use the dictionary_write() function. In some cases you may wish have more control, such as to generate JSON but not write it to disk. For that purpose you can create a jsonwriter object as demonstrated below.

    @@ -1464,7 +1464,7 @@

    - + @@ -1485,7 +1485,7 @@

    Parameters

    t_max_err dictionary_clear (t_dictionary *d)
     Delete all values from a dictionary. More...
     
    void dictionary_funall (t_dictionary *d, method fun, void *arg)
    void dictionary_funall (t_dictionary *d, method fun, void *arg)
     Call the specified function for every entry in the dictionary. More...
     
    t_symboldictionary_entry_getkey (t_dictionary_entry *x)
    method method  fun,
    - +
    dThe dictionary instance.
    funThe function to call, specified as function pointer cast to a Max method.
    funThe function to call, specified as function pointer cast to a Max method.
    argAn argument that you would like to pass to the function being called.
    @@ -1503,7 +1503,7 @@

    void dictionary_entry_getvalue(t_dictionary_entry *x, t_atom *value)
    Given a t_dictionary_entry*, return the value associated with that entry.
    t_symbol * dictionary_entry_getkey(t_dictionary_entry *x)
    Given a t_dictionary_entry*, return the key associated with that entry.
    A dictionary entry.
    Definition: ext_dictionary.h:27
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102

    See also
    dictionary_entry_getkey()
    diff --git a/html/group__dictionary.png b/html/group__dictionary.png index dbb9f7cf..1728adb5 100644 Binary files a/html/group__dictionary.png and b/html/group__dictionary.png differ diff --git a/html/group__dictobj.html b/html/group__dictobj.html index 51ec2e50..deff85eb 100644 --- a/html/group__dictobj.html +++ b/html/group__dictobj.html @@ -98,8 +98,8 @@ @@ -725,7 +725,7 @@

    void dictobj_outlet_atoms(void *out, long argc, t_atom *argv)
    Send atoms to an outlet in your Max object, handling complex datatypes that may be present in those a...
    void sysmem_freeptr(void *ptr)
    Free memory allocated with sysmem_newptr().
    t_atom_long t_max_err
    an integer value suitable to be returned as an error code
    Definition: max_types.h:78
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    Parameters

    diff --git a/html/group__dictobj.png b/html/group__dictobj.png index a3fb795c..b4395d56 100644 Binary files a/html/group__dictobj.png and b/html/group__dictobj.png differ diff --git a/html/group__expr.html b/html/group__expr.html index bfa37359..4f908f6a 100644 --- a/html/group__expr.html +++ b/html/group__expr.html @@ -100,8 +100,8 @@
    outThe outlet through which the atoms should be sent.
    @@ -297,8 +297,8 @@

    $f3 (A_SYM)
    + (A_SYM)
    3 (A_LONG)
    -
    @ A_LONG
    long integer
    Definition: ext_mess.h:251
    -
    @ A_SYM
    t_symbol pointer
    Definition: ext_mess.h:253
    +
    @ A_LONG
    long integer
    Definition: ext_mess.h:279
    +
    @ A_SYM
    t_symbol pointer
    Definition: ext_mess.h:281

    After calling expr_new, types would contain the following:

    Index Argument Type Value
    0 1 ($i1) A_LONG 0
    @@ -310,8 +310,8 @@

    6 7 A_NOTHING 0

    7 8 A_NOTHING 0
    8 9 A_NOTHING 0
    -
    @ A_FLOAT
    32-bit float
    Definition: ext_mess.h:252
    -
    @ A_NOTHING
    no type, thus no atom
    Definition: ext_mess.h:250
    +
    @ A_FLOAT
    32-bit float
    Definition: ext_mess.h:280
    +
    @ A_NOTHING
    no type, thus no atom
    Definition: ext_mess.h:278
    diff --git a/html/group__expr.js b/html/group__expr.js index 28d6abe5..d0c74368 100644 --- a/html/group__expr.js +++ b/html/group__expr.js @@ -1,7 +1,7 @@ var group__expr = [ [ "t_ex_ex", "structt__ex__ex.html", [ - [ "ex_cont", "structt__ex__ex.html#a94ee6c6db25862bf3797c0e3c96d18d3", null ], + [ "ex_cont", "structt__ex__ex.html#a10538657d8b858e9f4d5c17cef554d35", null ], [ "ex_type", "structt__ex__ex.html#a563820e3f60538899256d1fd4ec8e71f", null ] ] ], [ "t_expr", "structt__expr.html", [ diff --git a/html/group__expr.png b/html/group__expr.png index d2368884..1b2bb9f7 100644 Binary files a/html/group__expr.png and b/html/group__expr.png differ diff --git a/html/group__files.html b/html/group__files.html index e9844b2d..793810b8 100644 --- a/html/group__files.html +++ b/html/group__files.html @@ -84,7 +84,6 @@
    @@ -108,16 +107,6 @@

     The pathlink data structure. More...
     
    - - - - - - - -

    -Macros

    -#define MAX_PATH_CHARS
     The size you should use when allocating strings for full paths.
     
    #define MAX_FILENAME_CHARS
     The size you should use when allocating strings for filenames. More...
     
    @@ -126,6 +115,12 @@

    Typedefs

    typedef t_filestruct * t_filehandle
    + + + + + + - + @@ -521,7 +521,7 @@

    Parameters

    Enumerations

    enum  
     The size you should use when allocating strings for full paths.
     
    enum  
     The size you should use when allocating strings for filenames. More...
     
    enum  e_max_path_styles {
      PATH_STYLE_MAX , PATH_STYLE_NATIVE @@ -381,52 +376,51 @@

    Collectives and Fileusage

    -

    Use the fileusage routines to add files to a collective when a user chooses to build a collective. Your object can respond to a "fileusage" message, which is sent by Max when the collective builder is building a collective using the following:

    class_addmethod(c, (method)my_fileusage, "fileusage", A_CANT, 0L);
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    +

    Use the fileusage routines to add files to a collective when a user chooses to build a collective. Your object can respond to a "fileusage" message, which is sent by Max when the collective builder is building a collective using the following:

    class_addmethod(c, (method)my_fileusage, "fileusage", A_CANT, 0L);
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25

    Where my file usage has the prototype:

    void my_fileusage(t_myObject *x, void *w);

    Then you can use fileusage_addfile() to add any requisite files to the collective.

    Filewatchers

    Your object can watch a file or folder and be notified of changes. Use filewatcher_new(), filewatcher_start(), and filewatcher_stop() to implement this functionality. You may wish to use filewatchers sparingly as they can potentially incur computational overhead in the background.

    -

    Macro Definition Documentation

    - -

    ◆ MAX_FILENAME_CHARS

    +

    Typedef Documentation

    + +

    ◆ t_filehandle

    - +
    #define MAX_FILENAME_CHARStypedef t_filestruct* t_filehandle
    -

    The size you should use when allocating strings for filenames.

    -

    At the time of this writing it supports up to 256 UTF chars

    +

    A t_filehandle is a cross-platform way of referring to an open file.

    +

    It is an opaque structure, meaning you don’t have access to the individual elements of the data structure. You can use a t_filehandle only with the file routines in the Sysfile API. Do not use other platform- specific file functions in conjunction with these functions. The perm parameter can be either READ_PERM, WRITE_PERM, or RW_PERM.

    -

    Typedef Documentation

    - -

    ◆ t_filehandle

    +

    Enumeration Type Documentation

    + +

    ◆ anonymous enum

    - +
    typedef t_filestruct* t_filehandleanonymous enum
    -

    A t_filehandle is a cross-platform way of referring to an open file.

    -

    It is an opaque structure, meaning you don’t have access to the individual elements of the data structure. You can use a t_filehandle only with the file routines in the Sysfile API. Do not use other platform- specific file functions in conjunction with these functions. The perm parameter can be either READ_PERM, WRITE_PERM, or RW_PERM.

    +

    The size you should use when allocating strings for filenames.

    +

    At the time of this writing it supports up to 256 UTF chars

    -

    Enumeration Type Documentation

    ◆ e_max_fileinfo_flags

    @@ -929,10 +923,9 @@

    Returns
    If a file is found with the name specified by filename, locatefile returns 0, otherwise it returns non-zero.
    See also
    path_getdefault().
    Remarks
    The old file search routines locatefile() and locatefiletype() are still supported in Max 4, but the use of a new routine locatefile_extended() is highly recommended. However, locatefile_extended() has an important difference from locatefile() and locatefiletype() that may require some rewriting of your code. It modifies its name parameter in certain cases, while locatefile() and locatefiletype() do not. The two cases where it could modify the incoming filename string are 1) when an alias is specified, the file pointed to by the alias is returned; and 2) when a full path is specified, the output is the filename plus the path number of the folder it's in.
    -

    This is important because many people pass the s_name field of a t_symbol to locatefile(). If the name field of a t_symbol were to be modified, the symbol table would be corrupted. To avoid this problem, use strncpy_zero() to copy the contents of a t_symbol to a character string first, as shown below:

    char filename[MAX_FILENAME_CHARS];
    -
    strncpy_zero(filename,str->s_name, MAX_FILENAME_CHARS);
    +

    This is important because many people pass the s_name field of a t_symbol to locatefile(). If the name field of a t_symbol were to be modified, the symbol table would be corrupted. To avoid this problem, use strncpy_zero() to copy the contents of a t_symbol to a character string first, as shown below:

    char filename[MAX_FILENAME_CHARS];
    +
    strncpy_zero(filename,str->s_name, MAX_FILENAME_CHARS);
    result = locatefile_extended(filename,&path,&type,typelist,1);
    -
    #define MAX_FILENAME_CHARS
    The size you should use when allocating strings for filenames.
    Definition: ext_path.h:31
    short locatefile_extended(char *name, short *outvol, t_fourcc *outtype, C74_CONST t_fourcc *filetypelist, short numtypes)
    Find a file by name.
    BEGIN_USING_C_LINKAGE char * strncpy_zero(char *dst, const char *src, long size)
    Copy the contents of one string to another, in a manner safer than the standard strcpy() or strncpy()...
    @@ -1041,7 +1034,7 @@

    Parameters
    - + @@ -1578,7 +1571,7 @@

    Returns
    An error code.
    -
    See also
    MAX_PATH_CHARS
    +
    See also
    #MAX_PATH_CHARS
    @@ -1795,8 +1788,8 @@

    path_nameconform(filestring, sNativeQualifiedPathname, PATH_STYLE_NATIVE, PATH_TYPE_PATH);
    t_max_err path_toabsolutesystempath(const short in_path, const char *in_filename, char *out_filepath)
    Translates a Max path+filename combo into a correct POSIX absolute path that can be used to pass to l...
    short path_nameconform(C74_CONST char *src, char *dst, long style, long type)
    Convert a source path string to destination path string using the specified style and type.
    -
    @ PATH_STYLE_NATIVE
    use PATH_STYLE_NATIVE_PLAT
    Definition: ext_path.h:49
    -
    @ PATH_TYPE_PATH
    path
    Definition: ext_path.h:75
    +
    @ PATH_STYLE_NATIVE
    use PATH_STYLE_NATIVE_PLAT
    Definition: ext_path.h:52
    +
    @ PATH_TYPE_PATH
    path
    Definition: ext_path.h:78
    @@ -1935,7 +1928,7 @@

    Parameters

    nameA C-string that will receive the name of the file the user wants to open. The C-string should be allocated with a size of at least MAX_FILENAME_CHARS.
    nameA C-string that will receive the name of the file the user wants to open. The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS.
    volptrReceives the Path ID of the file the user wants to open.
    typeptrThe file type of the file the user wants to open.
    typesA list of file types to display. This is not limited to 4 types as in the SFGetFile() trap. Pass NULL to display all types.
    - +
    filenameA C-string containing a default name for the file to save. If the user decides to save a file, its name is returned here. The C-string should be allocated with a size of at least MAX_FILENAME_CHARS.
    filenameA C-string containing a default name for the file to save. If the user decides to save a file, its name is returned here. The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS.
    pathIf the user decides to save the file, the Path ID of the location chosen is returned here.
    binptrPass NULL for this parameter. This parameter was used in Max 4 to allow the choice of saving binary or text format patchers.
    @@ -2046,7 +2039,7 @@

    Parameters
    - + diff --git a/html/group__files.js b/html/group__files.js index b6cb0da9..6ac08d35 100644 --- a/html/group__files.js +++ b/html/group__files.js @@ -8,8 +8,6 @@ var group__files = ] ], [ "t_path", "structt__path.html", null ], [ "t_pathlink", "structt__pathlink.html", null ], - [ "MAX_FILENAME_CHARS", "group__files.html#ga481556de2ccf516a499525edebc45ee8", null ], - [ "MAX_PATH_CHARS", "group__files.html#ga513fe2710e225c840d9295fb9884607b", null ], [ "t_filehandle", "group__files.html#ga97be3130fc4b5da33f4b69ce9dedd5af", null ], [ "e_max_fileinfo_flags", "group__files.html#gaad4b197d6bb36cf68616a756fa85f1be", [ [ "PATH_FILEINFO_ALIAS", "group__files.html#ggaad4b197d6bb36cf68616a756fa85f1bea2c5109b5474f11e41c65e2e57de79fdd", null ], diff --git a/html/group__hashtab.html b/html/group__hashtab.html index 1daa942d..2877942e 100644 --- a/html/group__hashtab.html +++ b/html/group__hashtab.html @@ -84,7 +84,7 @@
    Hash Table
    @@ -100,8 +100,8 @@
    nameA C-string containing a default name for the file to save. If the user decides to save a file, its name is returned here. The C-string should be allocated with a size of at least MAX_FILENAME_CHARS.
    nameA C-string containing a default name for the file to save. If the user decides to save a file, its name is returned here. The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS.
    volIf the user decides to save the file, the Path ID of the location chosen is returned here.
    typeReturns the type of file chosen by the user.
    typelistThe list of types provided to the user.
    @@ -114,11 +114,11 @@
     The hashtab object. More...
     
    - - - - + + + +

    -Macros

    #define HASH_DEFSLOTS
     Default number of slots in the hash table. More...
     

    +Enumerations

    enum  
     Default number of slots in the hash table. More...
     
    @@ -170,7 +170,7 @@ - + @@ -224,21 +224,21 @@
    t_max_err hashtab_chuck(t_hashtab *x)
    Free a hashtab, but don't free the items it contains.
    t_max_err hashtab_lookup(t_hashtab *x, t_symbol *key, t_object **val)
    Return an item stored in a hashtab with the specified key.
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    The hashtab object.
    Definition: ext_hashtab.h:45
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The hashtab object.
    Definition: ext_hashtab.h:47
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    Note that the Max t_dictionary used for managing patcher data is implemented internally using both a t_hashtab and a t_linklist in parallel. The t_hashtab provides fast access, and the t_linklist provides sorting.

    See also
    http://en.wikipedia.org/wiki/Hash_table
    Linked List
    -

    Macro Definition Documentation

    - -

    ◆ HASH_DEFSLOTS

    +

    Enumeration Type Documentation

    + +

    ◆ anonymous enum

    Functions

    t_max_err hashtab_methodall (t_hashtab *x, t_symbol *s,...)
     Call the named message on every object in the hashtab. More...
     
    t_max_err hashtab_funall (t_hashtab *x, method fun, void *arg)
    t_max_err hashtab_funall (t_hashtab *x, method fun, void *arg)
     Call the specified function for every item in the hashtab. More...
     
    t_atom_long hashtab_getsize (t_hashtab *x)
    - +
    #define HASH_DEFSLOTSanonymous enum

    @@ -500,7 +500,7 @@

    method method  fun,
    - +
    xThe hashtab instance.
    funThe function to call, specified as function pointer cast to a Max method.
    funThe function to call, specified as function pointer cast to a Max method.
    argAn argument that you would like to pass to the function being called.
    @@ -533,7 +533,7 @@

    // do something with e->key, e->value, and myArg here as appropriate
    }
    }
    -
    A hashtab entry.
    Definition: ext_hashtab.h:29
    +
    A hashtab entry.
    Definition: ext_hashtab.h:31

    Referenced by jit_class_addinterface().

    @@ -663,7 +663,7 @@

    sysmem_freeptr(keys);
    t_max_err hashtab_getkeys(t_hashtab *x, long *kc, t_symbol ***kv)
    Retrieve all of the keys stored in a hashtab.
    void sysmem_freeptr(void *ptr)
    Free memory allocated with sysmem_newptr().
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102
    @@ -1006,7 +1006,7 @@

    Returns
    Pointer to the new hashtab object.
    -
    See also
    HASH_DEFSLOTS
    +
    See also
    HASH_DEFSLOTS
    object_free()
    diff --git a/html/group__hashtab.js b/html/group__hashtab.js index 9fb8408c..032a2b9f 100644 --- a/html/group__hashtab.js +++ b/html/group__hashtab.js @@ -2,7 +2,6 @@ var group__hashtab = [ [ "t_hashtab_entry", "structt__hashtab__entry.html", null ], [ "t_hashtab", "structt__hashtab.html", null ], - [ "HASH_DEFSLOTS", "group__hashtab.html#ga160118a25646d04cce8c75f6f3eb9207", null ], [ "hashtab_chuck", "group__hashtab.html#gac3203c76c8321cde39088beab8b4d2e8", null ], [ "hashtab_chuckkey", "group__hashtab.html#ga9bbf0199ef8b92a977b3bee5fd746799", null ], [ "hashtab_clear", "group__hashtab.html#gae7984db2865416d6da6ce20c76975321", null ], diff --git a/html/group__hashtab.png b/html/group__hashtab.png index 53401509..6b8bcd7b 100644 Binary files a/html/group__hashtab.png and b/html/group__hashtab.png differ diff --git a/html/group__indexmap.html b/html/group__indexmap.html index fda5ab31..9dc8444b 100644 --- a/html/group__indexmap.html +++ b/html/group__indexmap.html @@ -99,8 +99,8 @@ diff --git a/html/group__indexmap.png b/html/group__indexmap.png index 10e616f5..121ff53a 100644 Binary files a/html/group__indexmap.png and b/html/group__indexmap.png differ diff --git a/html/group__inout.html b/html/group__inout.html index 4ab34440..10b40b2a 100644 --- a/html/group__inout.html +++ b/html/group__inout.html @@ -98,8 +98,8 @@
    @@ -446,7 +446,7 @@

    atom_setlong(&myNumber, 432);
    outlet_anything(myOutlet, gensym("int"), 1, &myNumber);
    t_max_err atom_setlong(t_atom *a, t_atom_long b)
    Inserts an integer into a t_atom and change the t_atom's type to A_LONG.
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    Notice that outlet_anything() expects the message argument as a t_symbol*, so you must use gensym() on a character string.
    diff --git a/html/group__inout.png b/html/group__inout.png index 3b75ce2d..4e23d7b2 100644 Binary files a/html/group__inout.png and b/html/group__inout.png differ diff --git a/html/group__jbox.html b/html/group__jbox.html index 1e7b2a9a..9db066c2 100644 --- a/html/group__jbox.html +++ b/html/group__jbox.html @@ -101,8 +101,8 @@

    @@ -220,13 +220,13 @@
    - - - + + - - -

    Enumerations

    enum  { JBOX_FONTFACE_REGULAR -, JBOX_FONTFACE_BOLD -, JBOX_FONTFACE_ITALIC -, JBOX_FONTFACE_BOLDITALIC +
    enum  { JBOX_FONTFACE_REGULAR +, JBOX_FONTFACE_BOLD +, JBOX_FONTFACE_ITALIC +, JBOX_FONTFACE_BOLDITALIC }
     actual numerical values of the b_fontface attribute; use jbox_fontface() to weight More...
     
     actual numerical values of the b_fontface attribute; use jbox_fontface() to weight More...
     
    enum  HitTestResult {
      HitNothing , HitBox @@ -449,8 +449,8 @@

    Enumeration Type Documentation

    - -

    ◆ anonymous enum

    + +

    ◆ anonymous enum

    @@ -463,13 +463,13 @@

    -

    Enumerator
    JBOX_FONTFACE_REGULAR 

    normal

    +
    Enumerator
    JBOX_FONTFACE_REGULAR 

    normal

    JBOX_FONTFACE_BOLD 

    bold

    +
    JBOX_FONTFACE_BOLD 

    bold

    JBOX_FONTFACE_ITALIC 

    italic

    +
    JBOX_FONTFACE_ITALIC 

    italic

    JBOX_FONTFACE_BOLDITALIC 

    bold and italic

    +
    JBOX_FONTFACE_BOLDITALIC 

    bold and italic

    diff --git a/html/group__jbox.js b/html/group__jbox.js index d76589bc..e2f22728 100644 --- a/html/group__jbox.js +++ b/html/group__jbox.js @@ -27,10 +27,10 @@ var group__jbox = [ "JBOX_TEXTFIELD", "group__jbox.html#ga1abed197d8348eb15df1a5c9d4bc368d", null ], [ "JBOX_TEXTJUSTIFICATIONATTR", "group__jbox.html#gacf2db7d7dcd4d5ea8c1a430a903a52b3", null ], [ "JBOX_TRANSPARENT", "group__jbox.html#ga3a5253e4b79d030934557351547c71ba", [ - [ "JBOX_FONTFACE_REGULAR", "group__jbox.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a0071b2aa858b0b85866ec55f920661ea", null ], - [ "JBOX_FONTFACE_BOLD", "group__jbox.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a7c5afcc54470110f9adafe6643860e33", null ], - [ "JBOX_FONTFACE_ITALIC", "group__jbox.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8a804e35b0947d1056b75c0b7416aed5f1", null ], - [ "JBOX_FONTFACE_BOLDITALIC", "group__jbox.html#ggaabfcbcb5ac86a1edac4035264bc7d2b8ac504521024538cbb38406272126cb30b", null ] + [ "JBOX_FONTFACE_REGULAR", "group__jbox.html#ggafa231099d07583c3ed0981e0bb665f55a0071b2aa858b0b85866ec55f920661ea", null ], + [ "JBOX_FONTFACE_BOLD", "group__jbox.html#ggafa231099d07583c3ed0981e0bb665f55a7c5afcc54470110f9adafe6643860e33", null ], + [ "JBOX_FONTFACE_ITALIC", "group__jbox.html#ggafa231099d07583c3ed0981e0bb665f55a804e35b0947d1056b75c0b7416aed5f1", null ], + [ "JBOX_FONTFACE_BOLDITALIC", "group__jbox.html#ggafa231099d07583c3ed0981e0bb665f55ac504521024538cbb38406272126cb30b", null ] ] ], [ "HitTestResult", "group__jbox.html#ga956a254a140565aa9ff36a514740e021", [ [ "HitNothing", "group__jbox.html#gga956a254a140565aa9ff36a514740e021a3bb67caa8d046ec70d5f467d64a6a290", null ], diff --git a/html/group__jbox.png b/html/group__jbox.png index 8279c1c7..13de3c58 100644 Binary files a/html/group__jbox.png and b/html/group__jbox.png differ diff --git a/html/group__jdataview.png b/html/group__jdataview.png index 9bc3e717..65fd0c0f 100644 Binary files a/html/group__jdataview.png and b/html/group__jdataview.png differ diff --git a/html/group__jfont.html b/html/group__jfont.html index c4452d2f..eaf7a5e4 100644 --- a/html/group__jfont.html +++ b/html/group__jfont.html @@ -97,8 +97,8 @@ diff --git a/html/group__jfont.png b/html/group__jfont.png index be4ed523..69320e3b 100644 Binary files a/html/group__jfont.png and b/html/group__jfont.png differ diff --git a/html/group__jgraphics.html b/html/group__jgraphics.html index 7ee40437..55c04439 100644 --- a/html/group__jgraphics.html +++ b/html/group__jgraphics.html @@ -103,18 +103,18 @@ @@ -1245,7 +1245,7 @@

    Remarks
    This example shows a common usage of jgraphics_getfiletypes().
    char filename[MAX_PATH_CHARS];
    +
    Remarks
    This example shows a common usage of jgraphics_getfiletypes().
    char filename[MAX_PATH_CHARS];
    t_fourcc *type = NULL;
    long ntype;
    long outtype;
    @@ -1261,7 +1261,7 @@

    goto out;

    }
    else {
    -
    strncpy_zero(filename, s->s_name, MAX_PATH_CHARS);
    +
    strncpy_zero(filename, s->s_name, MAX_PATH_CHARS);
    err = locatefile_extended(filename, &path, &outtype, type, ntype);
    if (err)
    goto out;
    @@ -1270,7 +1270,6 @@

    out:

    if (alloc)
    sysmem_freeptr((char *)type);
    -
    #define MAX_PATH_CHARS
    The size you should use when allocating strings for full paths.
    Definition: ext_path.h:24
    short open_dialog(char *name, short *volptr, t_fourcc *typeptr, t_fourcc *types, short ntypes)
    Present the user with the standard open file dialog.
    short locatefile_extended(char *name, short *outvol, t_fourcc *outtype, C74_CONST t_fourcc *filetypelist, short numtypes)
    Find a file by name.
    void jgraphics_getfiletypes(void *dummy, long *count, t_fourcc **filetypes, char *alloc)
    Get a list of of filetypes appropriate for use with jgraphics surfaces.
    diff --git a/html/group__jgraphics.png b/html/group__jgraphics.png index 6355518d..88f53a06 100644 Binary files a/html/group__jgraphics.png and b/html/group__jgraphics.png differ diff --git a/html/group__jitter.html b/html/group__jitter.html index c83a77c5..4c771a99 100644 --- a/html/group__jitter.html +++ b/html/group__jitter.html @@ -84,8 +84,8 @@
    Jitter
    @@ -98,22 +98,22 @@

    @@ -150,225 +150,6 @@
     Operator Vector Module
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Macros

    -#define JIT_ATTR_GET_OPAQUE
     private getter (all)
     
    -#define JIT_ATTR_SET_OPAQUE
     private setter (all)
     
    -#define JIT_ATTR_GET_OPAQUE_USER
     private getter (user)
     
    -#define JIT_ATTR_SET_OPAQUE_USER
     private setter (user)
     
    -#define JIT_ATTR_GET_DEFER
     defer getter (deprecated)
     
    -#define JIT_ATTR_GET_USURP
     usurp getter (deprecated)
     
    -#define JIT_ATTR_GET_DEFER_LOW
     defer getter
     
    -#define JIT_ATTR_GET_USURP_LOW
     usurp getter
     
    -#define JIT_ATTR_SET_DEFER
     defer setter (deprecated)
     
    -#define JIT_ATTR_SET_USURP
     usurp setter (deprecated)
     
    -#define JIT_ATTR_SET_DEFER_LOW
     defer setter
     
    -#define JIT_ATTR_SET_USURP_LOW
     usurp setter
     
    -#define JIT_MATRIX_DATA_HANDLE
     data is handle
     
    -#define JIT_MATRIX_DATA_REFERENCE
     data is reference to outside memory
     
    -#define JIT_MATRIX_DATA_PACK_TIGHT
     data is tightly packed (doesn't use standard 16 byte alignment)
     
    -#define JIT_MATRIX_DATA_FLAGS_USE
     necessary if using handle/reference data flags when creating jit_matrix, however, it is never stored in matrix
     
    -#define JIT_MATRIX_MAX_DIMCOUNT
     maximum dimension count
     
    -#define JIT_MATRIX_MAX_PLANECOUNT
     maximum plane count
     
    -#define JIT_MATRIX_CONVERT_CLAMP
     not currently used
     
    -#define JIT_MATRIX_CONVERT_INTERP
     use interpolation
     
    -#define JIT_MATRIX_CONVERT_SRCDIM
     use source dimensions
     
    -#define JIT_MATRIX_CONVERT_DSTDIM
     use destination dimensions
     
    -#define JIT_OB3D_NO_ROTATION_SCALE
     ob3d flag
     
    -#define JIT_OB3D_NO_POLY_VARS
     ob3d flag
     
    -#define JIT_OB3D_NO_BLEND
     ob3d flag
     
    -#define JIT_OB3D_NO_TEXTURE
     ob3d flag
     
    -#define JIT_OB3D_NO_MATRIXOUTPUT
     ob3d flag
     
    -#define JIT_OB3D_AUTO_ONLY
     ob3d flag
     
    -#define JIT_OB3D_DOES_UI
     ob3d flag
     
    -#define JIT_OB3D_NO_DEPTH
     ob3d flag
     
    -#define JIT_OB3D_NO_ANTIALIAS
     ob3d flag
     
    -#define JIT_OB3D_NO_FOG
     ob3d flag
     
    -#define JIT_OB3D_NO_LIGHTING_MATERIAL
     ob3d flag
     
    -#define JIT_OB3D_HAS_LIGHTS
     ob3d flag
     
    -#define JIT_OB3D_HAS_CAMERA
     ob3d flag
     
    -#define JIT_OB3D_IS_RENDERER
     ob3d flag
     
    -#define JIT_OB3D_NO_COLOR
     ob3d flag
     
    -#define JIT_OB3D_IS_SLAB
     ob3d flag
     
    -#define MAX_JIT_MOP_FLAGS_NONE
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_ALL
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_BANG
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_NAME
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_TYPE
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_DIM
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_CLEAR
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_NOTIFY
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_ADAPT
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE
     mop flag
     
    -#define MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE
     mop flag
     
    -#define JIT_MOP_INPUT
     mop flag
     
    -#define JIT_MOP_OUTPUT
     mop flag
     
    - + @@ -836,7 +836,7 @@

    Parameters

    Typedefs

    diff --git a/html/group__jitter.js b/html/group__jitter.js index 02681b5c..b8700ecc 100644 --- a/html/group__jitter.js +++ b/html/group__jitter.js @@ -15,61 +15,61 @@ var group__jitter = [ "Parallel Utility Module", "group__parallelutilmod.html", "group__parallelutilmod" ], [ "MOP Max Wrapper Module", "group__maxmopmod.html", "group__maxmopmod" ], [ "Operator Vector Module", "group__opvecmod.html", "group__opvecmod" ], - [ "JIT_ATTR_GET_DEFER", "group__jitter.html#ga13c8aa5f90991dad82d1d4dcc3623223", null ], - [ "JIT_ATTR_GET_DEFER_LOW", "group__jitter.html#ga810447020b75b5173d4c6776cd2653d8", null ], - [ "JIT_ATTR_GET_OPAQUE", "group__jitter.html#gaad15de144710f76f17f8f79442c1ee13", null ], - [ "JIT_ATTR_GET_OPAQUE_USER", "group__jitter.html#ga9c73a749fbf9f581b85e8ecf9a875b91", null ], - [ "JIT_ATTR_GET_USURP", "group__jitter.html#ga671a2b2c9ef9f347d5a161b8cb9bcc9e", null ], - [ "JIT_ATTR_GET_USURP_LOW", "group__jitter.html#ga07253544f23d315b75f37accf1270a4b", null ], - [ "JIT_ATTR_SET_DEFER", "group__jitter.html#gafb0470fc7ed5e1bbee265c131ad66488", null ], - [ "JIT_ATTR_SET_DEFER_LOW", "group__jitter.html#gaf76b6ca84610d13c1276c51afc2b10ba", null ], - [ "JIT_ATTR_SET_OPAQUE", "group__jitter.html#gae7eacda8a8da4e67c363ccc33c46b6d1", null ], - [ "JIT_ATTR_SET_OPAQUE_USER", "group__jitter.html#gae998edfcacc5675e80f85d499453ea23", null ], - [ "JIT_ATTR_SET_USURP", "group__jitter.html#ga3c97eb0dab6ac2588b8a86d2823d8765", null ], - [ "JIT_ATTR_SET_USURP_LOW", "group__jitter.html#ga2ffda4034665d46f65461d67b1004715", null ], - [ "JIT_MATRIX_CONVERT_CLAMP", "group__jitter.html#ga10156f72ad806d9e8573f47df19118bd", null ], - [ "JIT_MATRIX_CONVERT_DSTDIM", "group__jitter.html#ga1b1e7bf9ea9a7a839f68b243174b5692", null ], - [ "JIT_MATRIX_CONVERT_INTERP", "group__jitter.html#gafd3ca93ff4686581454e07c3929934bf", null ], - [ "JIT_MATRIX_CONVERT_SRCDIM", "group__jitter.html#ga1893e85d59588d93923b0ee5ead9fd63", null ], - [ "JIT_MATRIX_DATA_FLAGS_USE", "group__jitter.html#ga54577b5c1a79b9808696965db09fa78d", null ], - [ "JIT_MATRIX_DATA_HANDLE", "group__jitter.html#gaeb64c758a0a5e003c4b275da17170dbf", null ], - [ "JIT_MATRIX_DATA_PACK_TIGHT", "group__jitter.html#ga8d2975bb5165583d45ea766784e5a60b", null ], - [ "JIT_MATRIX_DATA_REFERENCE", "group__jitter.html#ga524952b91ca521028ba5cbd43bbdb2bf", null ], - [ "JIT_MATRIX_MAX_DIMCOUNT", "group__jitter.html#ga3a74bc72df454ac5618a865fd3c56870", null ], - [ "JIT_MATRIX_MAX_PLANECOUNT", "group__jitter.html#gaae5121f82aa81cb79ec17220f845ea08", null ], - [ "JIT_MOP_INPUT", "group__jitter.html#gaabaf165bab15a39bbd561807b3f5bb37", null ], - [ "JIT_MOP_OUTPUT", "group__jitter.html#ga979fc199dadb0724f942c6a48cb733a1", null ], - [ "JIT_OB3D_AUTO_ONLY", "group__jitter.html#ga63a89334c5c06f92792333d191b71b06", null ], - [ "JIT_OB3D_DOES_UI", "group__jitter.html#gaafef09ee7a36fc16e46529783df7cd72", null ], - [ "JIT_OB3D_HAS_CAMERA", "group__jitter.html#ga1f324497fe983b02072b38d5c725ba2a", null ], - [ "JIT_OB3D_HAS_LIGHTS", "group__jitter.html#ga1f032969c5d7b0adb353743e77736b96", null ], - [ "JIT_OB3D_IS_RENDERER", "group__jitter.html#ga46c7216fed49a3b9f9f10ad4d87cea55", null ], - [ "JIT_OB3D_IS_SLAB", "group__jitter.html#gaf6797493caebaf2a151563492f190b35", null ], - [ "JIT_OB3D_NO_ANTIALIAS", "group__jitter.html#ga2ef1435359d9dca4722fb71db4b0d423", null ], - [ "JIT_OB3D_NO_BLEND", "group__jitter.html#gab4407b5b96c0744f03bec69e204b56bb", null ], - [ "JIT_OB3D_NO_COLOR", "group__jitter.html#ga6d6e4c119dbea5119a0f452a2486e590", null ], - [ "JIT_OB3D_NO_DEPTH", "group__jitter.html#gad4a2b2f395618bafbd7faca61106b9f7", null ], - [ "JIT_OB3D_NO_FOG", "group__jitter.html#gaf9c39790969f477fb42c3fe674eb5ca7", null ], - [ "JIT_OB3D_NO_LIGHTING_MATERIAL", "group__jitter.html#gaf7b319953ace69f17633be98233fd324", null ], - [ "JIT_OB3D_NO_MATRIXOUTPUT", "group__jitter.html#ga015276252d0ad61f9f35ad1ea227d089", null ], - [ "JIT_OB3D_NO_POLY_VARS", "group__jitter.html#ga2eee6fc87f33ea672c921cddf960d5e1", null ], - [ "JIT_OB3D_NO_ROTATION_SCALE", "group__jitter.html#gafc39daa7e259fa20f8fe918cb4892dc4", null ], - [ "JIT_OB3D_NO_TEXTURE", "group__jitter.html#gaf7d77e7694341904bdbd7440ae71d42e", null ], - [ "MAX_JIT_MOP_FLAGS_NONE", "group__jitter.html#ga6f8627ede2fc37736591b2d8f8e32b5b", null ], - [ "MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE", "group__jitter.html#ga70d976385c6ac68856b2493f33149366", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_ADAPT", "group__jitter.html#ga1c01c9fbad6e41293920117964654f61", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_ALL", "group__jitter.html#ga60cbfeaf26417a8d6561fb9acce523d5", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_BANG", "group__jitter.html#gae93fd085f28675389848233a82521942", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_CLEAR", "group__jitter.html#gaadd7ebf9b850b06496bdeb9414d181e4", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_DIM", "group__jitter.html#gaf138ee8c3a7120b8914c2e815ed013bd", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX", "group__jitter.html#ga76b29cb7bf7f194cef194fb65df28ddd", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_NAME", "group__jitter.html#ga2da79e2f2413304655b66637eeff0326", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_NOTIFY", "group__jitter.html#ga669c2f28bba1dfb4181ebae8f19488bc", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX", "group__jitter.html#ga7c51c91474bdbc40437dbd946df19cc5", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE", "group__jitter.html#gadad1691bc68342a60441cb884a89129d", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT", "group__jitter.html#ga77553b6728bd9d5d6d18fe6e4d65a128", null ], - [ "MAX_JIT_MOP_FLAGS_OWN_TYPE", "group__jitter.html#gaf85d3bada9b15b7c5371e4cbeeffcaeb", null ], [ "t_jit_object", "group__jitter.html#ga0eb2cd9c8e3b9803ba31069575a1ffb9", null ], + [ "JIT_ATTR_GET_DEFER", "group__jitter.html#ga5f72930249b485b67219020c714f6988a30b6bb040bff8bdb5e8f3bb6bfb29686", null ], + [ "JIT_ATTR_GET_DEFER_LOW", "group__jitter.html#ga5f72930249b485b67219020c714f6988a11a88f3db8d39a18143dc2c9ebe81aeb", null ], + [ "JIT_ATTR_GET_OPAQUE", "group__jitter.html#ga5f72930249b485b67219020c714f6988add5c27a1ff6dfc471dcba5fed77fbe37", null ], + [ "JIT_ATTR_GET_OPAQUE_USER", "group__jitter.html#ga5f72930249b485b67219020c714f6988a17944693db68bcd512c6dab2c36bff31", null ], + [ "JIT_ATTR_GET_USURP", "group__jitter.html#ga5f72930249b485b67219020c714f6988abd95992aa47fcd267016a80cbdf5cac9", null ], + [ "JIT_ATTR_GET_USURP_LOW", "group__jitter.html#ga5f72930249b485b67219020c714f6988a8da7797b93c643f5371c7fd355a14829", null ], + [ "JIT_ATTR_SET_DEFER", "group__jitter.html#ga5f72930249b485b67219020c714f6988aa6bdeb07d6f2c06b57a4471bacb37d22", null ], + [ "JIT_ATTR_SET_DEFER_LOW", "group__jitter.html#ga5f72930249b485b67219020c714f6988acbfe492439b20a6b5990136ba4eb96ce", null ], + [ "JIT_ATTR_SET_OPAQUE", "group__jitter.html#ga5f72930249b485b67219020c714f6988abddb61838a14a92ebd9df0c33ff5c6c4", null ], + [ "JIT_ATTR_SET_OPAQUE_USER", "group__jitter.html#ga5f72930249b485b67219020c714f6988aa810a110091de56016646db69dc91492", null ], + [ "JIT_ATTR_SET_USURP", "group__jitter.html#ga5f72930249b485b67219020c714f6988a718e105352c18298bc63911066c1279b", null ], + [ "JIT_ATTR_SET_USURP_LOW", "group__jitter.html#ga5f72930249b485b67219020c714f6988a4d69e440bdbfba53ab1f62b6384532d1", null ], + [ "JIT_MATRIX_CONVERT_CLAMP", "group__jitter.html#ga1c832eb35523efefaaa9364d2eb2e1faa767c96b68cb4f5923e4e7be529685bb0", null ], + [ "JIT_MATRIX_CONVERT_DSTDIM", "group__jitter.html#ga1c832eb35523efefaaa9364d2eb2e1faaf0c53e4ed7e1a8c54c5b8b3b187e6c53", null ], + [ "JIT_MATRIX_CONVERT_INTERP", "group__jitter.html#ga1c832eb35523efefaaa9364d2eb2e1faac4367a3c3976f34e030e3b20065cb678", null ], + [ "JIT_MATRIX_CONVERT_SRCDIM", "group__jitter.html#ga1c832eb35523efefaaa9364d2eb2e1faac78dfd4ab68ab6d98a2ae26c7c79ebbb", null ], + [ "JIT_MATRIX_DATA_FLAGS_USE", "group__jitter.html#ga138e2ebc4f11d0f8ed16f90e3f425476aa813218ea447eade5c663065501bb385", null ], + [ "JIT_MATRIX_DATA_HANDLE", "group__jitter.html#ga138e2ebc4f11d0f8ed16f90e3f425476ae678f168e9a6b3cf0b3efee15510b381", null ], + [ "JIT_MATRIX_DATA_PACK_TIGHT", "group__jitter.html#ga138e2ebc4f11d0f8ed16f90e3f425476a85f45ba53da09b69f1ee9d44f49cdbfe", null ], + [ "JIT_MATRIX_DATA_REFERENCE", "group__jitter.html#ga138e2ebc4f11d0f8ed16f90e3f425476a7b8da012f0017c3d8830f644dac8fccd", null ], + [ "JIT_MATRIX_MAX_DIMCOUNT", "group__jitter.html#gaf715e26dfffd1f8de1c18449e2770cffa21a309e1b0975422a7a970b5e77c3582", null ], + [ "JIT_MATRIX_MAX_PLANECOUNT", "group__jitter.html#gaf715e26dfffd1f8de1c18449e2770cffa8c8fbaad491f616087f9bcaa5376a68c", null ], + [ "JIT_MOP_INPUT", "group__jitter.html#ga7859c0a3efa8b1c360f5c2376baf051ea8ac5687305920399d4282728ad24e79b", null ], + [ "JIT_MOP_OUTPUT", "group__jitter.html#ga7859c0a3efa8b1c360f5c2376baf051ea9a8bf1e9b500f753d2a8f6639099497d", null ], + [ "JIT_OB3D_AUTO_ONLY", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34ac5452087c4b7e7782b8e962bb850bf00", null ], + [ "JIT_OB3D_DOES_UI", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a8db9a004d2076dc83fc35c98a31e7a80", null ], + [ "JIT_OB3D_HAS_CAMERA", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a41d7709340811a798aa779771bce8d5d", null ], + [ "JIT_OB3D_HAS_LIGHTS", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a2788793646c4df74cc7c446237fe1a86", null ], + [ "JIT_OB3D_IS_RENDERER", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a6cfec34b47a5e85b977c2e64d5cb892f", null ], + [ "JIT_OB3D_IS_SLAB", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34aae297c81ac3001b33110c8879d3db5f1", null ], + [ "JIT_OB3D_NO_ANTIALIAS", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a86f1b09fafab7f8cf85eb05f9ea233ed", null ], + [ "JIT_OB3D_NO_BLEND", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a6f83c15c9a5d0ae5a641ade6846398fc", null ], + [ "JIT_OB3D_NO_COLOR", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a7f84484673e1241bd9bf6a788424e264", null ], + [ "JIT_OB3D_NO_DEPTH", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34aad5ce56d55f9acbf89c142ce71c8b005", null ], + [ "JIT_OB3D_NO_FOG", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34ad2ec8bc9be8405095e51aed5562e4351", null ], + [ "JIT_OB3D_NO_LIGHTING_MATERIAL", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a64a16642863ff9ee0f3be60a5a409747", null ], + [ "JIT_OB3D_NO_MATRIXOUTPUT", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a2a87c51ca41ac903ce7202be7330d943", null ], + [ "JIT_OB3D_NO_POLY_VARS", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34ac0ee9631f29aa6ff138ef8aa27401102", null ], + [ "JIT_OB3D_NO_ROTATION_SCALE", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a5794356b6e680fc42ec03985d1692467", null ], + [ "JIT_OB3D_NO_TEXTURE", "group__jitter.html#gaf92dfdfa93c2cfae5bfec82eef9a7b34a466aeb904a4940caa25ef2bd65d98d5a", null ], + [ "MAX_JIT_MOP_FLAGS_NONE", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5ae9efb4dddf40553b543d76ebb37fff2f", null ], + [ "MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5acb4d0215f9905a42bdbc6512016ada5b", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_ADAPT", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a3b0e65cc0885376f58fc6595131a46f7", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_ALL", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a572561b0ba325571a059b046a6f11de8", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_BANG", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5acef591e82400ae0cf2ba9780412bd40c", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_CLEAR", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a17a0aa7f89b8af4a58b29b9256ea9441", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_DIM", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a776cead3e31b3026d662ee787065b24f", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5abde797679e83103cd2ce6a0ed704e81c", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_NAME", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a0f5415398e881188cdf610b1c0e86780", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_NOTIFY", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a0348e056a60838dc0f8e920c9e1ebfc5", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5acfe7fcaaa3bb2e108682cb2ebbb3459c", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a60db62f077b2285c9d3410276f8f81bb", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a55cdfa602c831dc1e7930044fc9521f8", null ], + [ "MAX_JIT_MOP_FLAGS_OWN_TYPE", "group__jitter.html#ga46934674c91abadeffc8ae2f612bc7e5a674b6b3d1fa4e65188aa16730740f8ed", null ], [ "_jit_sym_adapt", "group__jitter.html#gafa7c11d3fbbc17c42c90c1b3babba40b", null ], [ "_jit_sym_add", "group__jitter.html#ga01f347b1ebd98b3ce3fc76470737a8b2", null ], [ "_jit_sym_anim", "group__jitter.html#ga7352190d532b71bcf05045f7c7017481", null ], diff --git a/html/group__jitter.png b/html/group__jitter.png index 3c60a16e..1f7ead3d 100644 Binary files a/html/group__jitter.png and b/html/group__jitter.png differ diff --git a/html/group__jmatrix.html b/html/group__jmatrix.html index ab31f5ac..98ec523a 100644 --- a/html/group__jmatrix.html +++ b/html/group__jmatrix.html @@ -99,8 +99,8 @@ diff --git a/html/group__jmatrix.png b/html/group__jmatrix.png index 4fadb3be..d754f3c0 100644 Binary files a/html/group__jmatrix.png and b/html/group__jmatrix.png differ diff --git a/html/group__jmonitor.html b/html/group__jmonitor.html index 1548fd7d..5888f73d 100644 --- a/html/group__jmonitor.html +++ b/html/group__jmonitor.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jmonitor.png b/html/group__jmonitor.png index 2bc8db30..ff0add34 100644 Binary files a/html/group__jmonitor.png and b/html/group__jmonitor.png differ diff --git a/html/group__jmouse.html b/html/group__jmouse.html index 7182c1d9..9c9de30e 100644 --- a/html/group__jmouse.html +++ b/html/group__jmouse.html @@ -96,8 +96,8 @@
    diff --git a/html/group__jmouse.png b/html/group__jmouse.png index d671baad..592a33d9 100644 Binary files a/html/group__jmouse.png and b/html/group__jmouse.png differ diff --git a/html/group__jpatcher.html b/html/group__jpatcher.html index 02cf6a4c..14b8a00a 100644 --- a/html/group__jpatcher.html +++ b/html/group__jpatcher.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jpatcher.png b/html/group__jpatcher.png index 50dcaba2..13ca924c 100644 Binary files a/html/group__jpatcher.png and b/html/group__jpatcher.png differ diff --git a/html/group__jpatcherview.html b/html/group__jpatcherview.html index debd44ff..3de34a46 100644 --- a/html/group__jpatcherview.html +++ b/html/group__jpatcherview.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jpatcherview.png b/html/group__jpatcherview.png index d9c20a31..024d560b 100644 Binary files a/html/group__jpatcherview.png and b/html/group__jpatcherview.png differ diff --git a/html/group__jpatchline.html b/html/group__jpatchline.html index d8413a0d..e69fb104 100644 --- a/html/group__jpatchline.html +++ b/html/group__jpatchline.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jpatchline.png b/html/group__jpatchline.png index 8835b7ca..188afd1d 100644 Binary files a/html/group__jpatchline.png and b/html/group__jpatchline.png differ diff --git a/html/group__jpattern.html b/html/group__jpattern.html index 9ab59682..8f377b2a 100644 --- a/html/group__jpattern.html +++ b/html/group__jpattern.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jpattern.png b/html/group__jpattern.png index 0a01803e..ca9769eb 100644 Binary files a/html/group__jpattern.png and b/html/group__jpattern.png differ diff --git a/html/group__jpopupmenu.html b/html/group__jpopupmenu.html index 30259228..bc49634c 100644 --- a/html/group__jpopupmenu.html +++ b/html/group__jpopupmenu.html @@ -98,8 +98,8 @@
    diff --git a/html/group__jpopupmenu.png b/html/group__jpopupmenu.png index 01cc74cc..efdbd6ee 100644 Binary files a/html/group__jpopupmenu.png and b/html/group__jpopupmenu.png differ diff --git a/html/group__jsurface.html b/html/group__jsurface.html index 82b51178..ded3e528 100644 --- a/html/group__jsurface.html +++ b/html/group__jsurface.html @@ -99,8 +99,8 @@
    @@ -122,7 +122,7 @@ - + @@ -418,7 +418,7 @@

    - + diff --git a/html/group__jsurface.png b/html/group__jsurface.png index 6dd97a37..eec48a35 100644 Binary files a/html/group__jsurface.png and b/html/group__jsurface.png differ diff --git a/html/group__jsvg.html b/html/group__jsvg.html index 050763b9..7f2de1f4 100644 --- a/html/group__jsvg.html +++ b/html/group__jsvg.html @@ -95,8 +95,8 @@
    t_jsurfacejgraphics_image_surface_create_from_file (const char *filename, short path)
     Create an image surface, filling it with the contents of a file. More...
     
    t_jsurfacejgraphics_image_surface_create_for_data (unsigned char *data, t_jgraphics_format format, int width, int height, int stride, method freefun, void *freearg)
    t_jsurfacejgraphics_image_surface_create_for_data (unsigned char *data, t_jgraphics_format format, int width, int height, int stride, method freefun, void *freearg)
     Create an image surface from given pixel data. More...
     
    t_jsurfacejgraphics_image_surface_create_from_filedata (const void *data, unsigned long datalen)
    method method  freefun,
    diff --git a/html/group__jsvg.png b/html/group__jsvg.png index 4f036afc..8711c786 100644 Binary files a/html/group__jsvg.png and b/html/group__jsvg.png differ diff --git a/html/group__jwind.html b/html/group__jwind.html index d3700234..ceff5a1e 100644 --- a/html/group__jwind.html +++ b/html/group__jwind.html @@ -95,8 +95,8 @@
    diff --git a/html/group__jwind.png b/html/group__jwind.png index e03536f5..3b97997f 100644 Binary files a/html/group__jwind.png and b/html/group__jwind.png differ diff --git a/html/group__linklist.html b/html/group__linklist.html index e7ac4220..b153c3c9 100644 --- a/html/group__linklist.html +++ b/html/group__linklist.html @@ -99,8 +99,8 @@
    @@ -196,13 +196,13 @@ - + - + - + @@ -263,7 +263,7 @@
    // delete
    }
    -
    long(* t_cmpfn)(void *, void *)
    Comparison function pointer type.
    Definition: ext_linklist.h:72
    +
    long(* t_cmpfn)(void *, void *)
    Comparison function pointer type.
    Definition: ext_linklist.h:74
    @ OBJ_FLAG_DATA
    don't free data or call method
    Definition: ext_obex.h:65
    @@ -283,8 +283,8 @@
    return strcmp(sa->s_name, sb->s_name) > 0;
    }
    -
    The symbol.
    Definition: ext_mess.h:77
    -
    char * s_name
    name: a c-string
    Definition: ext_mess.h:78
    +
    The symbol.
    Definition: ext_mess.h:102
    +
    char * s_name
    name: a c-string
    Definition: ext_mess.h:103

    The search function is passed the final argument to linklist_findfirst() and, in this case, just returns the symbol that matches, which is just testing for pointer equivalence since all Max symbols are unique. You could do more sophisticated searching if you store more complex data in a linklist.

    long mysearchfun(t_symbol *elem, t_symbol *match)
    {
    @@ -763,7 +763,7 @@

    - + @@ -784,7 +784,7 @@

    Parameters

    void linklist_sort (t_linklist *x, long cmpfn(void *, void *))
     Sort the linked list. More...
     
    void linklist_funall (t_linklist *x, method fun, void *arg)
    void linklist_funall (t_linklist *x, method fun, void *arg)
     Call the specified function for every item in the linklist. More...
     
    t_atom_long linklist_funall_break (t_linklist *x, method fun, void *arg)
    t_atom_long linklist_funall_break (t_linklist *x, method fun, void *arg)
     Call the specified function for every item in the linklist. More...
     
    void * linklist_funindex (t_linklist *x, long i, method fun, void *arg)
    void * linklist_funindex (t_linklist *x, long i, method fun, void *arg)
     Call the specified function for an item specified by index. More...
     
    void * linklist_substitute (t_linklist *x, void *p, void *newp)
    method method  fun,
    - +
    xThe linklist instance.
    funThe function to call, specified as function pointer cast to a Max method.
    funThe function to call, specified as function pointer cast to a Max method.
    argAn argument that you would like to pass to the function being called.
    @@ -794,7 +794,7 @@

    // do something with myObj and myArg here
    // myObj is the item in the linklist
    }
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    @@ -814,7 +814,7 @@

    method method  fun,
    - +
    xThe linklist instance.
    funThe function to call, specified as function pointer cast to a Max method.
    funThe function to call, specified as function pointer cast to a Max method.
    argAn argument that you would like to pass to the function being called.
    @@ -879,7 +879,7 @@

    - method  + method  fun, @@ -901,7 +901,7 @@

    xThe linklist instance. iThe index of the item to which to send the message. - funThe function to call, specified as function pointer cast to a Max method. + funThe function to call, specified as function pointer cast to a Max method. argAn argument that you would like to pass to the function being called. diff --git a/html/group__linklist.png b/html/group__linklist.png index fc370f62..2249b6f1 100644 Binary files a/html/group__linklist.png and b/html/group__linklist.png differ diff --git a/html/group__linklistmod.html b/html/group__linklistmod.html index 7c78832d..d3f7ef60 100644 --- a/html/group__linklistmod.html +++ b/html/group__linklistmod.html @@ -95,7 +95,7 @@ @@ -215,8 +215,8 @@

    - + @@ -813,8 +813,8 @@

    - + @@ -1119,8 +1119,8 @@

    Returns
    t_jit_err error code
    -

    References _jit_sym_atom, _jit_sym_char, _jit_sym_getinput, _jit_sym_getoutput, _jit_sym_inputcount, _jit_sym_ioname, _jit_sym_jit_attr_offset, _jit_sym_jit_attr_offset_array, _jit_sym_jit_mop, _jit_sym_long, _jit_sym_outputcount, _jit_sym_symbol, A_CANT, A_GIMME, addbang(), addmess(), JIT_ATTR_GET_DEFER_LOW, jit_attr_getlong(), jit_attr_getsym(), JIT_ATTR_SET_USURP_LOW, jit_class_adornment_get(), JIT_MATRIX_MAX_DIMCOUNT, max_addmethod_defer_low(), max_addmethod_usurp_low(), max_jit_classex_addattr(), max_jit_mop_bang(), max_jit_mop_clear(), MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE, MAX_JIT_MOP_FLAGS_OWN_ADAPT, MAX_JIT_MOP_FLAGS_OWN_BANG, MAX_JIT_MOP_FLAGS_OWN_CLEAR, MAX_JIT_MOP_FLAGS_OWN_DIM, MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX, MAX_JIT_MOP_FLAGS_OWN_NAME, MAX_JIT_MOP_FLAGS_OWN_NOTIFY, MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX, MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE, MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT, MAX_JIT_MOP_FLAGS_OWN_TYPE, max_jit_mop_jit_matrix(), max_jit_mop_notify(), max_jit_mop_outputmatrix(), method, and t_symbol::s_name.

    +

    References _jit_sym_atom, _jit_sym_char, _jit_sym_getinput, _jit_sym_getoutput, _jit_sym_inputcount, _jit_sym_ioname, _jit_sym_jit_attr_offset, _jit_sym_jit_attr_offset_array, _jit_sym_jit_mop, _jit_sym_long, _jit_sym_outputcount, _jit_sym_symbol, A_CANT, A_GIMME, addbang(), addmess(), JIT_ATTR_GET_DEFER_LOW, jit_attr_getlong(), jit_attr_getsym(), JIT_ATTR_SET_USURP_LOW, jit_class_adornment_get(), JIT_MATRIX_MAX_DIMCOUNT, max_addmethod_defer_low(), max_addmethod_usurp_low(), max_jit_classex_addattr(), max_jit_mop_bang(), max_jit_mop_clear(), MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE, MAX_JIT_MOP_FLAGS_OWN_ADAPT, MAX_JIT_MOP_FLAGS_OWN_BANG, MAX_JIT_MOP_FLAGS_OWN_CLEAR, MAX_JIT_MOP_FLAGS_OWN_DIM, MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX, MAX_JIT_MOP_FLAGS_OWN_NAME, MAX_JIT_MOP_FLAGS_OWN_NOTIFY, MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX, MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE, MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT, MAX_JIT_MOP_FLAGS_OWN_TYPE, max_jit_mop_jit_matrix(), max_jit_mop_notify(), max_jit_mop_outputmatrix(), method, and t_symbol::s_name.

    + Here is the call graph for this function:

    - - - - - - - - + + + + + + + + @@ -513,8 +513,8 @@

    Returns
    t_jit_err error code
    -

    References _jit_sym_getinput, _jit_sym_getoutput, _jit_sym_jit_mop, JIT_MOP_INPUT, JIT_MOP_OUTPUT, and max_jit_obex_adornment_get().

    +

    References _jit_sym_getinput, _jit_sym_getoutput, _jit_sym_jit_mop, JIT_MOP_INPUT, JIT_MOP_OUTPUT, and max_jit_obex_adornment_get().

    + Here is the call graph for this function:
    @@ -667,11 +667,11 @@

    Returns
    t_jit_err error code
    -

    References _jit_sym_adapt, _jit_sym_class_jit_matrix, _jit_sym_frommatrix, _jit_sym_getinput, _jit_sym_getinputlist, _jit_sym_getioproc, _jit_sym_getmatrix, _jit_sym_getoutput, _jit_sym_getoutputlist, _jit_sym_jit_matrix, _jit_sym_jit_mop, _jit_sym_matrix, _jit_sym_matrix_calc, _jit_sym_matrixname, _jit_sym_nothing, _jit_sym_outputmode, jit_atom_getsym(), jit_attr_getlong(), jit_attr_setsym(), jit_error_code(), jit_object_findregistered(), max_jit_mop_adapt_matrix_all(), max_jit_mop_outputmatrix(), max_jit_obex_adornment_get(), max_jit_obex_inletnumber_get(), max_jit_obex_jitob_get(), method, and outlet_anything().

    +

    References _jit_sym_adapt, _jit_sym_class_jit_matrix, _jit_sym_frommatrix, _jit_sym_getinput, _jit_sym_getinputlist, _jit_sym_getioproc, _jit_sym_getmatrix, _jit_sym_getoutput, _jit_sym_getoutputlist, _jit_sym_jit_matrix, _jit_sym_jit_mop, _jit_sym_matrix, _jit_sym_matrix_calc, _jit_sym_matrixname, _jit_sym_nothing, _jit_sym_outputmode, jit_atom_getsym(), jit_attr_getlong(), jit_attr_setsym(), jit_error_code(), jit_object_findregistered(), max_jit_mop_adapt_matrix_all(), max_jit_mop_outputmatrix(), max_jit_obex_adornment_get(), max_jit_obex_inletnumber_get(), max_jit_obex_jitob_get(), method, and outlet_anything().

    Referenced by max_jit_classex_mop_wrap().

    t_jit_err max_jit_mop_setup(void *x)
    Sets up necessary resources for MOP Max wrapper object.
    Definition: max.jit.mop.c:793
    t_jit_err max_jit_mop_matrix_args(void *x, long argc, t_atom *argv)
    Process matrix arguments for a MOP Max wrapper object.
    Definition: max.jit.mop.c:1092
    t_jit_err max_jit_mop_inputs(void *x)
    Creates input resources for a MOP Max wrapper object.
    Definition: max.jit.mop.c:860
    -
    void max_jit_obex_dumpout_set(void *x, void *outlet)
    Sets the Max wrapper object's dump outlet's outlet pointer.
    Definition: jit.max.c:2801
    -
    void max_jit_obex_jitob_set(void *x, void *jitob)
    Sets the wrapped Jitter object for a Max wrapper object.
    Definition: jit.max.c:2606
    +
    void max_jit_obex_dumpout_set(void *x, void *outlet)
    Sets the Max wrapper object's dump outlet's outlet pointer.
    Definition: jit.max.c:2826
    +
    void max_jit_obex_jitob_set(void *x, void *jitob)
    Sets the wrapped Jitter object for a Max wrapper object.
    Definition: jit.max.c:2631

    References max_jit_mop_inputs(), max_jit_mop_matrix_args(), max_jit_mop_outputs(), max_jit_mop_setup(), max_jit_obex_dumpout_set(), max_jit_obex_jitob_set(), and outlet_new().

    void max_addmethod_defer

    - + @@ -222,7 +222,7 @@

    References A_CANT, A_GIMME, addmess(), and method.

    +

    References A_CANT, A_GIMME, addmess(), and method.

    Referenced by max_jit_classex_addattr().

    @@ -232,8 +232,8 @@

    void max_addmethod_defer_low

    - + @@ -274,7 +274,7 @@

    References A_CANT, A_GIMME, addmess(), and method.

    +

    References A_CANT, A_GIMME, addmess(), and method.

    Referenced by max_jit_classex_addattr(), max_jit_classex_mop_wrap(), and max_jit_classex_standard_wrap().

    @@ -284,8 +284,8 @@

    void max_addmethod_usurp

    - + @@ -327,7 +327,7 @@

    References A_CANT, A_GIMME, addmess(), and method.

    +

    References A_CANT, A_GIMME, addmess(), and method.

    Referenced by max_jit_classex_addattr().

    @@ -337,8 +337,8 @@

    void max_addmethod_usurp_low

    - + @@ -379,7 +379,7 @@

    References A_CANT, A_GIMME, addmess(), and method.

    +

    References A_CANT, A_GIMME, addmess(), and method.

    Referenced by max_jit_classex_addattr(), and max_jit_classex_mop_wrap().

    @@ -389,8 +389,8 @@

    References freebytes(), gensym(), jit_error_code(), max_jit_attr_get(), method, t_symbol::s_name, and zgetfn().

    +

    References freebytes(), gensym(), jit_error_code(), max_jit_attr_get(), method, t_symbol::s_name, and zgetfn().

    + Here is the call graph for this function:
    @@ -638,14 +638,14 @@

    Returns
    t_jit_err error code
    -

    References _jit_sym_get, _jit_sym_getmethod, _jit_sym_getname, _jit_sym_set, A_DEFER, A_DEFER_LOW, A_GIMME, A_USURP, A_USURP_LOW, addmess(), jit_linklist_append(), jit_linklist_new(), max_addmethod_defer(), max_addmethod_defer_low(), max_addmethod_usurp(), max_addmethod_usurp_low(), max_jit_obex_attr_set(), method, and t_symbol::s_name.

    +

    References _jit_sym_get, _jit_sym_getmethod, _jit_sym_getname, _jit_sym_set, A_DEFER, A_DEFER_LOW, A_GIMME, A_USURP, A_USURP_LOW, addmess(), jit_linklist_append(), jit_linklist_new(), max_addmethod_defer(), max_addmethod_defer_low(), max_addmethod_usurp(), max_addmethod_usurp_low(), max_jit_obex_attr_set(), method, and t_symbol::s_name.

    Referenced by max_jit_classex_mop_wrap().

    Returns
    pointer to t_max_jit_classex data (opaque)
    -

    References A_CANT, addmess(), jit_getbytes(), and method.

    +

    References A_CANT, addmess(), jit_getbytes(), and method.

    + Here is the call graph for this function:
    @@ -817,10 +817,10 @@

    References A_CANT, addmess(), jit_object_exportattrs(), jit_object_exportsummary(), jit_object_importattrs(), max_addmethod_defer_low(), max_jit_obex_dumpout(), and method.

    +

    References A_CANT, addmess(), jit_object_exportattrs(), jit_object_exportsummary(), jit_object_importattrs(), max_addmethod_defer_low(), max_jit_obex_dumpout(), and method.

    + Here is the call graph for this function:

    Returns
    t_jit_error error code
    -

    References _jit_sym_get, _jit_sym_getmethod, jit_attr_symcompare(), jit_linklist_findfirst(), and method.

    +

    References _jit_sym_get, _jit_sym_getmethod, jit_attr_symcompare(), jit_linklist_findfirst(), and method.

    + Here is the call graph for this function:
    @@ -1022,11 +1022,11 @@

    Returns
    t_jit_error error code
    -

    References _jit_sym_getmethod, _jit_sym_set, jit_attr_symcompare(), jit_linklist_findfirst(), method, and object_notify().

    +

    References _jit_sym_getmethod, _jit_sym_set, jit_attr_symcompare(), jit_linklist_findfirst(), method, and object_notify().

    Referenced by max_jit_classex_addattr().

    @@ -1092,12 +1092,12 @@

    - + @@ -390,8 +390,8 @@

    void max_jit_classex_standard_wrap (void *mclass, void *jclass, long flags)
     Adds standard Jitter methods, as well as public methods and attributes of the specified Jitter class. More...
     
    void max_addmethod_defer (method m, char *s)
    void max_addmethod_defer (method m, char *s)
     Adds method to Max class that calls defer rather than the method directly. More...
     
    void max_addmethod_defer_low (method m, char *s)
    void max_addmethod_defer_low (method m, char *s)
     Adds method to Max class that calls defer_low rather than the method directly. More...
     
    void max_addmethod_usurp (method m, char *s)
    void max_addmethod_usurp (method m, char *s)
     Adds method to Max class that uses the usurp mechanism to execute method at low priority without backlog. More...
     
    void max_addmethod_usurp_low (method m, char *s)
    void max_addmethod_usurp_low (method m, char *s)
     Adds method to Max class that uses the usurp mechanism to execute method at low priority without backlog. More...
     
    void * max_jit_classex_setup (long oboffset)
    (method method  m,
    (method method  m,
    (method method  m,
    (method method  m,

    Remarks
    error_subscribe() enables your object to receive a message (error), followed by the list of atoms in the error message posted to the Max window.
    -

    Prior to calling error_subscribe(), you should bind the error message to an internal error handling routine:

    addmess((method)myobject_error, "error", A_GIMME, 0);
    -
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:258
    +

    Prior to calling error_subscribe(), you should bind the error message to an internal error handling routine:

    addmess((method)myobject_error, "error", A_GIMME, 0);
    +
    @ A_GIMME
    request that args be passed as an array, the routine will check the types itself.
    Definition: ext_mess.h:286
    void addmess(method f, char *s, short type,...)
    Use addmess() to bind a function to a message other than the standard ones covered by addbang(),...
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25

    Your error handling routine should be declared as follows:

    void myobject_error(t_myobject *x, t_symbol *s, short argc, t_atom *argv);
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The symbol.
    Definition: ext_mess.h:102
    @@ -920,8 +920,8 @@

    }
    void globalsymbol_dereference(t_object *x, C74_CONST char *name, C74_CONST char *classname)
    Stop referencing an object that is bound to a t_symbol, previously referenced using globalsymbol_refe...
    BEGIN_USING_C_LINKAGE void * globalsymbol_reference(t_object *x, C74_CONST char *name, C74_CONST char *classname)
    Get a reference to an object that is bound to a t_symbol.
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    -
    char * s_name
    name: a c-string
    Definition: ext_mess.h:78
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    +
    char * s_name
    name: a c-string
    Definition: ext_mess.h:103
    @@ -1080,7 +1080,7 @@

    void quittask_install

    - + @@ -1118,7 +1118,7 @@

    void quittask_remove

    - + diff --git a/html/group__misc.png b/html/group__misc.png index 694ee4e3..57818666 100644 Binary files a/html/group__misc.png and b/html/group__misc.png differ diff --git a/html/group__mopmod.html b/html/group__mopmod.html index 708495d4..b6ec8239 100644 --- a/html/group__mopmod.html +++ b/html/group__mopmod.html @@ -96,7 +96,7 @@ @@ -136,10 +136,10 @@ - + - + @@ -227,10 +227,10 @@

    void error_unsubscribe (t_object *x)
     Remove an object as an error message recipient. More...
     
    void quittask_install (method m, void *a)
    void quittask_install (method m, void *a)
     Register a function that will be called when Max exits. More...
     
    void quittask_remove (method m)
    void quittask_remove (method m)
     Unregister a function previously registered with quittask_install(). More...
     
    short maxversion (void)
    (method method  m,
    (method method  m)
    void * jit_mop_io_getmatrix (t_jit_mop_io *x)
     Retrieves the internal matrix reference. More...
     
    t_jit_err jit_mop_io_ioproc (t_jit_mop_io *x, method ioproc)
    t_jit_err jit_mop_io_ioproc (t_jit_mop_io *x, method ioproc)
     Sets the I/O procedure used when handling incoming matrices. More...
     
    method jit_mop_io_getioproc (t_jit_mop_io *x)
    method jit_mop_io_getioproc (t_jit_mop_io *x)
     Retrieves the I/O procedure used when handling incoming matrices. More...
     
    t_jit_objectjit_mop_new (long inputcount, long outputcount)
    - + @@ -536,7 +536,7 @@

    - + @@ -623,7 +623,7 @@

    Returns
    t_jit_mop_io object pointer
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_new.
    -

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_long, t_jit_mop_io::dimlink, gensym(), t_jit_mop_io::ioname, t_jit_mop_io::ioproc, JIT_MATRIX_MAX_DIMCOUNT, JIT_MATRIX_MAX_PLANECOUNT, t_jit_mop_io::matrix, t_jit_mop_io::matrixname, t_jit_mop_io::maxdim, t_jit_mop_io::maxdimcount, t_jit_mop_io::maxplanecount, t_jit_mop_io::mindim, t_jit_mop_io::mindimcount, t_jit_mop_io::minplanecount, t_jit_mop_io::planelink, t_jit_mop_io::special, t_jit_mop_io::typelink, t_jit_mop_io::types, and t_jit_mop_io::typescount.

    +

    References _jit_sym_char, _jit_sym_float32, _jit_sym_float64, _jit_sym_long, t_jit_mop_io::dimlink, gensym(), t_jit_mop_io::ioname, t_jit_mop_io::ioproc, JIT_MATRIX_MAX_DIMCOUNT, JIT_MATRIX_MAX_PLANECOUNT, t_jit_mop_io::matrix, t_jit_mop_io::matrixname, t_jit_mop_io::maxdim, t_jit_mop_io::maxdimcount, t_jit_mop_io::maxplanecount, t_jit_mop_io::mindim, t_jit_mop_io::mindimcount, t_jit_mop_io::minplanecount, t_jit_mop_io::planelink, t_jit_mop_io::special, t_jit_mop_io::typelink, t_jit_mop_io::types, and t_jit_mop_io::typescount.

    + Here is the call graph for this function:
    @@ -631,8 +631,8 @@

    Returns
    t_jit_err error code
    Warning
    This function is not exported, but is provided for reference when calling via jit_object_method on an intance of t_jit_mop_io.
    -

    References t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, JIT_MATRIX_MAX_DIMCOUNT, MAX, t_jit_mop_io::maxdim, t_jit_mop_io::maxdimcount, t_jit_mop_io::mindim, and t_jit_mop_io::mindimcount.

    +

    References t_jit_matrix_info::dim, t_jit_matrix_info::dimcount, JIT_MATRIX_MAX_DIMCOUNT, MAX, t_jit_mop_io::maxdim, t_jit_mop_io::maxdimcount, t_jit_mop_io::mindim, and t_jit_mop_io::mindimcount.

    @@ -793,10 +793,10 @@

    JIT_EX_DATA t_symbol * _jit_sym_getmatrix
    cached t_symbol
    Definition: jit.symbols.h:97
    JIT_EX_DATA t_symbol * _jit_sym_frommatrix
    cached t_symbol
    Definition: jit.symbols.h:44
    JIT_EX_DATA t_symbol * _jit_sym_restrict_planecount
    cached t_symbol
    Definition: jit.symbols.h:102
    -
    Matrix information struct.
    Definition: jit.common.h:107
    +
    Matrix information struct.
    Definition: jit.common.h:116

    References _jit_sym_frommatrix, _jit_sym_getinfo, _jit_sym_getmatrix, _jit_sym_restrict_dim, _jit_sym_restrict_planecount, _jit_sym_restrict_type, and _jit_sym_setinfo.

    @@ -1038,10 +1038,10 @@

    method jit_mop_io_getioproc method jit_mop_io_getioproc ( t_jit_mop_io x)method method  ioproc 

    Enumerations

    enum  { SYS_MAXBLKSIZE +
    enum  { SYS_MAXBLKSIZE }
     MSP System Properties. More...
     
     MSP System Properties. More...
     

    Enumeration Type Documentation

    - -

    ◆ anonymous enum

    + +

    ◆ anonymous enum

    @@ -380,7 +380,7 @@

    -

    Functions

    Enumerator
    SYS_MAXBLKSIZE 

    a good number for a maximum signal vector size

    +
    Enumerator
    SYS_MAXBLKSIZE 

    a good number for a maximum signal vector size

    diff --git a/html/group__msp.js b/html/group__msp.js index 81b07ed6..b0257349 100644 --- a/html/group__msp.js +++ b/html/group__msp.js @@ -38,7 +38,7 @@ var group__msp = [ "t_sample", "group__msp.html#ga5e66f28feb11aab496819aff810b0e31", null ], [ "t_vptr", "group__msp.html#ga38df0c7504dc66f6dde187ac80a4db4a", null ], [ "vptr", "group__msp.html#ga6ff70012dce98a61c680a920f660c210", [ - [ "SYS_MAXBLKSIZE", "group__msp.html#gga0ed680fdb405e7195d9f14032851eebba29738f7ba126b5468181b4c017e573d0", null ] + [ "SYS_MAXBLKSIZE", "group__msp.html#gga157d5577a5b2f5986037d0d09c7dc77da29738f7ba126b5468181b4c017e573d0", null ] ] ], [ "class_dspinit", "group__msp.html#ga7427ae73a2ad71a1b4ef1bee2fd432fc", null ], [ "class_dspinitjbox", "group__msp.html#gab9219b764ce65abb21bec0ea54538c14", null ], diff --git a/html/group__msp.png b/html/group__msp.png index eac14850..e008b677 100644 Binary files a/html/group__msp.png and b/html/group__msp.png differ diff --git a/html/group__mutex.html b/html/group__mutex.html index 0fb939e5..c4af341e 100644 --- a/html/group__mutex.html +++ b/html/group__mutex.html @@ -95,8 +95,8 @@ diff --git a/html/group__mutex.png b/html/group__mutex.png index 02e460ed..80fce547 100644 Binary files a/html/group__mutex.png and b/html/group__mutex.png differ diff --git a/html/group__obj.html b/html/group__obj.html index beb54ec2..b01ef849 100644 --- a/html/group__obj.html +++ b/html/group__obj.html @@ -85,6 +85,7 @@
    Objects
    @@ -105,21 +106,23 @@
    - - - - - -

    Macros

    -#define MAGIC
     Magic number used to determine if memory pointed to by a t_object* is valid.
     
    #define NOGOOD(x)
     Returns true if a pointer is not a valid object.
     
    #define MSG_MAXARG
     Maximum number of arguments that can be passed as a typed-list rather than using A_GIMME. More...
     
    #define object_method_direct(rt, sig, x, s, ...)
     do a strongly typed direct call to a method of an object More...
     
    + + + + + + + +

    +Enumerations

    enum  
     Magic number used to determine if memory pointed to by a t_object* is valid.
     
    enum  
     Maximum number of arguments that can be passed as a typed-list rather than using A_GIMME. More...
     
    @@ -146,8 +149,8 @@ - - + + @@ -299,23 +302,6 @@
    http://www.cycling74.com/twiki/bin/view/ProductDocumentation/JitterSdkRegNotify

    Macro Definition Documentation

    - -

    ◆ MSG_MAXARG

    - -
    -
    -

    Functions

    long object_classname_compare (void *x, t_symbol *name)
    t_max_err object_method_typedfun (void *x, t_messlist *mp, t_symbol *s, long ac, t_atom *av, t_atom *rv)
     Currently undocumented. More...
     
    method object_getmethod (void *x, t_symbol *s)
     Retrieves an object's method for a particular message selector. More...
    method object_getmethod (void *x, t_symbol *s)
     Retrieves an object's method for a particular message selector. More...
     
    t_symbolobject_classname (void *x)
     Retrieves an object instance's class name. More...
    - - - -
    #define MSG_MAXARG
    -
    - -

    Maximum number of arguments that can be passed as a typed-list rather than using A_GIMME.

    -

    It is generally recommended to use A_GIMME.

    - -
    -

    ◆ object_method_direct

    @@ -379,9 +365,27 @@

    #define object_method_direct(rt, sig, x, s,...)
    do a strongly typed direct call to a method of an object
    Definition: ext_obex.h:509
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    A color composed of red, green, blue, and alpha components.
    Definition: jpatcher_api.h:92
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191

    + + +

    Enumeration Type Documentation

    + +

    ◆ anonymous enum

    + +
    +
    + + + + +
    anonymous enum
    +
    + +

    Maximum number of arguments that can be passed as a typed-list rather than using A_GIMME.

    +

    It is generally recommended to use A_GIMME.

    +

    Function Documentation

    @@ -1247,7 +1251,7 @@

    - + @@ -1266,7 +1270,7 @@

    -

    Retrieves an object's method for a particular message selector.

    +

    Retrieves an object's method for a particular message selector.

    Parameters

    method object_getmethod method object_getmethod ( void *  x,
    @@ -1274,7 +1278,7 @@

    Returns
    This function returns the method if successful, or method_false() if unsuccessful.
    +
    Returns
    This function returns the method if successful, or method_false() if unsuccessful.

    Referenced by jit_object_getmethod().

    @@ -1325,15 +1329,15 @@

    Returns
    This function returns the error code MAX_ERR_NONE if successful, or one of the other error codes defined in e_max_errorcodes if unsuccessful.
    Remarks
    Calling the object_getvalueof() function allocates memory for any data it returns. It is the developer's responsibility to free it, using the freebytes() function.
    -Developers wishing to design objects which will support this function being called on them must define and implement a special method, getvalueof, like so:
    class_addmethod(c, (method)myobject_getvalueof, "getvalueof", A_CANT, 0);
    -
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:259
    +Developers wishing to design objects which will support this function being called on them must define and implement a special method, getvalueof, like so:
    class_addmethod(c, (method)myobject_getvalueof, "getvalueof", A_CANT, 0);
    +
    @ A_CANT
    cannot typecheck args
    Definition: ext_mess.h:287
    t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name,...)
    Adds a method to a previously defined object class.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    The getvalueof method should be prototyped as:
    t_max_err myobject_getvalueof(t_myobject *x, long *ac, t_atom **av);
    t_atom_long t_max_err
    an integer value suitable to be returned as an error code
    Definition: max_types.h:78
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    And implemented, generally, as:
    t_max_err myobj_getvalueof(t_myobj *x, long *ac, t_atom **av)
    @@ -2479,11 +2483,11 @@

    Returns
    This function returns the error code MAX_ERR_NONE if successful, or one of the other error codes defined in e_max_errorcodes if unsuccessful.

    -
    Remarks
    In order for client objects to receive notifications, they must define and implement a special method, notify, like so:
    class_addmethod(c, (method)myobject_notify, "notify", A_CANT, 0);
    +
    Remarks
    In order for client objects to receive notifications, they must define and implement a special method, notify, like so:
    class_addmethod(c, (method)myobject_notify, "notify", A_CANT, 0);
    The notify method should be prototyped as:
    void myobject_notify(t_myobject *x, t_symbol *s, t_symbol *msg, void *sender, void *data);
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102
    where x is the pointer to the receiving object, s is the name of the sending (registered) object in its namespace, msg is the sent message, sender is the pointer to the sending object, and data is an optional argument sent with the message. This value corresponds to the data argument in the object_notify() method.

    Referenced by jit_object_notify(), max_jit_attr_set(), and max_jit_obex_attr_set().

    @@ -2868,7 +2872,7 @@

    Returns
    This function returns the error code MAX_ERR_NONE if successful, or one of the other error codes defined in e_max_errorcodes if unsuccessful.

    -
    Remarks
    Developers wishing to design objects which will support this function being called on them must define and implement a special method, setvalueof, like so:
    class_addmethod(c, (method)myobject_setvalueof, "setvalueof", A_CANT, 0);
    +
    Remarks
    Developers wishing to design objects which will support this function being called on them must define and implement a special method, setvalueof, like so:
    class_addmethod(c, (method)myobject_setvalueof, "setvalueof", A_CANT, 0);
    The setvalueof method should be prototyped as:
    t_max_err myobject_setvalueof(t_myobject *x, long *ac, t_atom **av);
    diff --git a/html/group__obj.js b/html/group__obj.js index 45794272..c184207c 100644 --- a/html/group__obj.js +++ b/html/group__obj.js @@ -15,8 +15,6 @@ var group__obj = [ "o_messlist", "structt__object.html#a79f4251061edbe1b55db6fb8b572f2e0", null ], [ "o_outlet", "structt__object.html#a1ed8a7245487cfa708f24018519d1b87", null ] ] ], - [ "MAGIC", "group__obj.html#ga94630370ae389fb1189282fa0742f310", null ], - [ "MSG_MAXARG", "group__obj.html#gad098f6e3ad3ab917b2bf59c402c4cf3f", null ], [ "NOGOOD", "group__obj.html#gabf8c1d20a4f4e731d185c02820c91593", null ], [ "object_method_direct", "group__obj.html#ga059445066cc5e1bb358db166e79b8d47", null ], [ "classname_openhelp", "group__obj.html#ga5de96f9ed649a42b2133d21c38e3476b", null ], diff --git a/html/group__objectmod.html b/html/group__objectmod.html index 064bfb2b..b3512e05 100644 --- a/html/group__objectmod.html +++ b/html/group__objectmod.html @@ -96,7 +96,7 @@
    - +

    xThe object whose method is being queried
    @@ -117,7 +117,7 @@ - + @@ -217,8 +217,8 @@

    - + @@ -456,8 +456,8 @@

    void * jit_object_method_typed (void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv)
     Calls a typed object method specified by method name. More...
     
    method jit_object_getmethod (void *x, t_symbol *s)
    method jit_object_getmethod (void *x, t_symbol *s)
     Retrieves an object method specified by method name. More...
     
    long jit_object_attr_usercanset (void *x, t_symbol *s)
    - + @@ -874,8 +874,8 @@

    - + @@ -1387,8 +1387,8 @@

    method jit_object_getmethod method jit_object_getmethod ( void *  x,
    void jit_parallel_ndim_calc (t_jit_parallel_ndim *p)
     Tasks N-dimensional matrix calcuations to multiple threads if appropriate. More...
     
    void jit_parallel_ndim_simplecalc1 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, long flags1)
    void jit_parallel_ndim_simplecalc1 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, long flags1)
     Tasks one input/output N-dimensional matrix calcuations to multiple threads if appropriate. More...
     
    void jit_parallel_ndim_simplecalc2 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2)
    void jit_parallel_ndim_simplecalc2 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2)
     Tasks two input/output N-dimensional matrix calcuations to multiple threads if appropriate. More...
     
    void jit_parallel_ndim_simplecalc3 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, long flags1, long flags2, long flags3)
    void jit_parallel_ndim_simplecalc3 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, long flags1, long flags2, long flags3)
     Tasks three input/output N-dimensional matrix calcuations to multiple threads if appropriate. More...
     
    void jit_parallel_ndim_simplecalc4 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, t_jit_matrix_info *minfo4, char *bp4, long flags1, long flags2, long flags3, long flags4)
    void jit_parallel_ndim_simplecalc4 (method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, t_jit_matrix_info *minfo4, char *bp4, long flags1, long flags2, long flags3, long flags4)
     Tasks four input/output N-dimensional matrix calcuations to multiple threads if appropriate. More...
     

    References method.

    +

    References method.

    Referenced by jit_parallel_ndim_simplecalc1(), jit_parallel_ndim_simplecalc2(), jit_parallel_ndim_simplecalc3(), and jit_parallel_ndim_simplecalc4().

    @@ -164,7 +164,7 @@

    void jit_parallel_ndim_simplecalc1 ( - method  + method  fn, @@ -241,8 +241,8 @@

    void jit_parallel_ndim_simplecalc2 ( - method  + method  fn, @@ -355,8 +355,8 @@

    void jit_parallel_ndim_simplecalc3 ( - method  + method  fn, @@ -490,8 +490,8 @@

    void jit_parallel_ndim_simplecalc4 ( - method  + method  fn, @@ -646,8 +646,8 @@

    diff --git a/html/group__patcher.js b/html/group__patcher.js index 25686882..efe965ad 100644 --- a/html/group__patcher.js +++ b/html/group__patcher.js @@ -6,9 +6,9 @@ var group__patcher = [ "jpatcherview", "group__jpatcherview.html", "group__jpatcherview" ], [ "t_jbox", "structt__jbox.html", null ], [ "t_box", "group__patcher.html#ga4ae1309e71747dc0dc5c2baba5e47bc9", [ - [ "PI_DEEP", "group__patcher.html#ggadc29c2ff13d900c2f185ee95427fb06ca615ccc19640c4714e619315b94765e48", null ], - [ "PI_REQUIREFIRSTIN", "group__patcher.html#ggadc29c2ff13d900c2f185ee95427fb06ca4c42ad2b13496b1d6664fed514724ffa", null ], - [ "PI_WANTBOX", "group__patcher.html#ggadc29c2ff13d900c2f185ee95427fb06ca128de369dd62c2625aff042d820456eb", null ] + [ "PI_DEEP", "group__patcher.html#gga0411cd49bb5b71852cecd93bcbf0ca2da615ccc19640c4714e619315b94765e48", null ], + [ "PI_REQUIREFIRSTIN", "group__patcher.html#gga0411cd49bb5b71852cecd93bcbf0ca2da4c42ad2b13496b1d6664fed514724ffa", null ], + [ "PI_WANTBOX", "group__patcher.html#gga0411cd49bb5b71852cecd93bcbf0ca2da128de369dd62c2625aff042d820456eb", null ] ] ], [ "t_patcher", "group__patcher.html#ga1c34fe7546d5c8a9a00e8fa17f85e66e", null ] ]; \ No newline at end of file diff --git a/html/group__patcher.png b/html/group__patcher.png index 45d04c43..382e47b2 100644 Binary files a/html/group__patcher.png and b/html/group__patcher.png differ diff --git a/html/group__pfft.html b/html/group__pfft.html index 23f06419..2a4086b2 100644 --- a/html/group__pfft.html +++ b/html/group__pfft.html @@ -122,7 +122,7 @@
    }
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    Public FFT Patcher struct.
    Definition: r_pfft.h:18
    -
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:79
    +
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:104
    diff --git a/html/group__poly.html b/html/group__poly.html index d2a53feb..5ccdf16b 100644 --- a/html/group__poly.html +++ b/html/group__poly.html @@ -105,7 +105,7 @@
    t_object *patcher = NULL;
    t_object *assoc = NULL;
    -
    method m = NULL;
    +
    method m = NULL;
    long voices = -1;
    long index = -1;
    @@ -126,14 +126,14 @@
    t_atom_long object_attr_getlong(void *x, t_symbol *s)
    Retrieves the value of an attribute, given its parent object and name.
    method zgetfn(t_object *op, t_symbol *msg)
    Use zgetfn() to send an untyped message to a Max object without error checking.
    BEGIN_USING_C_LINKAGE void post(C74_CONST char *fmt,...)
    Print text to the Max window.
    -
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *,...)
    Function pointer type for generic methods.
    Definition: ext_mess.h:23
    +
    BEGIN_USING_C_LINKAGE typedef void *(* method)(void *)
    Function pointer type for generic methods.
    Definition: ext_mess.h:25
    t_atom_long t_max_err
    an integer value suitable to be returned as an error code
    Definition: max_types.h:78
    @ MAX_ERR_NONE
    No error.
    Definition: max_types.h:118
    t_max_err object_obex_lookup(void *x, t_symbol *key, t_object **val)
    Retrieves the value of a data stored in the obex.
    t_symbol * object_classname(void *x)
    Retrieves an object instance's class name.
    void * object_method(void *x, t_symbol *s,...)
    Sends an untyped message to an object.
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    diff --git a/html/group__presets.html b/html/group__presets.html index 7dacc622..4581d309 100644 --- a/html/group__presets.html +++ b/html/group__presets.html @@ -98,8 +98,8 @@ @@ -158,8 +158,8 @@
    t_max_err atom_setobj(t_atom *a, void *b)
    Inserts a generic pointer value into a t_atom and change the t_atom's type to A_OBJ.
    t_max_err atom_setsym(t_atom *a, t_symbol *b)
    Inserts a t_symbol * into a t_atom and change the t_atom's type to A_SYM.
    void binbuf_insert(t_binbuf *x, t_symbol *s, short argc, t_atom *argv)
    Use binbuf_insert() to append a Max message to a Binbuf adding a semicolon.
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:79
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:104

    Function Documentation

    ◆ preset_int()

    diff --git a/html/group__presets.png b/html/group__presets.png index 602f3557..7bb17a53 100644 Binary files a/html/group__presets.png and b/html/group__presets.png differ diff --git a/html/group__qelems.html b/html/group__qelems.html index 45885f5c..3a3b16e8 100644 --- a/html/group__qelems.html +++ b/html/group__qelems.html @@ -98,14 +98,14 @@
    - + @@ -198,7 +198,7 @@

    - + diff --git a/html/group__qelems.png b/html/group__qelems.png index 23ca0fa6..7912a694 100644 Binary files a/html/group__qelems.png and b/html/group__qelems.png differ diff --git a/html/group__quickmap.html b/html/group__quickmap.html index 59d5c508..2492d0b2 100644 --- a/html/group__quickmap.html +++ b/html/group__quickmap.html @@ -99,8 +99,8 @@

    Functions

    void * qelem_new (void *obj, method fn)
    void * qelem_new (void *obj, method fn)
     Create a new Qelem. More...
     
    void qelem_set (t_qelem *x)
    method method  fn 
    diff --git a/html/group__quickmap.png b/html/group__quickmap.png index 7c5fb50a..1248de64 100644 Binary files a/html/group__quickmap.png and b/html/group__quickmap.png differ diff --git a/html/group__sched.html b/html/group__sched.html index 3aceb2d4..1b6c8de2 100644 --- a/html/group__sched.html +++ b/html/group__sched.html @@ -95,7 +95,7 @@
    diff --git a/html/group__string.png b/html/group__string.png index 7a3b37eb..0f8d0e67 100644 Binary files a/html/group__string.png and b/html/group__string.png differ diff --git a/html/group__styles.html b/html/group__styles.html index 3ddddbc5..2fdc6e35 100644 --- a/html/group__styles.html +++ b/html/group__styles.html @@ -99,8 +99,8 @@
    @@ -770,7 +770,7 @@

    void jgraphics_rectangle(t_jgraphics *g, double x, double y, double width, double height)
    Add a closed rectangle path in the context.
    long object_attr_getfill(t_object *obj, t_symbol *attrname)
    Determine if an attribute is a fill.
    void jgraphics_attr_fillrect(t_object *b, t_jgraphics *g, t_symbol *attrname, t_rect *area)
    Fill using the current value of a named style color that exists either in the object or the defined s...
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    Parameters

    diff --git a/html/group__styles.png b/html/group__styles.png index ddeecb14..6ef9fbbc 100644 Binary files a/html/group__styles.png and b/html/group__styles.png differ diff --git a/html/group__symbol.html b/html/group__symbol.html index ab35b4e0..98cee889 100644 --- a/html/group__symbol.html +++ b/html/group__symbol.html @@ -128,9 +128,9 @@
    s = gensym("some_weird_string");
    s->s_thing = (t_object *)someValue;
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    -
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:163
    -
    The symbol.
    Definition: ext_mess.h:77
    -
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:79
    +
    The structure for the head of any object which wants to have inlets or outlets, or support attributes...
    Definition: ext_mess.h:191
    +
    The symbol.
    Definition: ext_mess.h:102
    +
    struct object * s_thing
    possible binding to a t_object
    Definition: ext_mess.h:104

    Retrieving a value:

    s = gensym("some_weird_string");
    diff --git a/html/group__symbol.png b/html/group__symbol.png index 441377e0..8337c38f 100644 Binary files a/html/group__symbol.png and b/html/group__symbol.png differ diff --git a/html/group__symobject.html b/html/group__symobject.html index 606519c3..fe75bd58 100644 --- a/html/group__symobject.html +++ b/html/group__symobject.html @@ -99,8 +99,8 @@
    bThe instance of your object.
    @@ -176,7 +176,7 @@

    t_atom_long linklist_findfirst(t_linklist *x, void **o, long cmpfn(void *, void *), void *cmpdata)
    Search the linked list for the first item meeting defined criteria.
    t_symbol * gensym(C74_CONST char *s)
    Given a C-string, fetch the matching t_symbol pointer from the symbol table, generating the symbol if...
    long symobject_linklist_match(void *a, void *b)
    Utility for searching a linklist containing symobjects.
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    The symbol.
    Definition: ext_mess.h:102
    The symobject data structure.
    Definition: ext_symobject.h:17
    diff --git a/html/group__symobject.png b/html/group__symobject.png index 25efbae3..c13f7c30 100644 Binary files a/html/group__symobject.png and b/html/group__symobject.png differ diff --git a/html/group__systime.html b/html/group__systime.html index 916d740a..0f5f9bf9 100644 --- a/html/group__systime.html +++ b/html/group__systime.html @@ -101,7 +101,7 @@
    - +

    diff --git a/html/group__systime.png b/html/group__systime.png index f96280bd..b6dd03e3 100644 Binary files a/html/group__systime.png and b/html/group__systime.png differ diff --git a/html/group__tables.html b/html/group__tables.html index 88be9fef..bcc70eff 100644 --- a/html/group__tables.html +++ b/html/group__tables.html @@ -98,8 +98,8 @@
    diff --git a/html/group__tables.png b/html/group__tables.png index b494c8a6..d0e698f5 100644 Binary files a/html/group__tables.png and b/html/group__tables.png differ diff --git a/html/group__texteditors.html b/html/group__texteditors.html index b851f09f..0751d8e4 100644 --- a/html/group__texteditors.html +++ b/html/group__texteditors.html @@ -96,8 +96,8 @@

    Max has a simple built-in text editor object that can display and edit text in conjunction with your object.

    diff --git a/html/group__texteditors.png b/html/group__texteditors.png index a040b4f8..669b1fda 100644 Binary files a/html/group__texteditors.png and b/html/group__texteditors.png differ diff --git a/html/group__textfield.html b/html/group__textfield.html index c9373ddd..7f3fff2e 100644 --- a/html/group__textfield.html +++ b/html/group__textfield.html @@ -98,8 +98,8 @@
    diff --git a/html/group__textfield.png b/html/group__textfield.png index ef4dcdbb..460cebd5 100644 Binary files a/html/group__textfield.png and b/html/group__textfield.png differ diff --git a/html/group__textlayout.html b/html/group__textlayout.html index fd7258e3..43b50637 100644 --- a/html/group__textlayout.html +++ b/html/group__textlayout.html @@ -99,8 +99,8 @@
    diff --git a/html/group__textlayout.png b/html/group__textlayout.png index 7e894aa9..52a45476 100644 Binary files a/html/group__textlayout.png and b/html/group__textlayout.png differ diff --git a/html/group__threading.html b/html/group__threading.html index 8742e3be..ddbe5de7 100644 --- a/html/group__threading.html +++ b/html/group__threading.html @@ -103,9 +103,9 @@
    @@ -158,22 +158,22 @@
    - + - + - + - + - + @@ -271,7 +271,7 @@

    - + @@ -314,8 +314,8 @@

    Returns
    Return values is for internal Cycling '74 use only.
    Remarks
    This function uses the isr() routine to determine whether you're at the Max timer interrupt level (in the scheduler thread). If so, defer() creates a Qelem (see Qelems), calls qelem_front(), and its queue function calls the function fn you passed with the specified arguments. If you're not in the scheduler thread, the function is executed immediately with the arguments. Note that this implies that defer() is not appropriate for using in situations such as Device or File manager I/0 completion routines. The defer_low() function is appropriate however, because it always defers.

    The deferred function should be declared as follows:

    void myobject_do (myObject *client, t_symbol *s, short argc, t_atom *argv);
    -
    An atom is a typed datum.
    Definition: ext_mess.h:293
    -
    The symbol.
    Definition: ext_mess.h:77
    +
    An atom is a typed datum.
    Definition: ext_mess.h:323
    +
    The symbol.
    Definition: ext_mess.h:102
    See also
    defer_low()

    Referenced by jit_error_code(), jit_error_sym(), and jit_post_sym().

    @@ -337,7 +337,7 @@

    - + @@ -420,7 +420,7 @@

    - + @@ -489,7 +489,7 @@

    - + @@ -549,10 +549,10 @@

    {
    outlet_int(x->m_out,av->a_w.w_long);
    }
    -
    @ A_LONG
    long integer
    Definition: ext_mess.h:251
    +
    @ A_LONG
    long integer
    Definition: ext_mess.h:279
    void * outlet_int(t_outlet *x, t_atom_long n)
    Use outlet_int() to send an int message out an outlet.
    void schedule_delay(void *ob, method fun, long delay, t_symbol *sym, short argc, t_atom *argv)
    Cause a function to be executed at the timer level at some time in the future specified by a delay of...
    -
    t_atom_long w_long
    long integer
    Definition: ext_mess.h:282
    +
    t_atom_long w_long
    long integer
    Definition: ext_mess.h:312
    See also
    schedule()
    @@ -566,7 +566,7 @@

    long systhread_create

    - + diff --git a/html/group__threading.png b/html/group__threading.png index 2784a330..c57c5077 100644 Binary files a/html/group__threading.png and b/html/group__threading.png differ diff --git a/html/group__time.html b/html/group__time.html index 46819ed2..0573e938 100644 --- a/html/group__time.html +++ b/html/group__time.html @@ -114,29 +114,29 @@

    Functions

    void schedule (void *ob, method fun, long when, t_symbol *sym, short argc, t_atom *argv)
    void schedule (void *ob, method fun, long when, t_symbol *sym, short argc, t_atom *argv)
     Cause a function to be executed at the timer level at some time in the future. More...
     
    void schedule_delay (void *ob, method fun, long delay, t_symbol *sym, short argc, t_atom *argv)
    void schedule_delay (void *ob, method fun, long delay, t_symbol *sym, short argc, t_atom *argv)
     Cause a function to be executed at the timer level at some time in the future specified by a delay offset. More...
     
    long isr (void)
     Determine whether your code is executing in the Max scheduler thread. More...
     
    void * defer (void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
    void * defer (void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
     Defer execution of a function to the main thread if (and only if) your function is executing in the scheduler thread. More...
     
    void * defer_low (void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
    void * defer_low (void *ob, method fn, t_symbol *sym, short argc, t_atom *argv)
     Defer execution of a function to the back of the queue on the main thread. More...
     
    long systhread_create (method entryproc, void *arg, long stacksize, long priority, long flags, t_systhread *thread)
    long systhread_create (method entryproc, void *arg, long stacksize, long priority, long flags, t_systhread *thread)
     Create a new thread. More...
     
    long systhread_terminate (t_systhread thread)
    method method  fn,
    method method  fn,
    method method  fun,
    method method  fun,
    (method method  entryproc,
    - - - + +

    Enumerations

    enum  {
    -  TIME_FLAGS_LOCATION -, TIME_FLAGS_TICKSONLY -, TIME_FLAGS_FIXEDONLY -, TIME_FLAGS_LOOKAHEAD +
    enum  {
    +  TIME_FLAGS_LOCATION +, TIME_FLAGS_TICKSONLY +, TIME_FLAGS_FIXEDONLY +, TIME_FLAGS_LOOKAHEAD ,
    -  TIME_FLAGS_USECLOCK -, TIME_FLAGS_USEQELEM -, TIME_FLAGS_FIXED -, TIME_FLAGS_PERMANENT +  TIME_FLAGS_USECLOCK +, TIME_FLAGS_USEQELEM +, TIME_FLAGS_FIXED +, TIME_FLAGS_PERMANENT ,
    -  TIME_FLAGS_TRANSPORT -, TIME_FLAGS_EVENTLIST -, TIME_FLAGS_CHECKSCHEDULE -, TIME_FLAGS_LISTENTICKS +  TIME_FLAGS_TRANSPORT +, TIME_FLAGS_EVENTLIST +, TIME_FLAGS_CHECKSCHEDULE +, TIME_FLAGS_LISTENTICKS ,
    -  TIME_FLAGS_NOUNITS -, TIME_FLAGS_BBUSOURCE -, TIME_FLAGS_POSITIVE +  TIME_FLAGS_NOUNITS +, TIME_FLAGS_BBUSOURCE +, TIME_FLAGS_POSITIVE
    }
     Flags that determine attribute and time object behavior. More...
     
     Flags that determine attribute and time object behavior. More...
     
    @@ -230,7 +230,7 @@ - + @@ -288,8 +288,8 @@

    Enumeration Type Documentation

    - -

    ◆ anonymous enum

    + +

    ◆ anonymous enum

    @@ -302,35 +302,35 @@

    -

    - - - - - - - - - - - - - -

    Functions

    void class_time_addattr (t_class *c, const char *attrname, const char *attrlabel, long flags)
     Create an attribute permitting a time object to be changed in a user-friendly way. More...
     
    void * time_new (t_object *owner, t_symbol *attrname, method tick, long flags)
    void * time_new (t_object *owner, t_symbol *attrname, method tick, long flags)
     Create a new time object. More...
     
    t_objecttime_getnamed (t_object *owner, t_symbol *attrname)
    Enumerator
    TIME_FLAGS_LOCATION 

    1 1 0 location-based bar/beat/unit values (as opposed to interval values, which are 0 0 0 relative)

    +
    Enumerator
    TIME_FLAGS_LOCATION 

    1 1 0 location-based bar/beat/unit values (as opposed to interval values, which are 0 0 0 relative)

    TIME_FLAGS_TICKSONLY 

    only ticks-based values (not ms) are acceptable

    +
    TIME_FLAGS_TICKSONLY 

    only ticks-based values (not ms) are acceptable

    TIME_FLAGS_FIXEDONLY 

    only fixed values (ms, hz, samples) are acceptable

    +
    TIME_FLAGS_FIXEDONLY 

    only fixed values (ms, hz, samples) are acceptable

    TIME_FLAGS_LOOKAHEAD 

    add lookahead attribute (unsupported)

    +
    TIME_FLAGS_LOOKAHEAD 

    add lookahead attribute (unsupported)

    TIME_FLAGS_USECLOCK 

    this time object will schedule events, not just hold a value

    +
    TIME_FLAGS_USECLOCK 

    this time object will schedule events, not just hold a value

    TIME_FLAGS_USEQELEM 

    this time object will defer execution of scheduled events to low priority thread

    +
    TIME_FLAGS_USEQELEM 

    this time object will defer execution of scheduled events to low priority thread

    TIME_FLAGS_FIXED 

    will only use normal clock (i.e., will never execute out of ITM)

    +
    TIME_FLAGS_FIXED 

    will only use normal clock (i.e., will never execute out of ITM)

    TIME_FLAGS_PERMANENT 

    event will be scheduled in the permanent list (tied to a specific time)

    +
    TIME_FLAGS_PERMANENT 

    event will be scheduled in the permanent list (tied to a specific time)

    TIME_FLAGS_TRANSPORT 

    add a transport attribute

    +
    TIME_FLAGS_TRANSPORT 

    add a transport attribute

    TIME_FLAGS_EVENTLIST 

    add an eventlist attribute (unsupported)

    +
    TIME_FLAGS_EVENTLIST 

    add an eventlist attribute (unsupported)

    TIME_FLAGS_CHECKSCHEDULE 

    internal use only

    +
    TIME_FLAGS_CHECKSCHEDULE 

    internal use only

    TIME_FLAGS_LISTENTICKS 

    flag for time_listen: only get notifications if the time object holds tempo-relative values

    +
    TIME_FLAGS_LISTENTICKS 

    flag for time_listen: only get notifications if the time object holds tempo-relative values

    TIME_FLAGS_NOUNITS 

    internal use only

    +
    TIME_FLAGS_NOUNITS 

    internal use only

    TIME_FLAGS_BBUSOURCE 

    source time was in bar/beat/unit values, need to recalculate when time sig changes

    +
    TIME_FLAGS_BBUSOURCE 

    source time was in bar/beat/unit values, need to recalculate when time sig changes

    TIME_FLAGS_POSITIVE 

    constrain any values <= 0 to a minimum value (default: 0)

    +
    TIME_FLAGS_POSITIVE 

    constrain any values <= 0 to a minimum value (default: 0)

    @@ -446,7 +446,7 @@

    beatsThe beat number of the location/position. unitsThe number of ticks past the beat of the location/position. ticksThe address of a variable to hold the number of ticks upon return. - positionSet this parameter to TIME_FLAGS_LOCATION or to zero (for position mode). + positionSet this parameter to TIME_FLAGS_LOCATION or to zero (for position mode).

    @@ -1118,7 +1118,7 @@

    barsThe address of a variable to hold the measure number of the location/position upon return. beatsThe address of a variable to hold the beat number of the location/position upon return. unitsThe address of a variable to hold the number of ticks past the beat of the location/position upon return. - positionSet this parameter to TIME_FLAGS_LOCATION or to zero (for position mode). + positionSet this parameter to TIME_FLAGS_LOCATION or to zero (for position mode). @@ -1470,7 +1470,7 @@

    - method  + method  tick, diff --git a/html/group__time.js b/html/group__time.js index a0e30179..3aa2fc1a 100644 --- a/html/group__time.js +++ b/html/group__time.js @@ -1,21 +1,21 @@ var group__time = [ [ "t_itm", "group__time.html#ga4b7c41114a34f06b4f5ab7c4ef29b38c", [ - [ "TIME_FLAGS_LOCATION", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04ac80606ccbb9a16c14cf81874e4de2408", null ], - [ "TIME_FLAGS_TICKSONLY", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04af93981eb3922895394877d099323a2e8", null ], - [ "TIME_FLAGS_FIXEDONLY", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a5b35f210c105cc2e49a4c2c18c48c10c", null ], - [ "TIME_FLAGS_LOOKAHEAD", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a4cb8e2884262140884e647d609747a82", null ], - [ "TIME_FLAGS_USECLOCK", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a91f2cee835f5cf871a657101b6ff7b4e", null ], - [ "TIME_FLAGS_USEQELEM", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a46a7548bed973b5cef7e6fcbb5883c4f", null ], - [ "TIME_FLAGS_FIXED", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04ac97bc4400b25656b5570c12d6817a662", null ], - [ "TIME_FLAGS_PERMANENT", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04af2db490f1904d9f1e834f9ea062ad67e", null ], - [ "TIME_FLAGS_TRANSPORT", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a7ddd9e0fa3dc6a7b346fc3dcee5c5c81", null ], - [ "TIME_FLAGS_EVENTLIST", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a273bc93db911e7ea106e5839d9263382", null ], - [ "TIME_FLAGS_CHECKSCHEDULE", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04ad16eb0fa4c44658f55146763452b3481", null ], - [ "TIME_FLAGS_LISTENTICKS", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a22fec8e51f11f945f8b94279a6df37df", null ], - [ "TIME_FLAGS_NOUNITS", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a5f103c6561c69e7759621cd216d0176b", null ], - [ "TIME_FLAGS_BBUSOURCE", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a4dc0bf02a08234ce8b66e8ecb5ec568e", null ], - [ "TIME_FLAGS_POSITIVE", "group__time.html#ggabc6126af1d45847bc59afa0aa3216b04a4d4396aa4c56efec83245821ea888235", null ] + [ "TIME_FLAGS_LOCATION", "group__time.html#gga61dadd085c1777f559549e05962b2c9eac80606ccbb9a16c14cf81874e4de2408", null ], + [ "TIME_FLAGS_TICKSONLY", "group__time.html#gga61dadd085c1777f559549e05962b2c9eaf93981eb3922895394877d099323a2e8", null ], + [ "TIME_FLAGS_FIXEDONLY", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea5b35f210c105cc2e49a4c2c18c48c10c", null ], + [ "TIME_FLAGS_LOOKAHEAD", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea4cb8e2884262140884e647d609747a82", null ], + [ "TIME_FLAGS_USECLOCK", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea91f2cee835f5cf871a657101b6ff7b4e", null ], + [ "TIME_FLAGS_USEQELEM", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea46a7548bed973b5cef7e6fcbb5883c4f", null ], + [ "TIME_FLAGS_FIXED", "group__time.html#gga61dadd085c1777f559549e05962b2c9eac97bc4400b25656b5570c12d6817a662", null ], + [ "TIME_FLAGS_PERMANENT", "group__time.html#gga61dadd085c1777f559549e05962b2c9eaf2db490f1904d9f1e834f9ea062ad67e", null ], + [ "TIME_FLAGS_TRANSPORT", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea7ddd9e0fa3dc6a7b346fc3dcee5c5c81", null ], + [ "TIME_FLAGS_EVENTLIST", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea273bc93db911e7ea106e5839d9263382", null ], + [ "TIME_FLAGS_CHECKSCHEDULE", "group__time.html#gga61dadd085c1777f559549e05962b2c9ead16eb0fa4c44658f55146763452b3481", null ], + [ "TIME_FLAGS_LISTENTICKS", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea22fec8e51f11f945f8b94279a6df37df", null ], + [ "TIME_FLAGS_NOUNITS", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea5f103c6561c69e7759621cd216d0176b", null ], + [ "TIME_FLAGS_BBUSOURCE", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea4dc0bf02a08234ce8b66e8ecb5ec568e", null ], + [ "TIME_FLAGS_POSITIVE", "group__time.html#gga61dadd085c1777f559549e05962b2c9ea4d4396aa4c56efec83245821ea888235", null ] ] ], [ "class_time_addattr", "group__time.html#gacad240f629ef5619c9949ba7a3adec95", null ], [ "itm_barbeatunitstoticks", "group__time.html#gadca2e82e0cadd3bacd75aa6a137ac530", null ], diff --git a/html/group__time.png b/html/group__time.png index c6d9f2a9..10d30cad 100644 Binary files a/html/group__time.png and b/html/group__time.png differ diff --git a/html/group__ui.html b/html/group__ui.html index 66bce95d..9bd77427 100644 --- a/html/group__ui.html +++ b/html/group__ui.html @@ -95,8 +95,8 @@ diff --git a/html/group__ui.png b/html/group__ui.png index 28dc8410..0c57fc68 100644 Binary files a/html/group__ui.png and b/html/group__ui.png differ diff --git a/html/group__utilitymod.html b/html/group__utilitymod.html index 85e2991f..e89178b4 100644 --- a/html/group__utilitymod.html +++ b/html/group__utilitymod.html @@ -201,7 +201,7 @@

    References defer(), and method.

    +

    References defer(), and method.

    Referenced by max_jit_attr_getdump(), and max_jit_mop_jit_matrix().

    @@ -211,8 +211,8 @@

    References defer(), and method.

    +

    References defer(), and method.

    + Here is the call graph for this function:
    @@ -261,8 +261,8 @@

    References defer(), and method.

    +

    References defer(), and method.

    + Here is the call graph for this function:
    @@ -380,7 +380,7 @@

    - + @@ -439,8 +439,8 @@

    diff --git a/html/struct__buffer__coll__graph.png b/html/struct__buffer__coll__graph.png index 2519355f..e5980270 100644 Binary files a/html/struct__buffer__coll__graph.png and b/html/struct__buffer__coll__graph.png differ diff --git a/html/structt__atom__coll__graph.png b/html/structt__atom__coll__graph.png index c2e44235..b7edd983 100644 Binary files a/html/structt__atom__coll__graph.png and b/html/structt__atom__coll__graph.png differ diff --git a/html/structt__atomarray.html b/html/structt__atomarray.html index 7c58d27a..c53e250b 100644 --- a/html/structt__atomarray.html +++ b/html/structt__atomarray.html @@ -98,10 +98,10 @@

    Detailed Description

    diff --git a/html/structt__atomarray__coll__graph.png b/html/structt__atomarray__coll__graph.png index d2fa94a2..debf9a83 100644 Binary files a/html/structt__atomarray__coll__graph.png and b/html/structt__atomarray__coll__graph.png differ diff --git a/html/structt__atombuf.html b/html/structt__atombuf.html index cab25f44..de092d0e 100644 --- a/html/structt__atombuf.html +++ b/html/structt__atombuf.html @@ -100,9 +100,9 @@
    diff --git a/html/structt__atombuf__coll__graph.png b/html/structt__atombuf__coll__graph.png index 2f6327bc..ea1f5b80 100644 Binary files a/html/structt__atombuf__coll__graph.png and b/html/structt__atombuf__coll__graph.png differ diff --git a/html/structt__attr.html b/html/structt__attr.html index 4d54f96e..5edb7f1a 100644 --- a/html/structt__attr.html +++ b/html/structt__attr.html @@ -99,8 +99,8 @@
    Collaboration graph
    - - + +
    [legend]

    Detailed Description

    diff --git a/html/structt__attr__coll__graph.png b/html/structt__attr__coll__graph.png index 1ecb6fbf..c9086e8f 100644 Binary files a/html/structt__attr__coll__graph.png and b/html/structt__attr__coll__graph.png differ diff --git a/html/structt__buffer__info.html b/html/structt__buffer__info.html index 27e5da42..25e81486 100644 --- a/html/structt__buffer__info.html +++ b/html/structt__buffer__info.html @@ -100,9 +100,9 @@
    diff --git a/html/structt__buffer__info__coll__graph.png b/html/structt__buffer__info__coll__graph.png index c7b8aa98..ee836955 100644 Binary files a/html/structt__buffer__info__coll__graph.png and b/html/structt__buffer__info__coll__graph.png differ diff --git a/html/structt__charset__converter.html b/html/structt__charset__converter.html index 72383d7e..4f601cf4 100644 --- a/html/structt__charset__converter.html +++ b/html/structt__charset__converter.html @@ -98,8 +98,8 @@

    Detailed Description

    diff --git a/html/structt__charset__converter__coll__graph.png b/html/structt__charset__converter__coll__graph.png index b1929da0..54986c3c 100644 Binary files a/html/structt__charset__converter__coll__graph.png and b/html/structt__charset__converter__coll__graph.png differ diff --git a/html/structt__class.html b/html/structt__class.html index 676ae8d1..17ed784c 100644 --- a/html/structt__class.html +++ b/html/structt__class.html @@ -100,8 +100,8 @@
    diff --git a/html/structt__class__coll__graph.png b/html/structt__class__coll__graph.png index d125ee37..69bcf343 100644 Binary files a/html/structt__class__coll__graph.png and b/html/structt__class__coll__graph.png differ diff --git a/html/structt__dictionary.html b/html/structt__dictionary.html index c3f90cf3..b2c1ca10 100644 --- a/html/structt__dictionary.html +++ b/html/structt__dictionary.html @@ -98,11 +98,11 @@

    Detailed Description

    diff --git a/html/structt__dictionary__coll__graph.png b/html/structt__dictionary__coll__graph.png index 44c89998..e2534d0f 100644 Binary files a/html/structt__dictionary__coll__graph.png and b/html/structt__dictionary__coll__graph.png differ diff --git a/html/structt__dictionary__entry.html b/html/structt__dictionary__entry.html index 247b88b5..bf89f7ec 100644 --- a/html/structt__dictionary__entry.html +++ b/html/structt__dictionary__entry.html @@ -98,11 +98,11 @@

    Detailed Description

    diff --git a/html/structt__dictionary__entry__coll__graph.png b/html/structt__dictionary__entry__coll__graph.png index 1cefd5ca..e0138ec6 100644 Binary files a/html/structt__dictionary__entry__coll__graph.png and b/html/structt__dictionary__entry__coll__graph.png differ diff --git a/html/structt__ex__ex.html b/html/structt__ex__ex.html index 3e131427..79c42f3b 100644 --- a/html/structt__ex__ex.html +++ b/html/structt__ex__ex.html @@ -96,11 +96,11 @@
    - - - - + + + diff --git a/html/structt__ex__ex.js b/html/structt__ex__ex.js index 383e5aa0..e0cb4325 100644 --- a/html/structt__ex__ex.js +++ b/html/structt__ex__ex.js @@ -1,5 +1,5 @@ var structt__ex__ex = [ - [ "ex_cont", "structt__ex__ex.html#a94ee6c6db25862bf3797c0e3c96d18d3", null ], + [ "ex_cont", "structt__ex__ex.html#a10538657d8b858e9f4d5c17cef554d35", null ], [ "ex_type", "structt__ex__ex.html#a563820e3f60538899256d1fd4ec8e71f", null ] ]; \ No newline at end of file diff --git a/html/structt__expr.html b/html/structt__expr.html index fe67a592..f27fada5 100644 --- a/html/structt__expr.html +++ b/html/structt__expr.html @@ -100,9 +100,9 @@

    Data Fields

    +
    union {
    ex_cont
     content
     
    ex_cont
     content
     
    long ex_type
     type of the node
    diff --git a/html/structt__expr__coll__graph.png b/html/structt__expr__coll__graph.png index 71b89e3c..b69186e2 100644 Binary files a/html/structt__expr__coll__graph.png and b/html/structt__expr__coll__graph.png differ diff --git a/html/structt__funbuff.html b/html/structt__funbuff.html index f383ea44..bc469d9e 100644 --- a/html/structt__funbuff.html +++ b/html/structt__funbuff.html @@ -100,10 +100,10 @@
    diff --git a/html/structt__funbuff__coll__graph.png b/html/structt__funbuff__coll__graph.png index 7bef5433..7fb8a562 100644 Binary files a/html/structt__funbuff__coll__graph.png and b/html/structt__funbuff__coll__graph.png differ diff --git a/html/structt__hashtab.html b/html/structt__hashtab.html index 500f3f63..9963f391 100644 --- a/html/structt__hashtab.html +++ b/html/structt__hashtab.html @@ -98,10 +98,10 @@

    Detailed Description

    diff --git a/html/structt__hashtab__coll__graph.png b/html/structt__hashtab__coll__graph.png index d5c1740f..5d8f8576 100644 Binary files a/html/structt__hashtab__coll__graph.png and b/html/structt__hashtab__coll__graph.png differ diff --git a/html/structt__hashtab__entry.html b/html/structt__hashtab__entry.html index cc59eb08..abddead7 100644 --- a/html/structt__hashtab__entry.html +++ b/html/structt__hashtab__entry.html @@ -98,9 +98,9 @@

    Detailed Description

    diff --git a/html/structt__hashtab__entry__coll__graph.png b/html/structt__hashtab__entry__coll__graph.png index da12bb47..67d48f85 100644 Binary files a/html/structt__hashtab__entry__coll__graph.png and b/html/structt__hashtab__entry__coll__graph.png differ diff --git a/html/structt__indexmap.html b/html/structt__indexmap.html index 95c8e23d..a2d4953a 100644 --- a/html/structt__indexmap.html +++ b/html/structt__indexmap.html @@ -98,12 +98,12 @@

    Detailed Description

    diff --git a/html/structt__indexmap__coll__graph.png b/html/structt__indexmap__coll__graph.png index 9453d7cb..1c1f0b7f 100644 Binary files a/html/structt__indexmap__coll__graph.png and b/html/structt__indexmap__coll__graph.png differ diff --git a/html/structt__jbox.html b/html/structt__jbox.html index 0bf423e5..f27873fe 100644 --- a/html/structt__jbox.html +++ b/html/structt__jbox.html @@ -98,11 +98,11 @@

    Detailed Description

    diff --git a/html/structt__jbox__coll__graph.png b/html/structt__jbox__coll__graph.png index 7797afd1..0330f384 100644 Binary files a/html/structt__jbox__coll__graph.png and b/html/structt__jbox__coll__graph.png differ diff --git a/html/structt__jboxdrawparams.html b/html/structt__jboxdrawparams.html index 4b67df03..8fe9702e 100644 --- a/html/structt__jboxdrawparams.html +++ b/html/structt__jboxdrawparams.html @@ -98,8 +98,8 @@

    Detailed Description

    diff --git a/html/structt__jboxdrawparams__coll__graph.png b/html/structt__jboxdrawparams__coll__graph.png index a0030930..698edcde 100644 Binary files a/html/structt__jboxdrawparams__coll__graph.png and b/html/structt__jboxdrawparams__coll__graph.png differ diff --git a/html/structt__jcolumn.html b/html/structt__jcolumn.html index 1e5e4553..53e3a4ed 100644 --- a/html/structt__jcolumn.html +++ b/html/structt__jcolumn.html @@ -100,9 +100,9 @@
    diff --git a/html/structt__jcolumn__coll__graph.png b/html/structt__jcolumn__coll__graph.png index 50a8f555..27402f5f 100644 Binary files a/html/structt__jcolumn__coll__graph.png and b/html/structt__jcolumn__coll__graph.png differ diff --git a/html/structt__jdataview.html b/html/structt__jdataview.html index 797ac94d..0c39913c 100644 --- a/html/structt__jdataview.html +++ b/html/structt__jdataview.html @@ -100,13 +100,13 @@
    diff --git a/html/structt__jdataview__coll__graph.png b/html/structt__jdataview__coll__graph.png index d53c09d6..185ac0c8 100644 Binary files a/html/structt__jdataview__coll__graph.png and b/html/structt__jdataview__coll__graph.png differ diff --git a/html/structt__jit__attr.html b/html/structt__jit__attr.html index 3b9588a7..7d433777 100644 --- a/html/structt__jit__attr.html +++ b/html/structt__jit__attr.html @@ -100,9 +100,9 @@
    @@ -125,11 +125,11 @@ +method  +method 
     flags for public/private get/set methods
     
    -method get
    get
     override default get method
     
    -method set
    set
     override default set method
     
    diff --git a/html/structt__jit__attr__coll__graph.png b/html/structt__jit__attr__coll__graph.png index 3a6b56c0..4b27c2f7 100644 Binary files a/html/structt__jit__attr__coll__graph.png and b/html/structt__jit__attr__coll__graph.png differ diff --git a/html/structt__jit__attr__filter__clip.html b/html/structt__jit__attr__filter__clip.html index 7bf4fc06..af612e99 100644 --- a/html/structt__jit__attr__filter__clip.html +++ b/html/structt__jit__attr__filter__clip.html @@ -98,9 +98,9 @@ diff --git a/html/structt__jit__attr__filter__clip__coll__graph.png b/html/structt__jit__attr__filter__clip__coll__graph.png index e2ba588d..4f8de35a 100644 Binary files a/html/structt__jit__attr__filter__clip__coll__graph.png and b/html/structt__jit__attr__filter__clip__coll__graph.png differ diff --git a/html/structt__jit__attr__filter__proc.html b/html/structt__jit__attr__filter__proc.html index dcf85266..d6758433 100644 --- a/html/structt__jit__attr__filter__proc.html +++ b/html/structt__jit__attr__filter__proc.html @@ -98,8 +98,8 @@
    @@ -110,7 +110,7 @@ +method 
     common object header
     
    -method proc
    proc
     filter procedure
     
    diff --git a/html/structt__jit__attr__filter__proc__coll__graph.png b/html/structt__jit__attr__filter__proc__coll__graph.png index fb467587..af1c5847 100644 Binary files a/html/structt__jit__attr__filter__proc__coll__graph.png and b/html/structt__jit__attr__filter__proc__coll__graph.png differ diff --git a/html/structt__jit__attr__offset.html b/html/structt__jit__attr__offset.html index 6dafa4d2..8eea2f95 100644 --- a/html/structt__jit__attr__offset.html +++ b/html/structt__jit__attr__offset.html @@ -99,8 +99,8 @@
    Collaboration graph
    - - + +
    [legend]
    @@ -123,11 +123,11 @@ +method  +method 
     flags for public/private get/set methods
     
    -method get
    get
     override default get method
     
    -method set
    set
     override default set method
     
    diff --git a/html/structt__jit__attr__offset__array.html b/html/structt__jit__attr__offset__array.html index 3d0bf9c1..f70fd4e0 100644 --- a/html/structt__jit__attr__offset__array.html +++ b/html/structt__jit__attr__offset__array.html @@ -98,9 +98,9 @@ @@ -123,11 +123,11 @@ +method  +method 
     flags for public/private get/set methods
     
    -method get
    get
     override default get method
     
    -method set
    set
     override default set method
     
    diff --git a/html/structt__jit__attr__offset__array__coll__graph.png b/html/structt__jit__attr__offset__array__coll__graph.png index 43eeabb3..005c9b4d 100644 Binary files a/html/structt__jit__attr__offset__array__coll__graph.png and b/html/structt__jit__attr__offset__array__coll__graph.png differ diff --git a/html/structt__jit__attr__offset__coll__graph.png b/html/structt__jit__attr__offset__coll__graph.png index 1d420442..bd88563e 100644 Binary files a/html/structt__jit__attr__offset__coll__graph.png and b/html/structt__jit__attr__offset__coll__graph.png differ diff --git a/html/structt__jit__attribute.html b/html/structt__jit__attribute.html index fda32dbf..e550037d 100644 --- a/html/structt__jit__attribute.html +++ b/html/structt__jit__attribute.html @@ -98,9 +98,9 @@ @@ -123,11 +123,11 @@ +method  +method  +method  +char 
     flags for public/private get/set methods
     
    -method get
    get
     override default get method
     
    -method set
    set
     override default set method
     
    diff --git a/html/structt__jit__attribute__coll__graph.png b/html/structt__jit__attribute__coll__graph.png index a142bcdb..409f44c3 100644 Binary files a/html/structt__jit__attribute__coll__graph.png and b/html/structt__jit__attribute__coll__graph.png differ diff --git a/html/structt__jit__gl__buffer__data.html b/html/structt__jit__gl__buffer__data.html index a08af695..6f29a4db 100644 --- a/html/structt__jit__gl__buffer__data.html +++ b/html/structt__jit__gl__buffer__data.html @@ -98,10 +98,10 @@

    Detailed Description

    diff --git a/html/structt__jit__gl__buffer__data__coll__graph.png b/html/structt__jit__gl__buffer__data__coll__graph.png index fee2b7aa..a0c604d1 100644 Binary files a/html/structt__jit__gl__buffer__data__coll__graph.png and b/html/structt__jit__gl__buffer__data__coll__graph.png differ diff --git a/html/structt__jit__gl__buffer__view.html b/html/structt__jit__gl__buffer__view.html index d6680ed8..111502a9 100644 --- a/html/structt__jit__gl__buffer__view.html +++ b/html/structt__jit__gl__buffer__view.html @@ -98,9 +98,9 @@

    Detailed Description

    diff --git a/html/structt__jit__gl__buffer__view__coll__graph.png b/html/structt__jit__gl__buffer__view__coll__graph.png index 022d63fa..b3aaa8cb 100644 Binary files a/html/structt__jit__gl__buffer__view__coll__graph.png and b/html/structt__jit__gl__buffer__view__coll__graph.png differ diff --git a/html/structt__jit__gl__context__view.html b/html/structt__jit__gl__context__view.html index 3ca8c754..d5faf60b 100644 --- a/html/structt__jit__gl__context__view.html +++ b/html/structt__jit__gl__context__view.html @@ -100,15 +100,15 @@ diff --git a/html/structt__jit__gl__context__view__coll__graph.png b/html/structt__jit__gl__context__view__coll__graph.png index 6538cbfb..3f2591fd 100644 Binary files a/html/structt__jit__gl__context__view__coll__graph.png and b/html/structt__jit__gl__context__view__coll__graph.png differ diff --git a/html/structt__jit__glchunk.html b/html/structt__jit__glchunk.html index fd0c3d5a..650dea9e 100644 --- a/html/structt__jit__glchunk.html +++ b/html/structt__jit__glchunk.html @@ -100,9 +100,9 @@
    diff --git a/html/structt__jit__glchunk__coll__graph.png b/html/structt__jit__glchunk__coll__graph.png index a0dc5c03..0d7ca7d5 100644 Binary files a/html/structt__jit__glchunk__coll__graph.png and b/html/structt__jit__glchunk__coll__graph.png differ diff --git a/html/structt__jit__matrix__info.html b/html/structt__jit__matrix__info.html index 60ee6b56..bf9189e5 100644 --- a/html/structt__jit__matrix__info.html +++ b/html/structt__jit__matrix__info.html @@ -100,9 +100,9 @@
    @@ -125,11 +125,11 @@ +long  +long  +long  +long  +long  +long  +long 
     number of dimensions
     
    -long dim [JIT_MATRIX_MAX_DIMCOUNT]
    dim [JIT_MATRIX_MAX_DIMCOUNT]
     dimension sizes
     
    -long dimstride [JIT_MATRIX_MAX_DIMCOUNT]
    dimstride [JIT_MATRIX_MAX_DIMCOUNT]
     stride across dimensions in bytes
     
    diff --git a/html/structt__jit__matrix__info__coll__graph.png b/html/structt__jit__matrix__info__coll__graph.png index d1b4ccaf..41e21dab 100644 Binary files a/html/structt__jit__matrix__info__coll__graph.png and b/html/structt__jit__matrix__info__coll__graph.png differ diff --git a/html/structt__jit__mop.html b/html/structt__jit__mop.html index facd56e2..969151cd 100644 --- a/html/structt__jit__mop.html +++ b/html/structt__jit__mop.html @@ -98,10 +98,10 @@ diff --git a/html/structt__jit__mop__coll__graph.png b/html/structt__jit__mop__coll__graph.png index 961f8dca..c34e6457 100644 Binary files a/html/structt__jit__mop__coll__graph.png and b/html/structt__jit__mop__coll__graph.png differ diff --git a/html/structt__jit__mop__io.html b/html/structt__jit__mop__io.html index a1908dad..f0be8060 100644 --- a/html/structt__jit__mop__io.html +++ b/html/structt__jit__mop__io.html @@ -98,9 +98,9 @@
    @@ -131,11 +131,11 @@ +long  +long  +method 
     "types" attribute
     
    -long mindim [JIT_MATRIX_MAX_DIMCOUNT]
    mindim [JIT_MATRIX_MAX_DIMCOUNT]
     "mindim" attribute
     
    -long maxdim [JIT_MATRIX_MAX_DIMCOUNT]
    maxdim [JIT_MATRIX_MAX_DIMCOUNT]
     "maxdim" attribute
     
    @@ -171,7 +171,7 @@
     "planelink" attribute
     
    -method ioproc
    ioproc
     I/O procedure, accessed via methods.
     
    diff --git a/html/structt__jit__mop__io__coll__graph.png b/html/structt__jit__mop__io__coll__graph.png index 96f31192..74d330f6 100644 Binary files a/html/structt__jit__mop__io__coll__graph.png and b/html/structt__jit__mop__io__coll__graph.png differ diff --git a/html/structt__linklist.html b/html/structt__linklist.html index b2c67cac..2eff617c 100644 --- a/html/structt__linklist.html +++ b/html/structt__linklist.html @@ -98,9 +98,9 @@

    Detailed Description

    diff --git a/html/structt__linklist__coll__graph.png b/html/structt__linklist__coll__graph.png index cc2113ea..83a7ffcb 100644 Binary files a/html/structt__linklist__coll__graph.png and b/html/structt__linklist__coll__graph.png differ diff --git a/html/structt__llelem.html b/html/structt__llelem.html index eb41f69d..9c78a03a 100644 --- a/html/structt__llelem.html +++ b/html/structt__llelem.html @@ -98,8 +98,8 @@

    Detailed Description

    diff --git a/html/structt__llelem__coll__graph.png b/html/structt__llelem__coll__graph.png index 8d79331b..e40a2854 100644 Binary files a/html/structt__llelem__coll__graph.png and b/html/structt__llelem__coll__graph.png differ diff --git a/html/structt__matrix__conv__info.html b/html/structt__matrix__conv__info.html index 9b1a9b30..2dbfd45e 100644 --- a/html/structt__matrix__conv__info.html +++ b/html/structt__matrix__conv__info.html @@ -101,23 +101,23 @@
     flags for whether or not to use interpolation, or source/destination dimensions
     
    -long planemap [JIT_MATRIX_MAX_PLANECOUNT]
    planemap [JIT_MATRIX_MAX_PLANECOUNT]
     plane mapping
     
    -long srcdimstart [JIT_MATRIX_MAX_DIMCOUNT]
    srcdimstart [JIT_MATRIX_MAX_DIMCOUNT]
     source dimension start
     
    -long srcdimend [JIT_MATRIX_MAX_DIMCOUNT]
    srcdimend [JIT_MATRIX_MAX_DIMCOUNT]
     source dimension end
     
    -long dstdimstart [JIT_MATRIX_MAX_DIMCOUNT]
    dstdimstart [JIT_MATRIX_MAX_DIMCOUNT]
     destination dimension start
     
    -long dstdimend [JIT_MATRIX_MAX_DIMCOUNT]
    dstdimend [JIT_MATRIX_MAX_DIMCOUNT]
     destination dimension end
     
    diff --git a/html/structt__messlist.html b/html/structt__messlist.html index f0a9641b..3684343e 100644 --- a/html/structt__messlist.html +++ b/html/structt__messlist.html @@ -101,11 +101,11 @@
     Name of the message.
     
    -method m_fun
    m_fun
     Method associated with the message.
     
    -char m_type [MSG_MAXARG+1]
    m_type [MSG_MAXARG+1]
     Argument type information.
     
    diff --git a/html/structt__package__file.html b/html/structt__package__file.html index ebc22092..7f37f6fe 100644 --- a/html/structt__package__file.html +++ b/html/structt__package__file.html @@ -98,9 +98,9 @@

    Detailed Description

    diff --git a/html/structt__package__file__coll__graph.png b/html/structt__package__file__coll__graph.png index d7edea11..00f3a4e7 100644 Binary files a/html/structt__package__file__coll__graph.png and b/html/structt__package__file__coll__graph.png differ diff --git a/html/structt__pfftpub.html b/html/structt__pfftpub.html index 4d2ef663..c91d68b3 100644 --- a/html/structt__pfftpub.html +++ b/html/structt__pfftpub.html @@ -102,7 +102,7 @@ - +
    [legend]
    diff --git a/html/structt__pfftpub__coll__graph.png b/html/structt__pfftpub__coll__graph.png index 638a1f93..5e8c63ec 100644 Binary files a/html/structt__pfftpub__coll__graph.png and b/html/structt__pfftpub__coll__graph.png differ diff --git a/html/structt__privatesortrec.html b/html/structt__privatesortrec.html index 20fd79cb..c4daff17 100644 --- a/html/structt__privatesortrec.html +++ b/html/structt__privatesortrec.html @@ -100,15 +100,15 @@
    diff --git a/html/structt__privatesortrec__coll__graph.png b/html/structt__privatesortrec__coll__graph.png index dbcd5fef..3d3b27b1 100644 Binary files a/html/structt__privatesortrec__coll__graph.png and b/html/structt__privatesortrec__coll__graph.png differ diff --git a/html/structt__pxjbox.html b/html/structt__pxjbox.html index 0e844d6d..c5788e9d 100644 --- a/html/structt__pxjbox.html +++ b/html/structt__pxjbox.html @@ -100,12 +100,12 @@
    diff --git a/html/structt__pxjbox__coll__graph.png b/html/structt__pxjbox__coll__graph.png index 8e00c62c..3b5d2eb7 100644 Binary files a/html/structt__pxjbox__coll__graph.png and b/html/structt__pxjbox__coll__graph.png differ diff --git a/html/structt__quickmap.html b/html/structt__quickmap.html index e5bb40a1..c8e0f506 100644 --- a/html/structt__quickmap.html +++ b/html/structt__quickmap.html @@ -98,11 +98,11 @@

    Detailed Description

    diff --git a/html/structt__quickmap__coll__graph.png b/html/structt__quickmap__coll__graph.png index 421609f9..f211655d 100644 Binary files a/html/structt__quickmap__coll__graph.png and b/html/structt__quickmap__coll__graph.png differ diff --git a/html/structt__string.html b/html/structt__string.html index 89a1993d..b19d9105 100644 --- a/html/structt__string.html +++ b/html/structt__string.html @@ -98,8 +98,8 @@

    Detailed Description

    diff --git a/html/structt__string__coll__graph.png b/html/structt__string__coll__graph.png index 9e488005..33115eb9 100644 Binary files a/html/structt__string__coll__graph.png and b/html/structt__string__coll__graph.png differ diff --git a/html/structt__symbol.html b/html/structt__symbol.html index 642ee510..0f0b0743 100644 --- a/html/structt__symbol.html +++ b/html/structt__symbol.html @@ -100,8 +100,8 @@
    diff --git a/html/structt__symbol__coll__graph.png b/html/structt__symbol__coll__graph.png index 7f4b9637..a3036910 100644 Binary files a/html/structt__symbol__coll__graph.png and b/html/structt__symbol__coll__graph.png differ diff --git a/html/structt__symobject.html b/html/structt__symobject.html index e6088e44..642fe7fc 100644 --- a/html/structt__symobject.html +++ b/html/structt__symobject.html @@ -101,8 +101,8 @@
    Collaboration graph
    - - + +
    [legend]
    diff --git a/html/structt__symobject__coll__graph.png b/html/structt__symobject__coll__graph.png index 9c80f72d..598ef448 100644 Binary files a/html/structt__symobject__coll__graph.png and b/html/structt__symobject__coll__graph.png differ diff --git a/html/structt__wind__mouse__info.html b/html/structt__wind__mouse__info.html index 25e3abfa..e09b93d9 100644 --- a/html/structt__wind__mouse__info.html +++ b/html/structt__wind__mouse__info.html @@ -100,11 +100,11 @@
    diff --git a/html/structt__wind__mouse__info__coll__graph.png b/html/structt__wind__mouse__info__coll__graph.png index be49bd8c..e3985463 100644 Binary files a/html/structt__wind__mouse__info__coll__graph.png and b/html/structt__wind__mouse__info__coll__graph.png differ diff --git a/source/advanced/collect/CMakeLists.txt b/source/advanced/collect/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/collect/CMakeLists.txt +++ b/source/advanced/collect/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/dbcuelist/CMakeLists.txt b/source/advanced/dbcuelist/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/dbcuelist/CMakeLists.txt +++ b/source/advanced/dbcuelist/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/dbviewer/CMakeLists.txt b/source/advanced/dbviewer/CMakeLists.txt index 5038bc06..ba5e91ae 100755 --- a/source/advanced/dbviewer/CMakeLists.txt +++ b/source/advanced/dbviewer/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -22,4 +22,4 @@ add_library( ${MAX_SDK_INCLUDES}/common/commonsyms.c ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/dllexample/CMakeLists.txt b/source/advanced/dllexample/CMakeLists.txt index 9fa7dcb1..d2cb5999 100755 --- a/source/advanced/dllexample/CMakeLists.txt +++ b/source/advanced/dllexample/CMakeLists.txt @@ -1,7 +1,7 @@ project(dllexample) if (NOT DEFINED C74_SUPPORT_DIR) - set(C74_SUPPORT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../c74support) + set(C74_SUPPORT_DIR ${CMAKE_CURRENT_LIST_DIR}/../../max-sdk-base/c74support) endif () message(STATUS ${C74_SUPPORT_DIR}) diff --git a/source/advanced/dllexample/dllcounter/CMakeLists.txt b/source/advanced/dllexample/dllcounter/CMakeLists.txt index 3dbec2bc..6930989e 100755 --- a/source/advanced/dllexample/dllcounter/CMakeLists.txt +++ b/source/advanced/dllexample/dllcounter/CMakeLists.txt @@ -1,9 +1,13 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL ############################################################# +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../../externals") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + include_directories( "${MAX_SDK_INCLUDES}" "${MAX_SDK_MSP_INCLUDES}" @@ -30,4 +34,4 @@ target_link_libraries( mydll # add project to ensure that it's a dependency ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/dllexample/dllreport/CMakeLists.txt b/source/advanced/dllexample/dllreport/CMakeLists.txt index 3dbec2bc..6930989e 100755 --- a/source/advanced/dllexample/dllreport/CMakeLists.txt +++ b/source/advanced/dllexample/dllreport/CMakeLists.txt @@ -1,9 +1,13 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL ############################################################# +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../../externals") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") + include_directories( "${MAX_SDK_INCLUDES}" "${MAX_SDK_MSP_INCLUDES}" @@ -30,4 +34,4 @@ target_link_libraries( mydll # add project to ensure that it's a dependency ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/dllexample/mydll.cpp b/source/advanced/dllexample/mydll.cpp index 0674abd1..2b5fccfa 100644 --- a/source/advanced/dllexample/mydll.cpp +++ b/source/advanced/dllexample/mydll.cpp @@ -18,7 +18,7 @@ static int s_count = 0; void mydll_init(void) { if (!s_initialized) { - post("initialized mydll"); + object_post(NULL, "initialized mydll"); s_initialized = true; } } diff --git a/source/advanced/filebyte/CMakeLists.txt b/source/advanced/filebyte/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/filebyte/CMakeLists.txt +++ b/source/advanced/filebyte/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/linky/CMakeLists.txt b/source/advanced/linky/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/linky/CMakeLists.txt +++ b/source/advanced/linky/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/simpleparallel/CMakeLists.txt b/source/advanced/simpleparallel/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/simpleparallel/CMakeLists.txt +++ b/source/advanced/simpleparallel/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/simplethread/CMakeLists.txt b/source/advanced/simplethread/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/simplethread/CMakeLists.txt +++ b/source/advanced/simplethread/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/advanced/threadpool/CMakeLists.txt b/source/advanced/threadpool/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/advanced/threadpool/CMakeLists.txt +++ b/source/advanced/threadpool/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/dspstress~/CMakeLists.txt b/source/audio/dspstress~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/dspstress~/CMakeLists.txt +++ b/source/audio/dspstress~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/fftinfo~/CMakeLists.txt b/source/audio/fftinfo~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/fftinfo~/CMakeLists.txt +++ b/source/audio/fftinfo~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/index~/CMakeLists.txt b/source/audio/index~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/index~/CMakeLists.txt +++ b/source/audio/index~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/lores~/CMakeLists.txt b/source/audio/lores~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/lores~/CMakeLists.txt +++ b/source/audio/lores~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/lores~/lores~.c b/source/audio/lores~/lores~.c index 3d70b3e3..3ecf7e4c 100755 --- a/source/audio/lores~/lores~.c +++ b/source/audio/lores~/lores~.c @@ -62,9 +62,12 @@ C74_EXPORT void ext_main(void *r) CLASS_ATTR_DOUBLE(c, "cutoff", 0, t_lores, l_freq); CLASS_ATTR_BASIC(c, "cutoff", 0); CLASS_ATTR_LABEL(c, "cutoff", 0, "Cutoff Frequency"); + CLASS_ATTR_ALIAS(c, "cutoff", "freq"); CLASS_ATTR_ACCESSORS(c, "cutoff", 0, lores_attr_setcutoff); + CLASS_ATTR_DOUBLE(c, "resonance", 0, t_lores, l_r); CLASS_ATTR_BASIC(c, "resonance", 0); + CLASS_ATTR_ALIAS(c, "resonance", "q"); CLASS_ATTR_LABEL(c, "resonance", 0, "Resonance"); CLASS_ATTR_ACCESSORS(c, "resonance", 0, lores_attr_setresonance); class_dspinit(c); @@ -282,9 +285,11 @@ void lores_float(t_lores *x, double f) if (in == 1) { x->l_freq = f; + object_attr_touch((t_object *)x, gensym("cutoff")); lores_calc(x); } else if (in == 2) { x->l_r = f >= 1.0 ? 1 - 1E-20 : f; + object_attr_touch((t_object *)x, gensym("resonance")); lores_calc(x); } } diff --git a/source/audio/pictmeter~/CMakeLists.txt b/source/audio/pictmeter~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/pictmeter~/CMakeLists.txt +++ b/source/audio/pictmeter~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/plussz~/CMakeLists.txt b/source/audio/plussz~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/plussz~/CMakeLists.txt +++ b/source/audio/plussz~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/simplemsp~/CMakeLists.txt b/source/audio/simplemsp~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/simplemsp~/CMakeLists.txt +++ b/source/audio/simplemsp~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/simpwave~/CMakeLists.txt b/source/audio/simpwave~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/simpwave~/CMakeLists.txt +++ b/source/audio/simpwave~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/split~/CMakeLists.txt b/source/audio/split~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/split~/CMakeLists.txt +++ b/source/audio/split~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/audio/times~/CMakeLists.txt b/source/audio/times~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/audio/times~/CMakeLists.txt +++ b/source/audio/times~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/attrtester/CMakeLists.txt b/source/basics/attrtester/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/attrtester/CMakeLists.txt +++ b/source/basics/attrtester/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/delay2/CMakeLists.txt b/source/basics/delay2/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/delay2/CMakeLists.txt +++ b/source/basics/delay2/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/dummy/CMakeLists.txt b/source/basics/dummy/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/dummy/CMakeLists.txt +++ b/source/basics/dummy/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/plussz/CMakeLists.txt b/source/basics/plussz/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/plussz/CMakeLists.txt +++ b/source/basics/plussz/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/plussz2/CMakeLists.txt b/source/basics/plussz2/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/plussz2/CMakeLists.txt +++ b/source/basics/plussz2/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/simplejs/CMakeLists.txt b/source/basics/simplejs/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/simplejs/CMakeLists.txt +++ b/source/basics/simplejs/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/simplemax/CMakeLists.txt b/source/basics/simplemax/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/simplemax/CMakeLists.txt +++ b/source/basics/simplemax/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/simpletext/CMakeLists.txt b/source/basics/simpletext/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/simpletext/CMakeLists.txt +++ b/source/basics/simpletext/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/basics/urner/CMakeLists.txt b/source/basics/urner/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/basics/urner/CMakeLists.txt +++ b/source/basics/urner/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/c74support/jit-includes/JitterAPI.framework/JitterAPI b/source/c74support/jit-includes/JitterAPI.framework/JitterAPI deleted file mode 120000 index 85fbb557..00000000 --- a/source/c74support/jit-includes/JitterAPI.framework/JitterAPI +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/JitterAPI \ No newline at end of file diff --git a/source/c74support/jit-includes/JitterAPI.framework/Resources b/source/c74support/jit-includes/JitterAPI.framework/Resources deleted file mode 120000 index 953ee36f..00000000 --- a/source/c74support/jit-includes/JitterAPI.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/JitterAPI b/source/c74support/jit-includes/JitterAPI.framework/Versions/A/JitterAPI deleted file mode 100755 index d639b492..00000000 Binary files a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/JitterAPI and /dev/null differ diff --git a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/Info.plist b/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index babef17d..00000000 --- a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - JitterAPI - CFBundleIconFile - - CFBundleIdentifier - com.cycling74.JitterAPI - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.7.0 - CFBundleSignature - ???? - CFBundleVersion - 1.7.0 - CSResourcesFileMapped - - - diff --git a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/JitterAPI.rsrc b/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/JitterAPI.rsrc deleted file mode 100644 index 7c9986b9..00000000 Binary files a/source/c74support/jit-includes/JitterAPI.framework/Versions/A/Resources/JitterAPI.rsrc and /dev/null differ diff --git a/source/c74support/jit-includes/JitterAPI.framework/Versions/Current b/source/c74support/jit-includes/JitterAPI.framework/Versions/Current deleted file mode 120000 index 8c7e5a66..00000000 --- a/source/c74support/jit-includes/JitterAPI.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/source/c74support/jit-includes/jit.bin.h b/source/c74support/jit-includes/jit.bin.h deleted file mode 100755 index 76e83a76..00000000 --- a/source/c74support/jit-includes/jit.bin.h +++ /dev/null @@ -1,105 +0,0 @@ - -/* - - jit.bin.h - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - - jit binary file format(similar to AIFF/RIFF) - - All multibyte integers/floats are stored in BigEndian format. - - All chunks have: - - ckid - 4 byte char string - cksize - 32 bit int chunk size - -*/ - -#ifndef _JIT_BIN_H_ -#define _JIT_BIN_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_sysfile.h" -#include "max_types.h" -#include "jit.error.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#define JIT_BIN_MAC_TYPE FOUR_CHAR('JiT!') - -#define JIT_BIN_VERSION_1 0x3C93DC80 //2002/03/17 00:00:00 UTC - -#define JIT_BIN_CHUNK_CONTAINER FOUR_CHAR('FORM') -#define JIT_BIN_CHUNK_FORMAT_VERSION FOUR_CHAR('FVER') -#define JIT_BIN_CHUNK_MATRIX FOUR_CHAR('MTRX') - -#define JIT_BIN_FORMAT FOUR_CHAR('JIT!') - -#define JIT_BIN_FILESIZE_UNKNOWN 0xFFFFFFFF - -#define JIT_BIN_TYPE_CHAR FOUR_CHAR('CHAR') -#define JIT_BIN_TYPE_LONG FOUR_CHAR('LONG') -#define JIT_BIN_TYPE_FLOAT32 FOUR_CHAR('FL32') -#define JIT_BIN_TYPE_FLOAT64 FOUR_CHAR('FL64') - -#define JIT_BIN_HEADER_SIZE (6*SIZE_INT32) -#define JIT_BIN_CKINFO_SIZE (2*SIZE_INT32) - -typedef struct _jit_bin_chunk_container -{ - t_uint32 ckid; //'FORM' - t_int32 cksize; //filesize - t_uint32 formtype; //'JIT!' -} t_jit_bin_chunk_container; - -typedef struct _jit_bin_chunk_format_version -{ - t_uint32 ckid; //'FVER' - t_int32 cksize; //12 - t_uint32 vers; //timestamp -} t_jit_bin_chunk_format_version; - -typedef struct _jit_bin_chunk_matrix -{ - t_uint32 ckid; //'MTRX' - t_int32 cksize; //varies(should be equal to 24+(4*dimcount)+(typesize*planecount*totalpoints)) - t_int32 offset; //data offset(should be equal to 24+(4*dimcount)) - t_uint32 type; //'CHAR','LONG','FL32','FL64' - t_int32 planecount; - t_int32 dimcount; - t_int32 dim[1]; -} t_jit_bin_chunk_matrix; - - -//later we can add things like variable/value pairs, attributes, -//time code, comments, metadata, atom lists, audio, etc. - -t_jit_err jit_bin_read_header(t_filehandle fh, t_uint32 *version, t_int32 *filesize); -t_jit_err jit_bin_read_chunk_info(t_filehandle fh, t_uint32 *ckid, t_int32 *cksize); -t_jit_err jit_bin_read_matrix(t_filehandle fh, void *matrix); - -t_jit_err jit_bin_write_header(t_filehandle fh, t_int32 filesize); -t_jit_err jit_bin_write_matrix(t_filehandle fh, void *matrix); - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif //_JIT_BIN_H_ diff --git a/source/c74support/jit-includes/jit.byteorder.h b/source/c74support/jit-includes/jit.byteorder.h deleted file mode 100755 index 954b1187..00000000 --- a/source/c74support/jit-includes/jit.byteorder.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - jit.byteorder.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_BYTEORDER_H__ -#define __JIT_BYTEORDER_H__ - -#include "ext_byteorder.h" - -#if (defined(WIN32) || TARGET_RT_LITTLE_ENDIAN || C74_LITTLE_ENDIAN || __i386__) -#define JIT_LITTLE_ENDIAN -#else -#define JIT_BIG_ENDIAN -#endif - -#define SWAP16(x) ((t_int16)(((((t_uint16)(x))>>8)&0x00ff)+((((t_uint16)(x))<<8)&0xff00))) -#define SWAP32(x) ((t_int32)(((((t_uint32)(x))>>24L)&0x000000ff)+((((t_uint32)(x))>>8L)&0x0000ff00)+ \ -((((t_uint32)(x))<<24L)&0xff000000)+((((t_uint32)(x))<<8L)&0x00ff0000))) -#define SWAPF32 swapf32 -#define SWAPF64 swapf64 -#define SWAPF32_PTR swap_pointer_32 -#define SWAPF64_PTR swap_pointer_64 -#define SWAPF32_PTR_TO_PTR swap_pointer_32_copy -#define SWAPF64_PTR_TO_PTR swap_pointer_64_copy -#define SWAPF32_FROM_PTR swap_pointer_32_to_float32 -#define SWAPF64_FROM_PTR swap_pointer_64_to_float64 - -#ifdef JIT_BIG_ENDIAN -#define LE_I16(x) SWAP16(x) -#define LE_I32(x) SWAP32(x) -#define LE_F32(x) SWAPF32(x) -#define LE_F64(x) SWAPF64(x) -#define LE_F32_PTR(x) SWAPF32_PTR((unsigned char *)(x)) -#define LE_F64_PTR(x) SWAPF64_PTR((unsigned char *)(x)) -#define LE_F32_FROM_PTR(x) SWAPF32_FROM_PTR((unsigned char *)(x)) -#define LE_F64_FROM_PTR(x) SWAPF64_FROM_PTR((unsigned char *)(x)) -#define LE_F32_PTR_TO_PTR(x,y) SWAPF32_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define LE_F64_PTR_TO_PTR(x,y) SWAPF64_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define BE_I16(x) (x) -#define BE_I32(x) (x) -#define BE_F32_PTR(x) -#define BE_F64_PTR(x) -#define BE_F32_FROM_PTR(x) (*(float *)(x)) -#define BE_F64_FROM_PTR(x) (*(double *)(x)) -#define BE_F32_PTR_TO_PTR(x,y) ((*(float *)(y))=(*(float *)(x))) -#define BE_F64_PTR_TO_PTR(x,y) ((*(double *)(y))=(*(double *)(x))) -#define FOUR_CHAR(x) (x) -#else -#define LE_I16(x) (x) -#define LE_I32(x) (x) -#define LE_F32(x) (x) -#define LE_F64(x) (x) -#define LE_F32_PTR(x) -#define LE_F64_PTR(x) -#define LE_F32_FROM_PTR(x) (*(float *)(x)) -#define LE_F64_FROM_PTR(x) (*(double *)(x)) -#define LE_F32_PTR_TO_PTR(x,y) ((*(float *)(y))=(*(float *)(x))) -#define LE_F64_PTR_TO_PTR(x,y) ((*(double *)(y))=(*(double *)(x))) -#define BE_I16(x) SWAP16(x) -#define BE_I32(x) SWAP32(x) -#define BE_F32_PTR(x) SWAPF32_PTR((unsigned char *)(x)) -#define BE_F64_PTR(x) SWAPF64_PTR((unsigned char *)(x)) -#define BE_F32_FROM_PTR(x) SWAPF32_FROM_PTR((unsigned char *)(x)) -#define BE_F64_FROM_PTR(x) SWAPF64_FROM_PTR((unsigned char *)(x)) -#define BE_F32_PTR_TO_PTR(x,y) SWAPF32_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define BE_F64_PTR_TO_PTR(x,y) SWAPF64_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) - -#define FOUR_CHAR(x) (x) -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -// OBSOLETE. don't use. not safe to pass byteswapped floats in registers -float swapf32(float f); -double swapf64(double f); - -// these functions are inplace -void swap_pointer_16(unsigned char *p); -void swap_pointer_32(unsigned char *p); -void swap_pointer_64(unsigned char *p); -// these function copy from one pointer to another (src!=dst) -void swap_pointer_16_copy(unsigned char *src, unsigned char *dst); -void swap_pointer_32_copy(unsigned char *src, unsigned char *dst); -void swap_pointer_64_copy(unsigned char *src, unsigned char *dst); -// these functions return floating point values from a byteswapped pointer -float swap_pointer_32_to_float32(unsigned char *p); -double swap_pointer_64_to_float64(unsigned char *p); - - -#ifdef __cplusplus -} -#endif - -#endif // __JIT_BYTEORDER_H__ diff --git a/source/c74support/jit-includes/jit.common.h b/source/c74support/jit-includes/jit.common.h deleted file mode 100755 index 8303fd68..00000000 --- a/source/c74support/jit-includes/jit.common.h +++ /dev/null @@ -1,343 +0,0 @@ -/* - jit.common.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_COMMON_H__ -#define __JIT_COMMON_H__ - -#ifdef __cplusplus - extern "C" { -#endif // __cplusplus - -#include "ext.h" -#include "jit.platform.h" -#include "jit.error.h" -#include "jit.file.h" -#include "jit.math.h" -#include "jit.symbols.h" -#include "jit.critical.h" -#include "ext_preprocessor.h" - -#define SIZE_INT32 sizeof(t_int32) -#define SIZE_INT64 sizeof(t_int64) -#define SIZE_FLOAT32 sizeof(float) -#define SIZE_FLOAT64 sizeof(double) -#define SIZE_PTR sizeof(t_ptr_int) - -#ifndef TRUE -#define TRUE 1 -#endif -#ifndef FALSE -#define FALSE 0 -#endif - -#define JIT_ATTR_GET_OPAQUE 0x00000001 ///< private getter (all) @ingroup jitter -#define JIT_ATTR_SET_OPAQUE 0x00000002 ///< private setter (all) @ingroup jitter -#define JIT_ATTR_GET_OPAQUE_USER 0x00000100 ///< private getter (user) @ingroup jitter -#define JIT_ATTR_SET_OPAQUE_USER 0x00000200 ///< private setter (user) @ingroup jitter -#define JIT_ATTR_GET_DEFER 0x00010000 ///< defer getter (deprecated) @ingroup jitter -#define JIT_ATTR_GET_USURP 0x00020000 ///< usurp getter (deprecated) @ingroup jitter -#define JIT_ATTR_GET_DEFER_LOW 0x00040000 ///< defer getter @ingroup jitter -#define JIT_ATTR_GET_USURP_LOW 0x00080000 ///< usurp getter @ingroup jitter -#define JIT_ATTR_SET_DEFER 0x01000000 ///< defer setter (deprecated) @ingroup jitter -#define JIT_ATTR_SET_USURP 0x02000000 ///< usurp setter (deprecated) @ingroup jitter -#define JIT_ATTR_SET_DEFER_LOW 0x04000000 ///< defer setter @ingroup jitter -#define JIT_ATTR_SET_USURP_LOW 0x08000000 ///< usurp setter @ingroup jitter - -// t_jit_matrix_info flags -#define JIT_MATRIX_DATA_HANDLE 0x00000002 ///< data is handle @ingroup jitter -#define JIT_MATRIX_DATA_REFERENCE 0x00000004 ///< data is reference to outside memory @ingroup jitter -#define JIT_MATRIX_DATA_PACK_TIGHT 0x00000008 ///< data is tightly packed (doesn't use standard 16 byte alignment) @ingroup jitter -#define JIT_MATRIX_DATA_FLAGS_USE 0x00008000 /**< necessary if using handle/reference data flags when creating @ingroup jitter - * jit_matrix, however, it is never stored in matrix */ - -#define JIT_MATRIX_MAX_DIMCOUNT 32 ///< maximum dimension count @ingroup jitter -#define JIT_MATRIX_MAX_PLANECOUNT 32 ///< maximum plane count @ingroup jitter - -// t_matrix_conv_info flags @ingroup jitter -#define JIT_MATRIX_CONVERT_CLAMP 0x00000001 ///< not currently used @ingroup jitter -#define JIT_MATRIX_CONVERT_INTERP 0x00000002 ///< use interpolation @ingroup jitter -#define JIT_MATRIX_CONVERT_SRCDIM 0x00000004 ///< use source dimensions @ingroup jitter -#define JIT_MATRIX_CONVERT_DSTDIM 0x00000008 ///< use destination dimensions @ingroup jitter - -typedef unsigned long ulong; -typedef unsigned int uint; -typedef unsigned short ushort; -typedef unsigned char uchar; - -#include "jit.op.h" -#include "jit.linklist.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** - * Common attribute struct. - * Shared by all built in attribute classes. - * - * @ingroup attrmod - */ -typedef struct _jit_attr -{ - t_jit_object ob; ///< common object header - t_symbol *name; ///< attribute name - t_symbol *type; ///< attribute type (char, long, float32, float64, symbol, atom, or obj) - long flags; ///< flags for public/private get/set methods - method get; ///< override default get method - method set; ///< override default set method - void *filterget; ///< filterobject for get method - void *filterset; ///< filterobject for set method - void *reserved; ///< for future use -} t_jit_attr; - -/** - * Matrix information struct. - * Used to get/set multiple matrix attributes at once. - * - * @ingroup matrixfun - */ -typedef struct _jit_matrix_info -{ - long size; ///< in bytes (0xFFFFFFFF=UNKNOWN) - t_symbol *type; ///< primitifve type (char, long, float32, or float64) - long flags; ///< flags to specify data reference, handle, or tightly packed - long dimcount; ///< number of dimensions - long dim[JIT_MATRIX_MAX_DIMCOUNT]; ///< dimension sizes - long dimstride[JIT_MATRIX_MAX_DIMCOUNT]; ///< stride across dimensions in bytes - long planecount; ///< number of planes -} t_jit_matrix_info; - - -/** - * Matrix conversion struct. - * Used to copy data from one matrix to another with special characteristics. - * - * @ingroup matrixfun - */ -typedef struct _matrix_conv_info -{ - long flags; ///< flags for whether or not to use interpolation, or source/destination dimensions - long planemap[JIT_MATRIX_MAX_PLANECOUNT]; ///< plane mapping - long srcdimstart[JIT_MATRIX_MAX_DIMCOUNT]; ///< source dimension start - long srcdimend[JIT_MATRIX_MAX_DIMCOUNT]; ///< source dimension end - long dstdimstart[JIT_MATRIX_MAX_DIMCOUNT]; ///< destination dimension start - long dstdimend[JIT_MATRIX_MAX_DIMCOUNT]; ///< destination dimension end -} t_matrix_conv_info; - -#include "jit.parallel.utils.h" - - -t_atom_long jit_method_true(void *x); -t_atom_long jit_method_false(void *x); - -void *jit_class_new(C74_CONST char *name, method mnew, method mfree, long size, ...); -t_jit_err jit_class_free(void *c); -t_jit_err jit_class_register(void *c); -t_jit_err jit_class_addmethod(void *c, method m, const char *name, ...); -t_jit_err jit_class_addattr(void *c, t_jit_object *attr); -t_jit_err jit_class_addadornment(void *c, t_jit_object *o); -t_jit_err jit_class_addinterface(void *c, void *interfaceclass, long byteoffset, long flags); -void *jit_class_adornment_get(void *c, t_symbol *classname); -t_symbol *jit_class_nameget(void *c); -void *jit_class_findbyname(t_symbol *classname); -long jit_object_classname_compare(void *x, t_symbol *name); -method jit_class_method(void *c, t_symbol *methodname); -void *jit_class_attr_get(void *c, t_symbol *attrname); -t_jit_err jit_class_addtypedwrapper(void *c, method m, char *name, ...); -t_messlist *jit_class_typedwrapper_get(void *c, t_symbol *s); -t_jit_err jit_class_method_addargsafe(void *c, char *argname, char *methodname); -t_symbol *jit_class_method_argsafe_get(void *c, t_symbol *s); - -void *jit_object_alloc(void *c); -void *jit_object_new(t_symbol *classname, ...); -#ifdef C74_X64 -#define jit_object_new(...) C74_VARFUN(jit_object_new_imp, __VA_ARGS__) -#endif -void *jit_object_new_imp(void *classname, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8, void *dummy); -t_jit_err jit_object_free(void *x); -void *jit_object_method(void *x, t_symbol *s, ...) JIT_WEAKLINK; -#ifdef C74_X64 -#define jit_object_method(...) C74_VARFUN(jit_object_method_imp, __VA_ARGS__) -#endif -void *jit_object_method_imp(void *x, void *s, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); -void *jit_object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); -method jit_object_getmethod(void *x, t_symbol *s); -t_symbol *jit_object_classname(void *x); -void * jit_object_register(void *x, t_symbol *s); -void *jit_object_findregistered(t_symbol *s); -t_symbol *jit_object_findregisteredbyptr(void *x); -t_jit_err jit_object_unregister(void *x); -void *jit_object_attach(t_symbol *s, void *x); -t_jit_err jit_object_detach(t_symbol *s, void *x); -t_jit_err jit_object_notify(void *x, t_symbol *s, void *data); -void *jit_object_class(void *x); -long jit_object_attr_usercanget(void *x,t_symbol *s); -long jit_object_attr_usercanset(void *x,t_symbol *s); -void *jit_object_attr_get(void *x, t_symbol *attrname); -t_jit_err jit_object_importattrs(void *x, t_symbol *s, long argc, t_atom *argv); -t_jit_err jit_object_exportattrs(void *x, t_symbol *s, long argc, t_atom *argv); -t_jit_err jit_object_exportsummary(void *x, t_symbol *s, long argc, t_atom *argv); -t_symbol *jit_object_method_argsafe_get(void *x, t_symbol *s); - -//memory functions -void *jit_getbytes(long size); -void jit_freebytes(void *ptr,long size); -void **jit_handle_new(long size); -void jit_handle_free(void **handle); -long jit_handle_size_get(void **handle); -t_jit_err jit_handle_size_set(void **handle, long size); -long jit_handle_lock(void **handle, long lock); -void jit_copy_bytes(void *dest, const void *src, long bytes); -long jit_freemem(void); -char *jit_newptr(long size); -void jit_disposeptr(char *ptr); - - -//atom functions -t_jit_err jit_atom_setlong(t_atom *a, t_atom_long b); -t_jit_err jit_atom_setfloat(t_atom *a, double b); -t_jit_err jit_atom_setsym(t_atom *a, t_symbol *b); -t_jit_err jit_atom_setobj(t_atom *a, void *b); -t_atom_long jit_atom_getlong(t_atom *a); -double jit_atom_getfloat(t_atom *a); -t_symbol *jit_atom_getsym(t_atom *a); -void *jit_atom_getobj(t_atom *a); -long jit_atom_getcharfix(t_atom *a); -//the following are useful for setting the values _only_ if there is an arg -//rather than setting it to 0 or _jit_sym_nothing -long jit_atom_arg_getlong(t_atom_long *c, long idx, long ac, t_atom *av); -long jit_atom_arg_getfloat(float *c, long idx, long ac, t_atom *av); -long jit_atom_arg_getdouble(double *c, long idx, long ac, t_atom *av); -long jit_atom_arg_getsym(t_symbol **c, long idx, long ac, t_atom *av); - -//matrix info utils -t_jit_err jit_matrix_info_default(t_jit_matrix_info *info); -long jit_matrix_info_typesize(t_jit_matrix_info *minfo); - -//mop utils -t_jit_err jit_mop_single_type(void *x, t_symbol *s); -t_jit_err jit_mop_single_planecount(void *x, long c); -t_jit_err jit_mop_methodall(void *x, t_symbol *s, ...); -t_jit_err jit_mop_input_nolink(void *mop, long c); -t_jit_err jit_mop_output_nolink(void *mop, long c); -t_jit_err jit_mop_ioproc_copy_adapt(void *mop, void *mop_io, void *matrix); -t_jit_err jit_mop_ioproc_copy_trunc(void *mop, void *mop_io, void *matrix); -t_jit_err jit_mop_ioproc_copy_trunc_zero(void *mop, void *mop_io, void *matrix); -t_symbol *jit_mop_ioproc_tosym(void *ioproc); - -//attr functions -long max_jit_attr_args_offset(short ac, t_atom *av); -void max_jit_attr_args(void *x, short ac, t_atom *av); -//for easy access of simple attributes -t_atom_long jit_attr_getlong(void *x, t_symbol *s); -t_jit_err jit_attr_setlong(void *x, t_symbol *s, t_atom_long c); -t_atom_float jit_attr_getfloat(void *x, t_symbol *s); -t_jit_err jit_attr_setfloat(void *x, t_symbol *s, t_atom_float c); -t_symbol *jit_attr_getsym(void *x, t_symbol *s); -t_jit_err jit_attr_setsym(void *x, t_symbol *s, t_symbol *c); -long jit_attr_getlong_array(void *x, t_symbol *s, long max, t_atom_long *vals); -t_jit_err jit_attr_setlong_array(void *x, t_symbol *s, long count, t_atom_long *vals); -long jit_attr_getchar_array(void *x, t_symbol *s, long max, uchar *vals); -t_jit_err jit_attr_setchar_array(void *x, t_symbol *s, long count, uchar *vals); -long jit_attr_getfloat_array(void *x, t_symbol *s, long max, float *vals); -t_jit_err jit_attr_setfloat_array(void *x, t_symbol *s, long count, float *vals); -long jit_attr_getdouble_array(void *x, t_symbol *s, long max, double *vals); -t_jit_err jit_attr_setdouble_array(void *x, t_symbol *s, long count, double *vals); -long jit_attr_getsym_array(void *x, t_symbol *s, long max, t_symbol **vals); -t_jit_err jit_attr_setsym_array(void *x, t_symbol *s, long count, t_symbol **vals); - -//attr filters util -t_jit_err jit_attr_addfilterset_clip(void *x, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilterset_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilterget_clip(void *x, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilterget_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilter_clip(void *x, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilter_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); -t_jit_err jit_attr_addfilterset_proc(void *x, method proc); -t_jit_err jit_attr_addfilterget_proc(void *x, method proc); - -// attr functions for assisting in user level notifications when setting attributes from C code -t_jit_err jit_attr_user_setvalueof(void *x, t_symbol *s, long ac, t_atom *av); -t_jit_err jit_attr_user_touch(void *x, t_symbol *s); -t_jit_err jit_attr_user_touch_parse(void *x, char *attrnames); -t_jit_err jit_object_addattr(void *x, t_object *attr); -t_jit_err jit_object_deleteattr(void *x, t_symbol *attrname); - -void jit_attr_cleanall(t_object *x); -void jit_attr_clean(t_object *x, t_symbol *name); - -//more util functions -void jit_rand_setseed(long n); -long jit_rand(void); -t_symbol *jit_symbol_unique(); -void jit_error_code(void *x,t_jit_err v); //interrupt safe -void jit_error_sym(void *x,t_symbol *s); //interrupt safe -void jit_post_sym(void *x,t_symbol *s); //interrupt safe - -t_jit_err jit_err_from_max_err(t_max_err err); - -// jit_matrix - type = 0, jit_gl_texture type = 1 -t_jit_err jit_video_recreate_outlet(t_object *maxob, long type, void **curoutlet); - -//load test - -#ifdef __APPLE_CC__ -#define IS_JIT_LIBRARY_AVAILABLE (jit_object_method != NULL) -#else -#define IS_JIT_LIBRARY_AVAILABLE (jit_object_method != NULL) -#endif - -//util macros -#ifndef CLIP_ASSIGN -#define CLIP_ASSIGN(x,a,b) (x)=(x)<(a)?(a):(x)>(b)?(b):(x) -#endif - -#ifndef CLAMP -#define CLAMP(x,a,b) (x)<(a)?(a):(x)>(b)?(b):(x) -#endif - -#ifndef MAX -#define MAX(x,y) ((x)>(y)?(x):(y)) -#endif - -#ifndef MIN -#define MIN(x,y) ((x)<(y)?(x):(y)) -#endif - -#ifndef ABS -#define ABS(x) ((x)<0?-(x):(x)) -#endif - -#ifndef SET_FLAG -#define SET_FLAG(word, flag) ((word) |= (flag)) -#endif - -#ifndef CLEAR_FLAG -#define CLEAR_FLAG(word, flag) ((word) &= ~(flag)) -#endif - -#ifndef GET_FLAG -#define GET_FLAG(word, flag) ((word) & (flag)) -#endif - -// include obex after all jit includes -#include "ext_obex.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif // __cplusplus - -#endif // __JIT_COMMON_H__ diff --git a/source/c74support/jit-includes/jit.cpost.h b/source/c74support/jit-includes/jit.cpost.h deleted file mode 100644 index 1afa3c3c..00000000 --- a/source/c74support/jit-includes/jit.cpost.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - jit.cpost.h - - Copyright 2003 - Cycling '74 - Jeremy Bernstein jeremy@bootsquad.com - -*/ - -#ifndef __JIT_CPOST_H__ -#define __JIT_CPOST_H__ - - -#ifdef __cplusplus -extern "C" { -#endif - -void jit_cpost(const char *format, ...); - - -#ifdef __cplusplus -} -#endif - - -#endif //__JIT_CPOST_H__ diff --git a/source/c74support/jit-includes/jit.critical.h b/source/c74support/jit-includes/jit.critical.h deleted file mode 100644 index 81495835..00000000 --- a/source/c74support/jit-includes/jit.critical.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - jit.critical.h - - Copyright 2001-2003 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_CRITICAL_H__ -#define __JIT_CRITICAL_H__ - - -#ifdef __cplusplus -extern "C" { -#endif - -void jit_global_critical_enter(void); -void jit_global_critical_exit(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.cubicspline.h b/source/c74support/jit-includes/jit.cubicspline.h deleted file mode 100644 index 5eb2ce11..00000000 --- a/source/c74support/jit-includes/jit.cubicspline.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef _JIT_CUBICSPLINE_H_ -#define _JIT_CUBICSPLINE_H_ - -/* - * Copyright 2001-2005 - Cycling '74 - * Derek Gerstmann - derek@cycling74.com - * - * Cubic spline evaluation and utility methods - * - */ - -// -------------------------------------------------------------------------- - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "jit.error.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -typedef t_int32 t_jit_cubicspline_basismatrix_fixed[4][4]; -typedef float t_jit_cubicspline_basismatrix_float32[4][4]; -typedef double t_jit_cubicspline_basismatrix_float64[4][4]; - -// -------------------------------------------------------------------------- - -extern t_symbol *ps_jit_cubicspline_basisname_bezier; -extern t_symbol *ps_jit_cubicspline_basisname_bspline; -extern t_symbol *ps_jit_cubicspline_basisname_catmullrom; -extern t_symbol *ps_jit_cubicspline_basisname_hermite; -extern t_symbol *ps_jit_cubicspline_basisname_power; - - -// -------------------------------------------------------------------------- - -t_jit_err jit_cubicspline_fillbasis_fixed( - t_symbol *name, t_jit_cubicspline_basismatrix_fixed *matrix, - t_int32 *stepcount); - -t_jit_err jit_cubicspline_fillbasis_float32( - t_symbol *name, t_jit_cubicspline_basismatrix_float32 *matrix, - t_int32 *stepcount); - -t_jit_err jit_cubicspline_fillbasis_float64( - t_symbol *name, t_jit_cubicspline_basismatrix_float64 *matrix, - t_int32 *stepcount); - -t_int32 jit_cubicspline_general_eval_fixed( - t_int32 val, t_int32 stepcount, t_int32 knotcount, t_int32 *knots, - t_jit_cubicspline_basismatrix_fixed matrix); - -float jit_cubicspline_general_eval_float32( - float val, t_int32 stepcount, t_int32 knotcount, float *knots, - t_jit_cubicspline_basismatrix_float32 matrix); - -double jit_cubicspline_general_eval_float64( - double val, t_int32 stepcount, t_int32 knotcount, double *knots, - t_jit_cubicspline_basismatrix_float64 matrix); - -// -------------------------------------------------------------------------- - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.error.h b/source/c74support/jit-includes/jit.error.h deleted file mode 100755 index 2b772157..00000000 --- a/source/c74support/jit-includes/jit.error.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - jit.error.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_ERROR_H__ -#define __JIT_ERROR_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "jit.byteorder.h" - -typedef t_atom_long t_jit_err; - -//errors -#define JIT_ERR_NONE 0 -#define JIT_ERR_GENERIC FOUR_CHAR('EROR') -#define JIT_ERR_INVALID_OBJECT FOUR_CHAR('INOB') -#define JIT_ERR_OBJECT_BUSY FOUR_CHAR('OBSY') -#define JIT_ERR_OUT_OF_MEM FOUR_CHAR('OMEM') -#define JIT_ERR_INVALID_PTR FOUR_CHAR('INVP') -#define JIT_ERR_DUPLICATE FOUR_CHAR('DUPL') -#define JIT_ERR_OUT_OF_BOUNDS FOUR_CHAR('OBND') -#define JIT_ERR_INVALID_INPUT FOUR_CHAR('INVI') -#define JIT_ERR_INVALID_OUTPUT FOUR_CHAR('INVO') -#define JIT_ERR_MISMATCH_TYPE FOUR_CHAR('MSTP') -#define JIT_ERR_MISMATCH_PLANE FOUR_CHAR('MSPL') -#define JIT_ERR_MISMATCH_DIM FOUR_CHAR('MSDM') -#define JIT_ERR_MATRIX_UNKNOWN FOUR_CHAR('MXUN') -#define JIT_ERR_SUPPRESS_OUTPUT FOUR_CHAR('SPRS') -#define JIT_ERR_DATA_UNAVAILABLE FOUR_CHAR('DUVL') -#define JIT_ERR_HW_UNAVAILABLE FOUR_CHAR('HUVL') - -#ifdef __cplusplus -extern "C" { -#endif - -#define jit_catch(x) {t_jit_err _jit_catch_err; if (_jit_catch_err=(x)) { return _jit_catch_err; }} - -void jit_object_post(t_object *x, char *s, ...); -void jit_object_error(t_object *x, char *s, ...); - -#ifdef __cplusplus -} -#endif - -#endif //__JIT_ERROR_H__ diff --git a/source/c74support/jit-includes/jit.file.h b/source/c74support/jit-includes/jit.file.h deleted file mode 100644 index 77abfd02..00000000 --- a/source/c74support/jit-includes/jit.file.h +++ /dev/null @@ -1,34 +0,0 @@ - -/* - jit.file.h - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - - - platform independent file calls -*/ - -#ifndef _JIT_FILE_H_ -#define _JIT_FILE_H_ - -#include "jit.error.h" - -typedef long t_jit_fileref; - -#ifdef __cplusplus -extern "C" { -#endif - -t_jit_err jit_file_fsclose(t_jit_fileref refnum); -t_jit_err jit_file_fsread(t_jit_fileref refnum, long *count, void *bufptr); -t_jit_err jit_file_fswrite(t_jit_fileref refnum, long *count, const void *bufptr); -t_jit_err jit_file_seteof(t_jit_fileref refnum, long logeof); -t_jit_err jit_file_geteof(t_jit_fileref refnum, long *logeof); -t_jit_err jit_file_setfpos(t_jit_fileref refnum, long mode, long offset); -t_jit_err jit_file_getfpos(t_jit_fileref refnum, long *filepos); - - -#ifdef __cplusplus -} -#endif - -#endif /* _JIT_FILE_H_ */ diff --git a/source/c74support/jit-includes/jit.fixmath.h b/source/c74support/jit-includes/jit.fixmath.h deleted file mode 100755 index 823b9f43..00000000 --- a/source/c74support/jit-includes/jit.fixmath.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - jit.fixmath.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_FIXMATH_H__ -#define __JIT_FIXMATH_H__ - -#include "jit.error.h" -#include "max_types.h" - -#if MAC_VERSION -#include // we redefine some CarbonCore/FixMath.h symbols, so include early to avoid clashes -#endif - -/* the following is to account for duplicates in GXMath.h */ - -#ifdef fixed1 -#undef fixed1 -#endif -#ifdef IntToFixed -#undef IntToFixed -#endif -#ifdef FloatToFixed -#undef FloatToFixed -#endif -#ifdef FixedToInt -#undef FixedToInt -#endif -#ifdef FixedToFloat -#undef FixedToFloat -#endif - -#ifndef __MACTYPES__ -typedef t_int32 Fixed; -typedef Fixed * FixedPtr; -typedef t_int32 Fract; -typedef Fract * FractPtr; -typedef t_uint32 UnsignedFixed; -typedef UnsignedFixed * UnsignedFixedPtr; -typedef short ShortFixed; -typedef ShortFixed * ShortFixedPtr; -#endif - -#define fixed1 (1<<16L) -#define fixedhalf (1<<15L) -#define IntToFixed(x) ((Fixed)((x)<<16L)) -#define FloatToFixed(x) ((Fixed)((x) * (float)fixed1)) -#define DoubleToFixed(x) ((Fixed)((x) * (double)fixed1)) -#define FixedToInt(x) ((x)>>16L) -#define FixedToFloat(x) ((float) (x) * 1./(float)fixed1) -#define FixedToDouble(x) ((double)(x) * 1./(double)fixed1) -#define FixMul(x,y) (((y)>>8L) * ((x)>>8L)) //both are large(>1) -#define FixMul2(x,y) (((y) * ((x)>>8L))>>8L) //y is small -#define FixMul3(x,y) ((((y)>>8L) * (x))>>8L) //x is small -#define FixMul4(x,y) (((y) * (x))>>16L) //both are small - -#define FixDiv(x,y) ((((y)>>8L)!=0)?((((x)<<4L) / ((y)>>8L))<<4L):0) -#define FixedFraction(x) ((x)&0xffffL) //unsigned fraction -#define FixedFractionSigned(x) ((x)&0x8000ffffL) - -#define FixedEps ((long) 1) -#define FixedOneMinusEps (fixed1 - FixedEps) -#define FixedFrac(x) ((x) & FixedOneMinusEps) -#define FixedFloor(x) ((x) & ~FixedOneMinusEps) -#define FixedCeil(x) FixedFloor((x) + FixedOneMinusEps) -#define FixedMod2(x) ((x) & (fixed1 | FixedOneMinusEps)) - -#ifdef FixedRound -#undef FixedRound -#endif -#define FixedRound(x) ((FixedFrac(x) < fixedhalf) ? FixedFloor(x) : FixedCeil(x)) - -#endif //__JIT_FIXMATH_H__ diff --git a/source/c74support/jit-includes/jit.functor.h b/source/c74support/jit-includes/jit.functor.h deleted file mode 100644 index 0f0e2dec..00000000 --- a/source/c74support/jit-includes/jit.functor.h +++ /dev/null @@ -1,144 +0,0 @@ -/* - jit.functor.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef _JIT_FUNCTOR_H_ -#define _JIT_FUNCTOR_H_ - -#include "jit.fixmath.h" -#include "jit.common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -typedef t_int32(*(t_jit_functor_fixed_sig))(void *, t_int32, t_int32 *); -typedef float(*(t_jit_functor_float32_sig))(void *, t_int32, float *); -typedef double(*(t_jit_functor_float64_sig))(void *, t_int32, double *); - -typedef t_int32(*(t_jit_functor_fixed_scalar_sig))(void *, t_int32); -typedef float(*(t_jit_functor_float32_scalar_sig))(void *, float); -typedef double(*(t_jit_functor_float64_scalar_sig))(void *, double); - -typedef struct _jit_functor_interface -{ - t_jit_functor_fixed_sig evalfixed; - t_jit_functor_fixed_sig evalfixed_1d; - t_jit_functor_fixed_sig evalfixed_2d; - t_jit_functor_fixed_sig evalfixed_3d; - - t_jit_functor_float32_sig evalfloat32; - t_jit_functor_float32_sig evalfloat32_1d; - t_jit_functor_float32_sig evalfloat32_2d; - t_jit_functor_float32_sig evalfloat32_3d; - - t_jit_functor_float64_sig evalfloat64; - t_jit_functor_float64_sig evalfloat64_1d; - t_jit_functor_float64_sig evalfloat64_2d; - t_jit_functor_float64_sig evalfloat64_3d; - -} t_jit_functor_interface; - -typedef struct _jit_functor_wrapper -{ - t_jit_object *ob; // functor object - t_jit_functor_interface *fm; // functor methods - -} t_jit_functor_wrapper; - -// combined scalar value -typedef struct _jit_functor_combined_value -{ - t_int32 fixed; - float float32; - double float64; - -} t_jit_functor_combined_value; - -#define JIT_FUNCTOR_COMBINED_VALUE_SETALL(x,v) \ - (x).float64 = (double)(v);\ - (x).float32 = (float)(v);\ - (x).fixed = DoubleToFixed((double)(v)) - -// combined dimensional value -typedef struct _jit_functor_combined_dimvalue -{ - t_int32 fixed[JIT_MATRIX_MAX_DIMCOUNT]; - float float32[JIT_MATRIX_MAX_DIMCOUNT]; - double float64[JIT_MATRIX_MAX_DIMCOUNT]; - t_int32 dimcount; - -} t_jit_functor_combined_dimvalue; - -#define JIT_FUNCTOR_COMBINED_ARRAY_SETALL(i,x,v) \ - (x).float64[i] = (double)(v);\ - (x).float32[i] = (float)(v);\ - (x).fixed[i] = DoubleToFixed((double)(v)) - -// combined dynamic array -typedef struct _jit_functor_combined_dynarray -{ - t_int32 *fixed; - float *float32; - double *float64; - t_int32 count; - -} t_jit_functor_combined_dynarray; - - -t_jit_err jit_functor_setup_class(t_class *c, char *categoryname, char *classname); -t_jit_err jit_functor_addcategory(t_class *c, t_symbol *categoryname); -t_jit_object *jit_functor_getcategorylist(t_class *c); -t_jit_object *jit_functor_classlist_in_category(t_symbol *categoryname); -t_class *jit_functor_lookup_relaxed(t_symbol *categoryname, t_symbol *classname); -t_class *jit_functor_lookup(t_symbol *categoryname, t_symbol *classname); -t_jit_err jit_functor_new_object_with_interface(t_jit_object **ob, t_jit_functor_interface **fi, t_symbol *category, t_symbol *name); -t_jit_err jit_functor_wrapper_init(t_jit_functor_wrapper *e, t_symbol *category, t_symbol *name); -t_jit_err jit_functor_setattr(t_jit_object *x, t_symbol *s, t_int32 ac, t_atom *av); - -// utility functions -t_int32 jit_functor_eval_fixed_with_float32(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_jit_functor_float32_sig fp); -t_int32 jit_functor_eval_fixed_with_float64(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_jit_functor_float64_sig fp); -float jit_functor_eval_float32_with_fixed(t_jit_object *x, t_int32 dimcount, float *vals, t_jit_functor_fixed_sig fp); -float jit_functor_eval_float32_with_float64(t_jit_object *x, t_int32 dimcount, float *vals, t_jit_functor_float64_sig fp); -double jit_functor_eval_float64_with_fixed(t_jit_object *x, t_int32 dimcount, double *vals, t_jit_functor_fixed_sig fp); -double jit_functor_eval_float64_with_float32(t_jit_object *x, t_int32 dimcount, double *vals, t_jit_functor_float32_sig fp); - -t_int32 jit_functor_eval_fixed_with_scalar_product(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_jit_functor_fixed_scalar_sig fp); -float jit_functor_eval_float32_with_scalar_product(t_jit_object *x, t_int32 dimcount, float *vals, t_jit_functor_float32_scalar_sig fp); -double jit_functor_eval_float64_with_scalar_product(t_jit_object *x, t_int32 dimcount, double *vals, t_jit_functor_float64_scalar_sig fp); -t_int32 jit_functor_eval_fixed_with_scalar_sum(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_jit_functor_fixed_scalar_sig fp); -float jit_functor_eval_float32_with_scalar_sum(t_jit_object *x, t_int32 dimcount, float *vals, t_jit_functor_float32_scalar_sig fp); -double jit_functor_eval_float64_with_scalar_sum(t_jit_object *x, t_int32 dimcount, double *vals, t_jit_functor_float64_scalar_sig fp); - -t_int32 jit_functor_eval_fixed_with_lut_wrap_product(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_int32 *fixlut); -t_int32 jit_functor_eval_fixed_with_lut_wrap_sum(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_int32 *fixlut); -t_int32 jit_functor_eval_fixed_with_lut_clip_product(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_int32 *fixlut); -t_int32 jit_functor_eval_fixed_with_lut_clip_sum(t_jit_object *x, t_int32 dimcount, t_int32 *vals, t_int32 *fixlut); - -// dynamic array utility functions -t_jit_err jit_functor_combined_dynarray_init(t_jit_functor_combined_dynarray *x, t_int32 count); -t_jit_err jit_functor_combined_dynarray_destroy(t_jit_functor_combined_dynarray *x); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif //_JIT_FUNCTOR_H_ - diff --git a/source/c74support/jit-includes/jit.gl.cache.h b/source/c74support/jit-includes/jit.gl.cache.h deleted file mode 100644 index c7408f2a..00000000 --- a/source/c74support/jit-includes/jit.gl.cache.h +++ /dev/null @@ -1,112 +0,0 @@ -/* - * jit.gl.cache.h - * - * Internal data structure for storing cached geometric data. - * - */ - -// -------------------------------------------------------------------------------- - -#ifndef JIT_GL_MESH_CACHE_H -#define JIT_GL_MESH_CACHE_H - -#include "jit.gl.h" - -/*************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -#define JIT_GL_MESH_CACHE_NONE 0 -#define JIT_GL_MESH_CACHE_AUTO 1 -#define JIT_GL_MESH_CACHE_DISPLAYLIST 2 -#define JIT_GL_MESH_CACHE_VERTEXARRAY 3 -#define JIT_GL_MESH_CACHE_VERTEXBUFFER 4 -#define JIT_GL_MESH_CACHE_DEFAULT_GROW 64 - -#define JIT_SYM_IF(x) ((x) && (x) != _jit_sym_nothing && (x)->s_name) -#define JIT_SYM_SAFECSTR(x) ((JIT_SYM_IF(x)) ? (x)->s_name : "" ) - -// -------------------------------------------------------------------------------- - -typedef struct _jit_gl_cache { - void *data; // raw data values - long bytes; // number of allocated bytes - long manage; // flag to manage data creation/deletion - long type; // type of cached data (VERTEX/NORMAL/etc) - long buffertype; // type of buffer (ARRAY/ELEMENT) - long datatype; // enumerated datatype prim - long datasize; // sizeof datatype - long enumtype; // type of geometry (quad, triangles, line) - long geomsize; // size of geometry primitive (4=quad, 3=triangle, 2=line) - long elements; // total elements - long drawcount; // number of draw submissions - long drawsize; // size of draw submission - long count; // number of coordinates - long coords; // coordinate dimensions (1-4) - long stride; // stride length between elements - long start; // start index - long end; // end index - //long mode; // cache mode (STATIC/DYNAMIC) - long used; // used flag - long update; // update flag - long capacity; // allocated element count - long grow; // resize amount - long id; // id for cached data - -} t_jit_gl_cache; - -// -------------------------------------------------------------------------------- - -extern t_symbol *ps_jit_gl_cache_none; -extern t_symbol *ps_jit_gl_cache_auto; -extern t_symbol *ps_jit_gl_cache_var; -extern t_symbol *ps_jit_gl_cache_vbo; -extern t_symbol *ps_jit_gl_cache_dl; -extern t_symbol *ps_jit_gl_cache_vertexarray; -extern t_symbol *ps_jit_gl_cache_vertexbuffer; -extern t_symbol *ps_jit_gl_cache_displaylist; - -// -------------------------------------------------------------------------------- - -t_jit_err jit_gl_cache_init(void); -t_jit_gl_cache * jit_gl_cache_new(long count, long coords, long datatype); -void jit_gl_cache_free(t_jit_gl_cache *x); -t_jit_err jit_gl_cache_clear(t_jit_gl_cache *x); -t_jit_err jit_gl_cache_buffer_destroy(t_jit_gl_cache *x); -t_jit_err jit_gl_cache_destroy(t_jit_gl_cache *x); -t_jit_err jit_gl_cache_reset(t_jit_gl_cache *x); -long jit_gl_cache_compare(t_jit_gl_cache *x, long a, long b, double epsilon); -t_jit_err jit_gl_cache_weld(t_jit_gl_cache *x, double epsilon); -t_jit_err jit_gl_cache_grow(t_jit_gl_cache *x, long bytes, long copy); -t_jit_err jit_gl_cache_resize(t_jit_gl_cache *x, long elements, long coords, long datatype, long copy); -t_jit_err jit_gl_cache_append(t_jit_gl_cache *x, char *data, long count, long coords, long datatype); -t_jit_err jit_gl_cache_replace(t_jit_gl_cache *x, long index, char *data, long count, long coords, long datatype); -GLenum jit_gl_cache_datatype_from_symbol(t_symbol *s); -long jit_gl_cache_datasize_from_datatype(GLenum e); - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - - -#endif // JIT_GL_MESH_CACHE_H diff --git a/source/c74support/jit-includes/jit.gl.chunk.h b/source/c74support/jit-includes/jit.gl.chunk.h deleted file mode 100644 index 6ec11d65..00000000 --- a/source/c74support/jit-includes/jit.gl.chunk.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2001-2005 - Cycling '74 - * Randall Jones - rej@2uptech.com - * - * OpenGL Chunk structure used to store one gl-command's-worth of data, - * in a format which can be passed easily to glDrawRangeElements - */ - -/****************************************************************************/ - -#ifndef JIT_GL_CHUNK_H -#define JIT_GL_CHUNK_H - -/****************************************************************************/ - -#include "jit.gl.h" - -/*************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -/** - * t_jit_glchunk is a public structure to store one gl-command's-worth of data, - * in a format which can be passed easily to glDrawRangeElements, and matrixoutput. - * - */ -typedef struct _jit_glchunk { - t_symbol * prim; ///< drawing primitive. "tri_strip", "tri", "quads", "quad_grid", etc. - t_jit_object * m_vertex; ///< vertex matrix containing xyzst... data - t_symbol * m_vertex_name; ///< vertex matrix name - t_jit_object * m_index; ///< optional 1d matrix of vertex indices to use with drawing primitive - t_symbol * m_index_name; ///< index matrix name - unsigned long m_flags; ///< chunk flags to ignore texture, normal, color, or edge planes when drawing - void * next_chunk; ///< pointer to next chunk for drawing a list of chunks together -} -t_jit_glchunk; - -/****************************************************************************/ - -t_jit_glchunk * jit_glchunk_new(t_symbol * prim, int planes, int vertices, int indices); -t_jit_glchunk * jit_glchunk_grid_new(t_symbol * prim, int planes, int width, int height); -void jit_glchunk_delete(t_jit_glchunk * x); -t_jit_err jit_glchunk_copy(t_jit_glchunk ** newcopy, t_jit_glchunk * orig); - -t_jit_glchunk * jit_glchunk_new_frommatrix(t_symbol * prim, void *vm, void *im); - -/****************************************************************************/ - -// flags for chunk creation -#define JIT_GL_CHUNK_IGNORE_TEXTURES 1 << 0 -#define JIT_GL_CHUNK_IGNORE_NORMALS 1 << 1 -#define JIT_GL_CHUNK_IGNORE_COLORS 1 << 2 -#define JIT_GL_CHUNK_IGNORE_EDGES 1 << 3 - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif // JIT_GL_CHUNK_H diff --git a/source/c74support/jit-includes/jit.gl.common.h b/source/c74support/jit-includes/jit.gl.common.h deleted file mode 100644 index b0e8f306..00000000 --- a/source/c74support/jit-includes/jit.gl.common.h +++ /dev/null @@ -1,203 +0,0 @@ -#ifndef _JIT_GL_COMMON_H_ -#define _JIT_GL_COMMON_H_ - -#include "jit.common.h" - -#ifdef MAC_VERSION -#include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH -#pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK -#pragma pack(2) -#endif - - - -// constants -#define JIT_GL_RENDER_REG_STR "jit_r3nd3r_" -#define JIT_CLASS3D_FINDER "this_is_the_jit_class3d" - -#define JIT_GL_MAX_TEXTUREUNITS 32 - -#ifndef PI -#define PI 3.141592653589793 -#endif - -// layer defines -#define JIT_GL_LAYER_FIRST -1000 -#define JIT_GL_LAYER_DEFAULT 0 -#define JIT_GL_LAYER_LAST 1000 - -// animator update priority flags -#define JIT_ANIMATOR_PRIORITY_FIRST -1000 -#define JIT_ANIMATOR_PRIORITY_DEF 0 -#define JIT_ANIMATOR_PRIORITY_PASS2 1000 // updated *after* nodes are updated - -// default animator mouse-ui priority -#define JIT_ANIM_UIP_FIRST -1000 -#define JIT_ANIM_UIP_CORNERPIN -900 // gl.cornerpin -#define JIT_ANIM_UIP_PHYS -800 // phys.picker -#define JIT_ANIM_UIP_HANDLE -700 // gl.handle -#define JIT_ANIM_UIP_DEFAULT 0 -#define JIT_ANIM_UIP_ADRIVE 900 // anim.drive -#define JIT_ANIM_UIP_LAST 1000 - -#define JIT_GL_MAX_PICK_FILTERS 10 - - - -// ob3d stuff -// flags -- default: all flags off. - -#define JIT_OB3D_NO_ROTATION_SCALE 1 << 0 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_POLY_VARS 1 << 1 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_BLEND 1 << 2 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_TEXTURE 1 << 3 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_MATRIXOUTPUT 1 << 4 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_AUTO_ONLY 1 << 5 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_DOES_UI 1 << 6 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_DEPTH 1 << 7 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_ANTIALIAS 1 << 8 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_FOG 1 << 9 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_LIGHTING_MATERIAL 1 << 10 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_HAS_LIGHTS 1 << 11 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_HAS_CAMERA 1 << 12 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_IS_RENDERER 1 << 13 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_COLOR 1 << 14 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_IS_SLAB 1 << 15 ///< ob3d flag @ingroup jitter -#define JIT_OB3D_NO_SHADER 1 << 16 -#define JIT_OB3D_IS_NODE 1 << 17 -#define JIT_OB3D_IS_CAMERA 1 << 18 -#define JIT_OB3D_NO_BOUNDS 1 << 19 -#define JIT_OB3D_NO_POSITION 1 << 20 - - - -typedef long t_jit_gl_context_modifier; -#define JIT_GL_VIEW_COMMAND_KEY (1<<0) -#define JIT_GL_VIEW_SHIFT_KEY (1<<1) -#define JIT_GL_VIEW_CAPS_LOCK (1<<2) -#define JIT_GL_VIEW_ALT_KEY (1<<3) -#define JIT_GL_VIEW_CONTROL_KEY (1<<4) - - - -extern t_symbol *_jit_glengine; - - - -void max_ob3d_setup(void); // legacy api -void max_jit_class_ob3d_wrap(t_class *c); // newer api - -// attach jit object bearing an ob3d to a max object and its outlet. -void max_jit_ob3d_attach(void *x, t_jit_object *jit_ob, void *outlet); -void max_jit_ob3d_detach(void *x); -t_jit_err max_jit_ob3d_assist(void *x, void *b, long m, long a, char *s); -t_atom_long max_jit_ob3d_acceptsdrag(void *x, t_object *drag, t_object *view); -void max_jit_ob3d_seterrorob(void *x); -void* max_jit_ob3d_geterrorob(); - - -/** - * t_wind_mouse_info_struct provided by jit.window and jit.pwindow mouse events - * - */ -typedef struct { - t_atom mouseatoms[8]; ///< h, v, (up/down), cmdKey, shiftKey, alphaLock, option, control. - int argc; ///< argument count - t_symbol *mousesymbol; ///< mouse event type - double scalefactor; -} t_wind_mouse_info; - -typedef struct { - t_atom mouseatoms[16]; ///< h, v, (up/down), cmdKey, shiftKey, alphaLock, option, control, dx, dy + RFU - int argc; ///< argument count - t_symbol *mousesymbol; ///< mouse event type -} t_wind_mousewheel_info; - -typedef struct { - t_atom keyatoms[8]; ///< keycode, textcharacter, (up/down), cmdKey, shiftKey, alphaLock, option, control. - int argc; ///< argument count - t_symbol *keysymbol; ///< key event type -} t_wind_key_info; - - - -// -------------------------------------------------------------------------------- -// geometry stuff - -/** 2D point (GLfloat) */ -typedef float t_point_2d[2]; -/** 3D point (GLfloat) */ -typedef float t_point_3d[3]; -/** 3D vector (GLfloat) */ -typedef float t_vec_3d[3]; -/** 4D quaternion (GLfloat). Used for rotation */ -typedef float t_quaternion[4]; -/** 4D angle/axis rotation vector (GLfloat) */ -typedef float t_rotation[4]; -/** RGBA color vector (GLfloat) */ -typedef float t_color[4]; - -/** Line or line segment in 3D space (GLfloat) */ -typedef struct { - float u[3]; ///< starting point - float v[3]; ///< ending point -} t_line_3d; // line or line segment - -typedef struct { - t_symbol *colormode; ///< texture colormode - t_symbol *type; ///< texture data type (char, float32, ...) - int dim[3]; ///< texture dimensions - int dimcount; ///< number of texture dimensions -} t_jit_gl_texture_info; - - - -typedef struct _jit_pt { - long x; - long y; -} t_jit_pt; - -typedef struct _jit_rect { - long x; - long y; - long width; - long height; -} t_jit_rect; - - - -#ifdef MAC_VERSION - -typedef void* t_jit_gl_native_window; // NWWindow * -typedef CGDirectDisplayID t_jit_gl_native_device; // Defines a reference to a list of graphics devices. -typedef void* t_jit_gl_native_drawable; // NSView * -typedef void* t_jit_gl_native_context; // NSOpenGLContext * -typedef void* t_jit_gl_native_pixelformat; // NSOpenGLPixelFormat * - -#else - - - -#endif - -extern t_symbol *ps_draw, *ps_get_state, *ps_matrixoutput, *ps_get_geometry, *ps_boundcalc, *ps_calcbounds, *ps_setdata; - -#if C74_PRAGMA_STRUCT_PACKPUSH -#pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK -#pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.gl.context.h b/source/c74support/jit-includes/jit.gl.context.h deleted file mode 100644 index f69a3e56..00000000 --- a/source/c74support/jit-includes/jit.gl.context.h +++ /dev/null @@ -1,110 +0,0 @@ -#ifndef JIT_GL_CONTEXT_H -#define JIT_GL_CONTEXT_H - -/****************************************************************************/ - -#include "jit.gl.h" -#if defined(WIN_VERSION) || !defined(GL3_VERSION) - #define JIT_GL_USE_PROCS 1 -#endif -#ifdef JIT_GL_USE_PROCS - #include "jit.gl.procs.h" -#endif -#include "jit.gl.support.h" -#include "jit.gl.pixelformat.h" - -/*************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/****************************************************************************/ - -typedef struct _jit_gl_context_struct -{ - t_jit_gl_native_context context; - t_jit_gl_native_device device; - t_jit_gl_native_pixelformat pixelformat; -#ifdef JIT_GL_USE_PROCS - t_jit_gl_extprocs *procs; // proc table for opengl extensions -#endif - t_jit_gl_support *support; // opengl feature support - const char *extensions; // opengl extensions string - void *target; - long targettype; // window/pwindow/matrix/other - long renderer_id; // mac only - long flags; - void *auxdata; - void *offscreentex; - void *offscreenfbo; -#ifdef WIN_VERSION - t_jit_gl_platform_data platform_data; -#endif -} t_jit_gl_context_struct, *t_jit_gl_context; - -typedef struct _jit_gl_context_info -{ - long flags; - long targettype; //window/pwindow/matrix/other - long renderer_id; //mac only - t_jit_gl_context share; - t_jit_gl_pixelformat *pixelformat; - void *nativewin; - short samples; -} t_jit_gl_context_info; - - -/****************************************************************************/ - -t_jit_gl_context jit_gl_create_context(void *target, t_jit_gl_context_info *info); -GLboolean jit_gl_destroy_context(t_jit_gl_context ctx); -GLboolean jit_gl_destroy_native_context(t_jit_gl_native_context native); -GLboolean jit_gl_update_context(t_jit_gl_context ctx); -GLboolean jit_gl_set_context(t_jit_gl_context ctx); -t_jit_gl_context jit_gl_get_context(void); -t_jit_gl_support *jit_gl_get_support(void); -GLboolean jit_gl_context_swap_buffers(t_jit_gl_context ctx); -GLboolean jit_gl_configure(GLenum pname, GLuint param); -long jit_gl_set_swap_interval(t_jit_gl_context ctx, long interval); -char jit_gl_is_extension_supported(t_jit_gl_context ctx, const char* ext); - -/****************************************************************************/ - -// context flags -#define JIT_GL_CTX_DOUBLEBUF 0x00000001 -#define JIT_GL_CTX_DEPTHBUF 0x00000002 -#define JIT_GL_CTX_ACCELERATED 0x00000004 -#define JIT_GL_CTX_FSAA 0x00000008 -#define JIT_GL_CTX_HINT_QUALITY 0x00000010 -#define JIT_GL_CTX_STEREO 0x00000020 - -// target types -#define JIT_GL_TARGET_WINDOW 0x00000000 -#define JIT_GL_TARGET_MATRIX 0x00000001 -#define JIT_GL_TARGET_PWINDOW 0x00000002 -#define JIT_GL_TARGET_TEXTURE 0x00000003 -#define JIT_GL_TARGET_ROOT_SHARED 0x00000004 - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif diff --git a/source/c74support/jit-includes/jit.gl.context.view.h b/source/c74support/jit-includes/jit.gl.context.view.h deleted file mode 100644 index 74202005..00000000 --- a/source/c74support/jit-includes/jit.gl.context.view.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - * - * Represents a context within a container of some form (window, patcher view, etc.) - * - */ - -#ifndef JIT_GL_CONTEXT_VIEW_H -#define JIT_GL_CONTEXT_VIEW_H - -#include "ext.h" -#include "ext_obex.h" -#include "jit.common.h" -#include "jit.gl.h" - -/* - The render target is the object that creates a jit_gl_context_view. It manages its lifetime. The - jit_gl_render object drawing to this destination will get a notification about destruction. A - jit_gl_render object does not create a jit_gl_context_view, it only gets one via the destination - name. -*/ - - -// return codes for renderer -typedef t_atom_long t_jit_gl_context_status; -#define JIT_GL_VIEW_AVAILABLE 0 -#define JIT_GL_VIEW_UNAVAILABLE 1 -#define JIT_GL_VIEW_ERROR 2 - - - -// attributes of t_jit_gl_context_view to cache when recreating -typedef struct _jit_gl_context_view_cache { - long doublebuffer; - long fsaa; - long depthbuffer; - long stereo; - long sync; - long shared; - long idlemouse; - long mousewheel; - long allow_hi_res; - long threaded; -} t_jit_gl_context_view_cache; - -/** - * t_jit_gl_context_view object struct. - * - * Manages an OpenGL context within a rectangle. Objects that use a t_jit_gl_context_view - * to manage an OpenGL context should attach themselves to the object for its lifetime - * and implement an "update" method in order to handle modifications to the - * t_jit_gl_context_view that may require a rebuild or further response within the embedding - * object. - * - * @ingroup gl - * - */ -typedef struct _jit_gl_context_view { - t_object ob; ///< jitter object - long rebuild; ///< rebuild flag - t_jit_gl_context context; ///< OpenGL context - t_wind_mouse_info mouse_info; ///< data for mouse events - t_wind_mousewheel_info mousewheel_info; ///< data for mouse wheel events - t_wind_key_info key_info; ///< data for key events - long canrebuild; ///< flag for whether the context can rebuild or not - long doublebuffer; ///< double buffer flag - long depthbuffer; ///< depth buffer flag - long stereo; ///< active stereo flag - t_jit_rect frame; ///< frame of context - long fsaa; ///< FSAA flag - long sync; ///< V-sync flag - long shared; ///< Shader context flag - t_hashtab *shared_contexts; ///< Hashtab of shared context names - long idlemouse; ///< Idlemouse flag (events on mouse move) - long mousewheel; ///< mosuewheel flag (events on mouse wheel) - void *target; ///< target object we're controlled by - long targettype; ///< target type we're controlled by - t_symbol *name; ///< name of the view - long reshaping; ///< flag for breaking cycles on reshape notification - long ownerreshape; ///< flag for if the owner handles reshaping the context - long freeing; ///< in the process of freeing flag - long creating; ///< in the process of creating flag - long destroying; ///< in the process of destroying flag - long recreating; - float scalefactor; ///< scaling factor when drawing to retina display - long allow_hi_res; ///< allows for high resolution drawing when available - char view_valid; - char first_frame; - void *nativewinhandle; ///< patcher native window handle, for offscreen contexts - char is_mfl; - char threaded; - t_linklist *ext_objects; -} t_jit_gl_context_view; - - -long jit_gl_context_view_are_shared(t_symbol *ctx1, t_symbol *ctx2); -void jit_gl_context_view_funall(method fun, void *arg); - - -t_jit_err jit_gl_context_view_init(void); -t_jit_gl_context_view * jit_gl_context_view_new(); -void jit_gl_context_view_free(t_jit_gl_context_view *x); - -// internal methods (these exist but aren't available in the header) -// t_jit_gl_context_status jit_gl_context_view_create(t_jit_gl_context_view *x); - -// render destination interface -long jit_gl_context_view_is_available(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_rebuild(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_destroy(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_update(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_clear(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_attach(t_jit_gl_context_view *x, void *target); -t_jit_err jit_gl_context_view_detach(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_reshape(t_jit_gl_context_view *x); -t_jit_err jit_gl_context_view_set_viewport(t_jit_gl_context_view *x, t_jit_rect rect); -t_jit_err jit_gl_context_view_set_frame(t_jit_gl_context_view *x, t_jit_rect *rect); -t_jit_err jit_gl_context_view_get_frame(t_jit_gl_context_view *x, t_jit_rect *rect); -t_jit_gl_context jit_gl_context_view_getcontext(t_jit_gl_context_view *x); -void * jit_gl_context_view_gettarget(t_jit_gl_context_view *x); -void jit_gl_context_view_handle_key_event(t_jit_gl_context_view *x, t_symbol *s, long keydown, long keycode, long textcharacter, t_jit_gl_context_modifier modifiers); -t_jit_err jit_gl_context_view_get_key_info(t_jit_gl_context_view *x, t_wind_key_info **kinfo); -void jit_gl_context_view_handle_mouse_event(t_jit_gl_context_view *x, t_symbol *s, long mousedown, t_jit_pt pt, t_jit_gl_context_modifier modifiers); -void jit_gl_context_view_handle_mousewheel_event(t_jit_gl_context_view *x, t_symbol *s, long mousedown, t_jit_pt pt, t_jit_gl_context_modifier modifiers, double dx, double dy); -t_jit_err jit_gl_context_view_get_mouse_info(t_jit_gl_context_view *x, t_wind_mouse_info **minfo); -t_jit_err jit_gl_context_view_get_mousewheel_info(t_jit_gl_context_view *x, t_wind_mousewheel_info **minfo); -t_jit_err jit_gl_context_view_setname(t_jit_gl_context_view *x, void *attr, long argc, t_atom *argv); -t_jit_err jit_gl_context_view_setflag(t_jit_gl_context_view *x, void *attr, long argc, t_atom *argv); -t_jit_err jit_gl_context_view_calcpickray(t_jit_gl_context_view *x, long ac, t_atom *av, t_atom *rv); -void jit_gl_camera_calcpickray(void *camera, long px, long py, t_jit_vec3 *p1i, t_jit_vec3 *p2i, double scalefactor); - -// common to render destination and renderer interface -t_jit_gl_context_status jit_gl_context_view_make_current(t_jit_gl_context_view *x); - -// renderer interface -t_jit_gl_context_status jit_gl_context_view_swap(t_jit_gl_context_view *x); -t_jit_gl_context_status jit_gl_context_view_leave(t_jit_gl_context_view *x); - -// inspection interface -t_jit_err jit_gl_context_view_describe(t_jit_gl_context_view *x, t_dictionary *d); - -#endif diff --git a/source/c74support/jit-includes/jit.gl.draw.h b/source/c74support/jit-includes/jit.gl.draw.h deleted file mode 100644 index 292a7327..00000000 --- a/source/c74support/jit-includes/jit.gl.draw.h +++ /dev/null @@ -1,301 +0,0 @@ -#ifndef JIT_GL_DRAW_H -#define JIT_GL_DRAW_H 1 - -#include "jit.common.h" -#include "jit.vecmath.h" - -#ifdef __cplusplus -extern "C" { -#endif - -t_jit_err jit_ob3d_draw_geometry(void *ob3d, t_jit_object *geometry); - -/** Data structures and functions for OpenGL drawing -*/ - - -/** Represents a view into a buffer, for use with glVertexAttribPointer etc. -*/ -typedef struct _jit_gl_buffer_view -{ - t_symbol *name; //< Name of buffer view - uint type; //< Type of data (e.g. GL_FLOAT) - uint size; //< Number of components (e.g. 3 for vec3) - uchar normalized; //< Whether fixed-point values should be normalized or not - int stride; //< Byte offset between elements - long offset; //< Byte offset to start of buffer - long active; //< Used internally, do not touch - void *ud; //< Used internally, do not touch -} t_jit_gl_buffer_view; - -typedef enum { - BUFFER_DATA_PERSISTENT = (1<<0) -} e_buffer_data_flag; - - -/** Represents data to be stored in a buffer -*/ -typedef struct _jit_gl_buffer_data -{ - long nviews; //< Number of views - t_jit_gl_buffer_view **views; //< Views into data - long constant; //< Whether the data represents a constant vertex attribute - long size; //< Size of data - long flags; //< Data flags - void *ptr; //< Pointer to data (can be NULL) - int instance_div; //< If set indicates glVertexAttribDivisor value for instance drawing -} t_jit_gl_buffer_data; - - -/** Create a buffer data object with a format specified by tags - Tag format: buffer kind, buffer type, ..., ..., VIEW_TAG_NULL - NOTE: the list of tags must always be terminated by a VIEW_TAG_NULL tag. - - examples: - 1) A buffer with vertices and normals: - tags - { - VIEW_TAG_VERTEX, VIEW_TAG_VEC3, - VIEW_TAG_NORMAL, VIEW_TAG_VEC3, - VIEW_TAG_NULL - } - buffer layout - VVVNNN - - 2) A buffer with only vertices: - tags - { - VIEW_TAG_VERTEX, VIEW_TAG_VEC3, - VIEW_TAG_NULL - } - buffer layout - VVV - - 3) A buffer with vertices, texture coordinates, and colors: - tags - { - VIEW_TAG_VERTEX, VIEW_TAG_VEC3, - VIEW_TAG_TEXCOORD, VIEW_TAG_VEC2, - VIEW_TAG_COLOR, VIEW_TAG_VEC4, - VIEW_TAG_NULL - } - buffer layout - VVVTTCCCC -*/ -typedef enum { - VIEW_TAG_INVALID = -1, - VIEW_TAG_NULL = 0, - - // buffer semantics - VIEW_TAG_IGNORE, - VIEW_TAG_VERTEX, - VIEW_TAG_TEXCOORD, - VIEW_TAG_NORMAL, - VIEW_TAG_COLOR, - VIEW_TAG_INDEX, - VIEW_TAG_SPECULAR, - VIEW_TAG_EDGEFLAG, - VIEW_TAG_TANGENT, - VIEW_TAG_VERTEX_ATTR, - VIEW_TAG_VATTR0, - VIEW_TAG_VATTR1, - VIEW_TAG_VATTR2, - VIEW_TAG_VATTR3, - - // buffer types - VIEW_TAG_CHAR, - VIEW_TAG_UCHAR, - VIEW_TAG_INT, - VIEW_TAG_UINT, - VIEW_TAG_FLOAT, - VIEW_TAG_DOUBLE, - VIEW_TAG_VEC2, - VIEW_TAG_VEC3, - VIEW_TAG_VEC4 -} e_view_tag; - -void jit_gl_buffer_data_create_tagged(t_jit_gl_buffer_data *x, e_view_tag *tags, long size, char *ptr); -void jit_gl_buffer_data_create_constant(t_jit_gl_buffer_data *x, e_view_tag *tags, long size, char *ptr); -long jit_gl_buffer_data_create_from_matrix_data(t_jit_gl_buffer_data *x, t_jit_matrix_info *info, char *ptr); -void jit_gl_buffer_data_create_instances(t_jit_gl_buffer_data *x, e_view_tag view_type, int count, long size, char *ptr); -void jit_gl_buffer_data_destroy_tagged(t_jit_gl_buffer_data * x); - -t_symbol * jit_gl_buffer_name_from_tag(e_view_tag view_tag); -e_view_tag jit_gl_view_tag_for_minfo(t_jit_matrix_info *minfo); - -/** Immediate mode simulating functions - - Example usage: - - float c[] = {1., 0., 0., 1.}; - void *state = jit_object_method(x, gensym("get_state")); - jit_gl_state_begin(state); - jit_gl_colorfv(c); - jit_gl_polygon_mode(JIT_STATE_FRONT_AND_BACK, JIT_STATE_LINE); - // do the drawing - jit_gl_state_end(); -*/ - - -/** Enable transations with the rendering state -*/ -void jit_gl_state_begin(void *state); -void jit_gl_state_end(); - -/** Enums for manipulating rendering state -*/ -typedef enum { - JIT_STATE_FALSE = 0, - JIT_STATE_TRUE = 1, - - // primitives - JIT_STATE_POINTS, - JIT_STATE_LINES, - JIT_STATE_LINE_LOOP, - JIT_STATE_LINE_STRIP, - JIT_STATE_TRIANGLES, - JIT_STATE_TRIANGLE_STRIP, - JIT_STATE_TRIANGLE_FAN, - JIT_STATE_QUADS, - JIT_STATE_QUAD_STRIP, - JIT_STATE_POLYGON, - JIT_STATE_LINES_ADJACENCY, - JIT_STATE_LINE_STRIP_ADJACENCY, - JIT_STATE_TRIANGLES_ADJACENCY, - JIT_STATE_TRIANGLE_STRIP_ADJACENCY, - - // matrices - JIT_STATE_MODELVIEW, - JIT_STATE_PROJECTION, - - // material enums - JIT_STATE_FRONT_AND_BACK, - JIT_STATE_FRONT, - JIT_STATE_BACK, - JIT_STATE_2PASS, - JIT_STATE_CULL_FACE, - JIT_STATE_EMISSION, - JIT_STATE_AMBIENT, - JIT_STATE_DIFFUSE, - JIT_STATE_SPECULAR, - JIT_STATE_SHININESS, - JIT_STATE_AMBIENT_AND_DIFFUSE, - - // light enums - JIT_STATE_LIGHT0=100, - JIT_STATE_LIGHT1=101, - JIT_STATE_LIGHT2=102, - JIT_STATE_LIGHT3=103, - JIT_STATE_LIGHT4=104, - JIT_STATE_LIGHT5=105, - JIT_STATE_LIGHT6=106, - JIT_STATE_LIGHT7=107, - JIT_STATE_SPOT_EXPONENT, - JIT_STATE_SPOT_CUTOFF, - JIT_STATE_CONSTANT_ATTENUATION, - JIT_STATE_LINEAR_ATTENUATION, - JIT_STATE_QUADRATIC_ATTENUATION, - JIT_STATE_POSITION, - JIT_STATE_SPOT_DIRECTION, - JIT_STATE_LIGHT_MODEL_AMBIENT, - JIT_STATE_LIGHT_MODEL_TWO_SIDE, - - JIT_STATE_LIGHTING, - JIT_STATE_NORMALIZE, - JIT_STATE_COLOR_MATERIAL, - - JIT_STATE_POINT, - JIT_STATE_LINE, - JIT_STATE_FILL, - - JIT_STATE_SMOOTH, - JIT_STATE_FLAT, - - JIT_STATE_FOG, - JIT_STATE_FOG_MODE, - JIT_STATE_FOG_DENSITY, - JIT_STATE_FOG_START, - JIT_STATE_FOG_END, - JIT_STATE_FOG_COLOR, - - JIT_STATE_LINEAR, - JIT_STATE_EXP, - JIT_STATE_EXP2, - - JIT_STATE_INSTANCING -} e_jit_state; - - -/** Apply updates on the rendering state -*/ -void jit_gl_materialf(e_jit_state face, e_jit_state pname, double v); -void jit_gl_materialfv(e_jit_state face, e_jit_state pname, float *v); -void jit_gl_lightf(e_jit_state light, e_jit_state pname, double v); -void jit_gl_lightfv(e_jit_state light, e_jit_state pname, float *v); -void jit_gl_light_modeli(e_jit_state pname, int v); -void jit_gl_light_modelfv(e_jit_state pname, float *v); -void jit_gl_enable(e_jit_state cap); -void jit_gl_disable(e_jit_state cap); -void jit_gl_polygon_mode(e_jit_state face, e_jit_state mode); -void jit_gl_cull_face(e_jit_state mode); -void jit_gl_shade_model(e_jit_state mode); -void jit_gl_colorfv(float *c); -void jit_gl_colorf(double r, double g, double b, double a); -void jit_gl_color(t_jit_vec4 *c); -void jit_gl_color_material(e_jit_state face, e_jit_state mode); -void jit_gl_fogi(e_jit_state pname, long v); -void jit_gl_fogf(e_jit_state pname, double v); -void jit_gl_fogfv(e_jit_state pname, float *v); -void jit_gl_matrix_mode(e_jit_state mode); -t_jit_mat4 * jit_gl_get_matrix(); -void jit_gl_get_modelview_matrix(t_jit_mat4 * modelview); -void jit_gl_get_projection_matrix(t_jit_mat4 * proj); -void jit_gl_push_matrix(); -void jit_gl_pop_matrix(); -void jit_gl_load_identity(); -void jit_gl_load_matrix(t_jit_mat4 *m); -void jit_gl_translate(double x, double y, double z); -void jit_gl_rotate(double angle, double x, double y, double z); -void jit_gl_scale(double x, double y, double z); -void jit_gl_ortho(double left, double right, double bottom, double top, double zNear, double zFar); -void jit_gl_set_shader(void *shader); -void jit_gl_bind_texture(long unit, void *texture); -void jit_gl_unbind_texture(long unit, void *texture); -void jit_gl_immediate_begin(e_jit_state primitive); -void jit_gl_immediate_end(); -void jit_gl_immediate_vertex2f(double x, double y); -void jit_gl_immediate_vertex3f(double x, double y, double z); -void jit_gl_immediate_texcoord2f(double x, double y); -void jit_gl_immediate_texcoord3f(double x, double y, double z); -void jit_gl_immediate_normal3f(double x, double y, double z); -void jit_gl_immediate_color3f(double r, double g, double b); -void jit_gl_immediate_color4f(double r, double g, double b, double a); -void *jit_gl_immediate_getgeometry(); - -void *jit_ob3d_state_get(t_jit_object *x); -void jit_ob3d_state_set(t_jit_object *x, void *state); -void jit_ob3d_state_begin(t_jit_object *x); -void jit_ob3d_state_end(t_jit_object *x); - -// fullscreen quad -void * jit_gl_fs_quad_getgeometry(long flipped); -void jit_gl_fs_quad_draw(void *geometry, void *state, long width, long height); - -t_jit_err jit_gl_state_bind_texture(void *state, long unit, void *texture); -t_jit_err jit_gl_state_unbind_texture(void *state, long unit, void *texture); - -// struct to manage external textures -typedef struct _jit_gl_texture_ex { - t_jit_object ob; - void *pob; - long id; - long target; // TEXTURE_1D, TEXTURE_2D, etc. - long dim[3]; // Dimensions of texture - long rectangle; // 2D textures use rectangle target - long flip; - t_symbol *name; - method bindmeth; - method unbindmeth; -} t_jit_gl_texture_ex; - -t_jit_err jit_gl_texture_ex_set_transform(t_jit_gl_texture_ex *x, void *state, long unit); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.gl.drawinfo.h b/source/c74support/jit-includes/jit.gl.drawinfo.h deleted file mode 100644 index bf79383f..00000000 --- a/source/c74support/jit-includes/jit.gl.drawinfo.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2001-2005 - Cycling '74 - * Joshua Kit Clayton - jkc@cycling74.com - * - * OpenGL drawinfo structure used to store texture binding info per draw call. - */ - -/****************************************************************************/ - -#ifndef JIT_GL_DRAWINFO_H -#define JIT_GL_DRAWINFO_H - -/****************************************************************************/ - -#include "jit.gl.context.h" - -/*************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -/** - * t_jit_gl_drawinfo struct used for tasks such as multi texture unit binding. - * - */ -typedef struct _jit_gl_drawinfo -{ - t_jit_gl_context ctx; ///< current t_jit_gl_context - void *ob3d; ///< object's t_jit_ob3d pointer - void *rfu[6]; ///< reserved for future use -} t_jit_gl_drawinfo; - -t_jit_err jit_gl_drawinfo_setup(void *x, t_jit_gl_drawinfo *drawinfo); -#ifndef GL3_VERSION -long jit_gl_drawinfo_active_textures(t_jit_gl_drawinfo *drawinfo); -void jit_gl_texcoord1f(t_jit_gl_drawinfo *drawinfo, double s); -void jit_gl_texcoord2f(t_jit_gl_drawinfo *drawinfo, double s, double t); -void jit_gl_texcoord3f(t_jit_gl_drawinfo *drawinfo, double s, double t, double r); -void jit_gl_texcoord1fv(t_jit_gl_drawinfo *drawinfo, float *v); -void jit_gl_texcoord2fv(t_jit_gl_drawinfo *drawinfo, float *v); -void jit_gl_texcoord3fv(t_jit_gl_drawinfo *drawinfo, float *v); -#endif -void jit_gl_bindtexture(t_jit_gl_drawinfo *drawinfo, t_symbol *s, long i); -void jit_gl_unbindtexture(t_jit_gl_drawinfo *drawinfo, t_symbol *s, long i); -void jit_gl_begincapture(t_jit_gl_drawinfo *drawinfo, t_symbol *s, long i); -void jit_gl_endcapture(t_jit_gl_drawinfo *drawinfo, t_symbol *s, long i); -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif // __JIT_GL_H__ diff --git a/source/c74support/jit-includes/jit.gl.h b/source/c74support/jit-includes/jit.gl.h deleted file mode 100755 index 001ac4ca..00000000 --- a/source/c74support/jit-includes/jit.gl.h +++ /dev/null @@ -1,212 +0,0 @@ -// jit.gl.h -// - - -#ifndef __JIT_GL_H__ -#define __JIT_GL_H__ - -// -------------------------------------------------------------------------------- - -#include "jit.gl.common.h" - -// -------------------------------------------------------------------------------- - -#ifdef MAC_VERSION - - #ifdef GL3_VERSION - - #include - #define GL_QUAD_STRIP 0x0008 - #define GL_POLYGON 0x0009 - - #else - - #include - #include - - #endif - - #include - - void * nsglGetProcAddress (const char *pszProc); - - #define glGetProcAddress nsglGetProcAddress - - #include "jit.glext.h" - -#endif // MAC_VERSION - -#ifdef LINUX_VERSION - -#ifdef GL3_VERSION - - #include - -#else - - #include - #include - -#endif -#endif - - -// -------------------------------------------------------------------------------- - -#ifdef WIN_VERSION - - #include - - #ifdef GL3_VERSION - #if defined(_DEBUG) - #define printf printf2 - int __cdecl printf2(const char *format, ...); - #endif - - #include "GL\gl3w.h" - - #include "wglext.h" - //#include "jit.wglext.h" - //#include "jit.glext.h" - - #ifndef GL_APPLE_ycbcr_422 - #define GL_APPLE_ycbcr_422 1 - #define GL_YCBCR_422_APPLE 0x85B9 - #endif /* GL_APPLE_ycbcr_422 */ - - #define GL_QUAD_STRIP 0x0008 - #define GL_POLYGON 0x0009 - - #define GLsizeiptrARB GLsizeiptr - #define GLintptrARB GLintptr - #define GLhandleARB unsigned int - #define GLcharARB GLchar - #define GLhalfARB unsigned short - //#define GLhalfNV unsigned short - - #define glGetProcAddress gl3wGetProcAddress - #else - - #include "gl\gl.h" - #include "gl\glu.h" - #include "jit.wglext.h" - #include "jit.glext.h" - - #define glGetProcAddress wglGetProcAddress - #define glCheckFramebufferStatus glCheckFramebufferStatusEXT - #endif - - - /* - Key object types: - - HDC - a handle to a device independent graphics context (screen, printer, memory, etc.). HDC - conflates the AGLDevice and AGLDrawable concepts. - - HGLRC - a handle to an opengl rendering context. Equivalent to an AGLContext. - */ - typedef HWND t_jit_gl_native_window; - typedef HDC t_jit_gl_native_device; - typedef HDC t_jit_gl_native_drawable; - typedef HGLRC t_jit_gl_native_context; - typedef GLint* t_jit_gl_native_pixelformat; - - typedef struct _jit_gl_platform_data { - PROC set_swap_interval; - } t_jit_gl_platform_data; - -#endif // WIN_VERSION - -// -------------------------------------------------------------------------------- - -#include "jit.gl.draw.h" -#include "jit.gl.chunk.h" -#include "jit.gl.ob3d.h" -#include "jit.gl.support.h" -#include "jit.gl.context.h" -#include "jit.gl.drawinfo.h" -#include "jit.gl.pixelformat.h" -#include - -/****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -// -------------------------------------------------------------------------------- -// get the appropriate version of objects depending on OpenGL version used -long jit_gl_object_is_texture(void *x); -long jit_gl_texture_get(void **tex, t_symbol *dest_name); -long jit_gl_slab_get(void **slab, t_symbol *dest_name); -long jit_gl_mesh_get(void **mesh, t_symbol *dest_name); - -// -------------------------------------------------------------------------------- -// utility methods - -long jit_gl_available(void); -void jit_gl_init(void); -void jit_gl_renderer_set(void * p); -void * jit_gl_renderer_get(); -void jit_gl_set_floats(float *pf, int count, ...); -int jit_gl_get_blend_mode(int index); -long jit_gl_report_error (char *prefix); -long jit_gl_object_report_error (void *x, char *prefix); -void jit_gl_object_error (void *x, char *s, ...); - -// only valid for the life of a render draw call -double jit_gl_get_current_scalefactor(); - -// -------------------------------------------------------------------------------- -// query methods - -const char* jit_gl_get_vendor(); -const char* jit_gl_get_renderer(); -const char* jit_gl_get_version(); -const char* jit_gl_get_glu_version(); -const char* jit_gl_get_extensions(); -const char* jit_gl_get_glsl_version(); -char jit_gl_is_min_version(int major, int minor, int release); -long jit_gl_plane_from_format(GLenum format); -long jit_gl_get_datasize_from_datatype(GLenum e); - - -t_jit_err jit_gl_worldtoscreen(t_jit_object *x, t_point_3d p_world, t_point_3d p_screen); -t_jit_err jit_gl_screentoworld(t_jit_object *x, t_point_3d p_screen, t_point_3d p_world); -extern void * jit_gl_getscenegraph(t_symbol *ctx); - -t_jit_err jit_gl_err_from_max_err(t_max_err err); - -extern t_bool g_gl_unsupported_silence_warning; -t_jit_err jit_gl_unsupported(t_jit_object *x, void *attr, long ac, t_atom *av); - -#define GL3_CLASS_ATTR_OBSOLETE(c, attrname) \ -{ \ - long flags = JIT_ATTR_GET_DEFER_LOW | JIT_ATTR_SET_USURP_LOW; \ - void * obs_attr = jit_object_new(_jit_sym_jit_attr_offset, attrname, _jit_sym_long, flags, (method)0L, (method)jit_gl_unsupported, 0L); \ - jit_class_addattr(c, obs_attr); \ - CLASS_ATTR_OBSOLETE(c, attrname, 0); \ -} - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif // __JIT_GL_H__ diff --git a/source/c74support/jit-includes/jit.gl.ob3d.h b/source/c74support/jit-includes/jit.gl.ob3d.h deleted file mode 100644 index bd71c5ef..00000000 --- a/source/c74support/jit-includes/jit.gl.ob3d.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef JIT_GL_OB3D_H -#define JIT_GL_OB3D_H - -/****************************************************************************/ - -#include "jit.gl.h" - -/****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - - -typedef struct _jit_class3d -{ - long oboffset; // instance byte offset to the ob3d struct. - long flags; - // extensible -} t_jit_class3d; - -/****************************************************************************/ - -void *jit_ob3d_setup(void * jit_class, long oboffset, long ob3d_flags); -t_jit_err jit_ob3d_set(void *x, void *p); -void *jit_ob3d_get(void *x); -void *jit_ob3d_new(void *x, t_symbol * dest_name); -void jit_ob3d_free(void *x); -t_jit_err jit_ob3d_set_context(void *x); -t_jit_err jit_ob3d_draw_chunk(void *ob3d, t_jit_glchunk * chunk); -void jit_ob3d_set_viewport(void *v, long x, long y, long width, long height); - -void * ob3d_maxob_get(void *v); -void * ob3d_jitob_get(void *v); -void * ob3d_patcher_get(void *v); -long ob3d_auto_get(void *v); -long ob3d_enable_get(void *v); -long ob3d_ui_get(void *v); -void * ob3d_outlet_get(void *v); -long ob3d_dirty_get(void *v); -void ob3d_dirty_set(void *v, long c); -void ob3d_dest_dim_set(void *v, long width, long height); -void ob3d_dest_dim_get(void *v, long *width, long *height); -void ob3d_render_ptr_set(void *v, void *render_ptr); -void * ob3d_render_ptr_get(void *v); - -void ob3d_set_color(void *v, float *color); -void ob3d_get_color(void *v, float *color); -long ob3d_texture_count(void *v); - -t_jit_err ob3d_draw_begin(void *ob3d, long setup); -t_jit_err ob3d_draw_end(void *ob3d, long setup); -t_jit_err ob3d_draw_preamble(void *ob3d); - -t_symbol * jit_ob3d_init_jpatcher_render(void *jitob); - -t_jit_err jit_ob3d_dest_name_set(t_jit_object *x, void *attr, long argc, t_atom *argv); -t_jit_err jit_gl_vbo_create(void *x, GLenum target, GLenum usage); -t_jit_err jit_gl_vbo_submit(void *x, long size, const void *data); - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif diff --git a/source/c74support/jit-includes/jit.gl.pixelformat.h b/source/c74support/jit-includes/jit.gl.pixelformat.h deleted file mode 100644 index 2ff6bf8f..00000000 --- a/source/c74support/jit-includes/jit.gl.pixelformat.h +++ /dev/null @@ -1,225 +0,0 @@ -#ifndef JIT_GL_PIXELFORMAT_H -#define JIT_GL_PIXELFORMAT_H - -/* - * Copyright 2001-2005 - Cycling '74 - * Derek Gerstmann - derek@cycling74.com - * - * Struct and associated methods for defining an OpenGL - * pixel format for creating a drawable. - * - */ - -/****************************************************************************/ - -#include "jit.gl.h" -#include "jit.common.h" - -/****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -#define JIT_GL_PF_MAX_ATTRIBCOUNT (512) - -#define JIT_GL_PF_TARGET_DRAW_TO_WINDOW (0) // render to window -#define JIT_GL_PF_TARGET_DRAW_TO_BITMAP (1) // render to memory -#define JIT_GL_PF_TARGET_DRAW_TO_PBUFFER (2) // render to pbuffer (offscreen drawable) - -#define JIT_GL_PF_PIXELTYPE_INDEXED (0) -#define JIT_GL_PF_PIXELTYPE_R (1) // only for BIND_TO_TEXTURE -#define JIT_GL_PF_PIXELTYPE_RG (2) // only for BIND_TO_TEXTURE -#define JIT_GL_PF_PIXELTYPE_RGB (3) -#define JIT_GL_PF_PIXELTYPE_RGBA (4) -#define JIT_GL_PF_PIXELTYPE_DEPTH (5) // only for BIND_TO_TEXTURE - -#define JIT_GL_PF_PIXEL_FLOAT_ARB (1 << 0) -#define JIT_GL_PF_PIXEL_FLOAT_NV (1 << 1) -#define JIT_GL_PF_PIXEL_FLOAT_ATI (1 << 2) -#define JIT_GL_PF_PIXEL_FLOAT_APPLE (1 << 3) -#define JIT_GL_PF_FLAG_TEXTURE_RECTANGLE (1 << 4) -#define JIT_GL_PF_FLAG_TEXTURE_DEPTH (1 << 5) -#define JIT_GL_PF_FLAG_BIND_TO_TEXTURE (1 << 6) // render to texture - -#ifdef MAC_VERSION - -typedef uint32_t t_jit_gl_pixel_attribute; - -#else - -typedef GLint t_jit_gl_pixel_attribute; - -#endif - -/****************************************************************************/ - -typedef struct _jit_gl_pixelformat -{ - long target; // destination target for pixel data - long pixel_type; // type of pixel data (INDEXED/RGB/RGBA/etc) - long pixel_size; // size of all pixel components in bits - long pixel_float; // flag for floating point pixels (16 or 32bit) - long pixel_float_target; // target for floating point pixels (16 or 32bit) - long red_size; // size of red component in bits - long green_size; // size of green component in bits - long blue_size; // size of blue component in bits - long alpha_size; // size of alpha component in bits - long depth_size; // size of depth buffer in bits - long stencil_size; // size of stencil buffer in bits - long accum_size; // sixe of all accumulation componenets in bits - long accum_red_size; // size of red component in bits - long accum_green_size; // size of green accumulation component in bits - long accum_blue_size; // size of blue accumulation component in bits - long accum_alpha_size; // size of alpha accumulation component in bits - long samples; // number of samples for multisampling - long sample_buffers; // number of sample buffers for multisampling - long aux_buffers; // number of auxiliary buffers - long stereo; // flag for stereo rendering - long quality; // flag for quality hint - long doublebuffer; // flag to enable double buffering - long accelerated; // flag to enable hw accelerated buffer - long rectangle; // flag to enable rectangular color buffer (for bind to texture) - long fullscreen; // flag to enable fullscreen rendering - long flags; // set of additional flags for extended attributes -} t_jit_gl_pixelformat; - -/****************************************************************************/ - -t_jit_gl_pixelformat *jit_gl_pixelformat_new(void); -t_jit_err jit_gl_pixelformat_create_attributes(t_jit_gl_pixelformat *x, t_jit_gl_pixel_attribute **pfattrib, GLuint *pfcount); -void *jit_gl_pixelformat_create_native_from_attributes(t_jit_gl_pixel_attribute *attrib, void *device); -void *jit_gl_pixelformat_create_native(t_jit_gl_pixelformat *x, void *device); -void *jit_gl_pixelformat_create_no_context(t_jit_gl_pixelformat *x, void *device, void *window); -t_jit_err jit_gl_pixelformat_destroy_native(void *native); -t_jit_err jit_gl_pixelformat_reset(t_jit_gl_pixelformat *x); -void jit_gl_pixelformat_free(t_jit_gl_pixelformat *x); - -/****************************************************************************/ - -// APPLE extended pixel format attribute flags -#ifndef AGL_PIXEL_SIZE -#define AGL_PIXEL_SIZE 50 -#endif -#ifndef AGL_MINIMUM_POLICY -#define AGL_MINIMUM_POLICY 51 -#endif -#ifndef AGL_MAXIMUM_POLICY -#define AGL_MAXIMUM_POLICY 52 -#endif -#ifndef AGL_OFFSCREEN -#define AGL_OFFSCREEN 53 -#endif -#ifndef AGL_FULLSCREEN -#define AGL_FULLSCREEN 54 -#endif -#ifndef AGL_SAMPLE_BUFFERS_ARB -#define AGL_SAMPLE_BUFFERS_ARB 55 -#endif -#ifndef AGL_SAMPLES_ARB -#define AGL_SAMPLES_ARB 56 -#endif -#ifndef AGL_AUX_DEPTH_STENCIL -#define AGL_AUX_DEPTH_STENCIL 57 -#endif -#ifndef AGL_COLOR_FLOAT -#define AGL_COLOR_FLOAT 58 -#endif -#ifndef AGL_MULTISAMPLE -#define AGL_MULTISAMPLE 59 -#endif -#ifndef AGL_SUPERSAMPLE -#define AGL_SUPERSAMPLE 60 -#endif -#ifndef AGL_SAMPLE_ALPHA -#define AGL_SAMPLE_ALPHA 61 -#endif -#ifndef AGL_RENDERER_GENERIC_FLOAT_ID -#define AGL_RENDERER_GENERIC_FLOAT_ID 0x00020400 -#endif - -// WGL pixel format -//#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -//#endif - -// ATI pixel format -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float 1 -#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif // JIT_GL_PIXELFORMAT_H diff --git a/source/c74support/jit-includes/jit.gl.procs.h b/source/c74support/jit-includes/jit.gl.procs.h deleted file mode 100644 index 1f54d9b2..00000000 --- a/source/c74support/jit-includes/jit.gl.procs.h +++ /dev/null @@ -1,2274 +0,0 @@ -#ifndef _JIT_GL_PROCS_H_ -#define _JIT_GL_PROCS_H_ - -/* -** GLprocs utility for getting function addresses for OpenGL(R) 1.2, -** OpenGL 1.3, OpenGL 1.4, OpenGL 1.5 and OpenGL extension functions. -** -** Version: 1.1 -** -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -** -** Initial version of glprocs.{c,h} contributed by Intel(R) Corporation. -*/ - -#ifndef WIN_VERSION - #ifndef APIENTRY - #define APIENTRY - #endif - #ifdef __GNUC__ - #define _inline __inline__ - #else - #define _inline - #endif -#endif - -#if defined(MAC_VERSION) && !TARGET_RT_MAC_MACHO - typedef void* AGLPbuffer; -#endif - -#include "jit.gl.h" -#include "jit.glext.h" -#include "jit.glext_nv.h" - -/****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -t_jit_err jit_gl_procs_init(); - -/* Structure of all OpenGL {1.2, 1.3, 1.4, 1.5}, GL extension procs.*/ -typedef struct { - void (APIENTRY *BlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - void (APIENTRY *BlendEquation) (GLenum mode); - void (APIENTRY *DrawRangeElements) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); - void (APIENTRY *ColorTable) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); - void (APIENTRY *ColorTableParameterfv) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *ColorTableParameteriv) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *CopyColorTable) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); - void (APIENTRY *GetColorTable) (GLenum target, GLenum format, GLenum type, GLvoid *table); - void (APIENTRY *GetColorTableParameterfv) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetColorTableParameteriv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *ColorSubTable) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); - void (APIENTRY *CopyColorSubTable) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); - void (APIENTRY *ConvolutionFilter1D) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); - void (APIENTRY *ConvolutionFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); - void (APIENTRY *ConvolutionParameterf) (GLenum target, GLenum pname, GLfloat params); - void (APIENTRY *ConvolutionParameterfv) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *ConvolutionParameteri) (GLenum target, GLenum pname, GLint params); - void (APIENTRY *ConvolutionParameteriv) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *CopyConvolutionFilter1D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); - void (APIENTRY *CopyConvolutionFilter2D) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); - void (APIENTRY *GetConvolutionFilter) (GLenum target, GLenum format, GLenum type, GLvoid *image); - void (APIENTRY *GetConvolutionParameterfv) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetConvolutionParameteriv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetSeparableFilter) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); - void (APIENTRY *SeparableFilter2D) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); - void (APIENTRY *GetHistogram) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); - void (APIENTRY *GetHistogramParameterfv) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetHistogramParameteriv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetMinmax) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); - void (APIENTRY *GetMinmaxParameterfv) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetMinmaxParameteriv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *Histogram) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); - void (APIENTRY *Minmax) (GLenum target, GLenum internalformat, GLboolean sink); - void (APIENTRY *ResetHistogram) (GLenum target); - void (APIENTRY *ResetMinmax) (GLenum target); - void (APIENTRY *TexImage3D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *TexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *CopyTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - void (APIENTRY *ActiveTexture) (GLenum texture); - void (APIENTRY *ClientActiveTexture) (GLenum texture); - void (APIENTRY *MultiTexCoord1d) (GLenum target, GLdouble s); - void (APIENTRY *MultiTexCoord1dv) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord1f) (GLenum target, GLfloat s); - void (APIENTRY *MultiTexCoord1fv) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord1i) (GLenum target, GLint s); - void (APIENTRY *MultiTexCoord1iv) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord1s) (GLenum target, GLshort s); - void (APIENTRY *MultiTexCoord1sv) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord2d) (GLenum target, GLdouble s, GLdouble t); - void (APIENTRY *MultiTexCoord2dv) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord2f) (GLenum target, GLfloat s, GLfloat t); - void (APIENTRY *MultiTexCoord2fv) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord2i) (GLenum target, GLint s, GLint t); - void (APIENTRY *MultiTexCoord2iv) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord2s) (GLenum target, GLshort s, GLshort t); - void (APIENTRY *MultiTexCoord2sv) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord3d) (GLenum target, GLdouble s, GLdouble t, GLdouble r); - void (APIENTRY *MultiTexCoord3dv) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord3f) (GLenum target, GLfloat s, GLfloat t, GLfloat r); - void (APIENTRY *MultiTexCoord3fv) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord3i) (GLenum target, GLint s, GLint t, GLint r); - void (APIENTRY *MultiTexCoord3iv) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord3s) (GLenum target, GLshort s, GLshort t, GLshort r); - void (APIENTRY *MultiTexCoord3sv) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord4d) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); - void (APIENTRY *MultiTexCoord4dv) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord4f) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); - void (APIENTRY *MultiTexCoord4fv) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord4i) (GLenum target, GLint s, GLint t, GLint r, GLint q); - void (APIENTRY *MultiTexCoord4iv) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord4s) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); - void (APIENTRY *MultiTexCoord4sv) (GLenum target, const GLshort *v); - void (APIENTRY *LoadTransposeMatrixf) (const GLfloat *m); - void (APIENTRY *LoadTransposeMatrixd) (const GLdouble *m); - void (APIENTRY *MultTransposeMatrixf) (const GLfloat *m); - void (APIENTRY *MultTransposeMatrixd) (const GLdouble *m); - void (APIENTRY *SampleCoverage) (GLclampf value, GLboolean invert); - void (APIENTRY *CompressedTexImage3D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexImage2D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexImage1D) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage3D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage1D) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *GetCompressedTexImage) (GLenum target, GLint level, GLvoid *img); - void (APIENTRY *BlendFuncSeparate) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - void (APIENTRY *FogCoordf) (GLfloat coord); - void (APIENTRY *FogCoordfv) (const GLfloat *coord); - void (APIENTRY *FogCoordd) (GLdouble coord); - void (APIENTRY *FogCoorddv) (const GLdouble *coord); - void (APIENTRY *FogCoordPointer) (GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *MultiDrawArrays) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); - void (APIENTRY *MultiDrawElements) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); - void (APIENTRY *PointParameterf) (GLenum pname, GLfloat param); - void (APIENTRY *PointParameterfv) (GLenum pname, const GLfloat *params); - void (APIENTRY *PointParameteri) (GLenum pname, GLint param); - void (APIENTRY *PointParameteriv) (GLenum pname, const GLint *params); - void (APIENTRY *SecondaryColor3b) (GLbyte red, GLbyte green, GLbyte blue); - void (APIENTRY *SecondaryColor3bv) (const GLbyte *v); - void (APIENTRY *SecondaryColor3d) (GLdouble red, GLdouble green, GLdouble blue); - void (APIENTRY *SecondaryColor3dv) (const GLdouble *v); - void (APIENTRY *SecondaryColor3f) (GLfloat red, GLfloat green, GLfloat blue); - void (APIENTRY *SecondaryColor3fv) (const GLfloat *v); - void (APIENTRY *SecondaryColor3i) (GLint red, GLint green, GLint blue); - void (APIENTRY *SecondaryColor3iv) (const GLint *v); - void (APIENTRY *SecondaryColor3s) (GLshort red, GLshort green, GLshort blue); - void (APIENTRY *SecondaryColor3sv) (const GLshort *v); - void (APIENTRY *SecondaryColor3ub) (GLubyte red, GLubyte green, GLubyte blue); - void (APIENTRY *SecondaryColor3ubv) (const GLubyte *v); - void (APIENTRY *SecondaryColor3ui) (GLuint red, GLuint green, GLuint blue); - void (APIENTRY *SecondaryColor3uiv) (const GLuint *v); - void (APIENTRY *SecondaryColor3us) (GLushort red, GLushort green, GLushort blue); - void (APIENTRY *SecondaryColor3usv) (const GLushort *v); - void (APIENTRY *SecondaryColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *WindowPos2d) (GLdouble x, GLdouble y); - void (APIENTRY *WindowPos2dv) (const GLdouble *v); - void (APIENTRY *WindowPos2f) (GLfloat x, GLfloat y); - void (APIENTRY *WindowPos2fv) (const GLfloat *v); - void (APIENTRY *WindowPos2i) (GLint x, GLint y); - void (APIENTRY *WindowPos2iv) (const GLint *v); - void (APIENTRY *WindowPos2s) (GLshort x, GLshort y); - void (APIENTRY *WindowPos2sv) (const GLshort *v); - void (APIENTRY *WindowPos3d) (GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *WindowPos3dv) (const GLdouble *v); - void (APIENTRY *WindowPos3f) (GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *WindowPos3fv) (const GLfloat *v); - void (APIENTRY *WindowPos3i) (GLint x, GLint y, GLint z); - void (APIENTRY *WindowPos3iv) (const GLint *v); - void (APIENTRY *WindowPos3s) (GLshort x, GLshort y, GLshort z); - void (APIENTRY *WindowPos3sv) (const GLshort *v); - void (APIENTRY *GenQueries) (GLsizei n, GLuint *ids); - void (APIENTRY *DeleteQueries) (GLsizei n, const GLuint *ids); - GLboolean (APIENTRY *IsQuery) (GLuint id); - void (APIENTRY *BeginQuery) (GLenum target, GLuint id); - void (APIENTRY *EndQuery) (GLenum target); - void (APIENTRY *GetQueryiv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetQueryObjectiv) (GLuint id, GLenum pname, GLint *params); - void (APIENTRY *GetQueryObjectuiv) (GLuint id, GLenum pname, GLuint *params); - void (APIENTRY *BindBuffer) (GLenum target, GLuint buffer); - void (APIENTRY *DeleteBuffers) (GLsizei n, const GLuint *buffers); - void (APIENTRY *GenBuffers) (GLsizei n, GLuint *buffers); - GLboolean (APIENTRY *IsBuffer) (GLuint buffer); - void (APIENTRY *BufferData) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); - void (APIENTRY *BufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); - void (APIENTRY *GetBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); - GLvoid* (APIENTRY *MapBuffer) (GLenum target, GLenum access); - GLboolean (APIENTRY *UnmapBuffer) (GLenum target); - void (APIENTRY *GetBufferParameteriv) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetBufferPointerv) (GLenum target, GLenum pname, GLvoid* *params); - void (APIENTRY *ActiveTextureARB) (GLenum texture); - void (APIENTRY *ClientActiveTextureARB) (GLenum texture); - void (APIENTRY *MultiTexCoord1dARB) (GLenum target, GLdouble s); - void (APIENTRY *MultiTexCoord1dvARB) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord1fARB) (GLenum target, GLfloat s); - void (APIENTRY *MultiTexCoord1fvARB) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord1iARB) (GLenum target, GLint s); - void (APIENTRY *MultiTexCoord1ivARB) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord1sARB) (GLenum target, GLshort s); - void (APIENTRY *MultiTexCoord1svARB) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord2dARB) (GLenum target, GLdouble s, GLdouble t); - void (APIENTRY *MultiTexCoord2dvARB) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord2fARB) (GLenum target, GLfloat s, GLfloat t); - void (APIENTRY *MultiTexCoord2fvARB) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord2iARB) (GLenum target, GLint s, GLint t); - void (APIENTRY *MultiTexCoord2ivARB) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord2sARB) (GLenum target, GLshort s, GLshort t); - void (APIENTRY *MultiTexCoord2svARB) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord3dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r); - void (APIENTRY *MultiTexCoord3dvARB) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord3fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r); - void (APIENTRY *MultiTexCoord3fvARB) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord3iARB) (GLenum target, GLint s, GLint t, GLint r); - void (APIENTRY *MultiTexCoord3ivARB) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord3sARB) (GLenum target, GLshort s, GLshort t, GLshort r); - void (APIENTRY *MultiTexCoord3svARB) (GLenum target, const GLshort *v); - void (APIENTRY *MultiTexCoord4dARB) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); - void (APIENTRY *MultiTexCoord4dvARB) (GLenum target, const GLdouble *v); - void (APIENTRY *MultiTexCoord4fARB) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); - void (APIENTRY *MultiTexCoord4fvARB) (GLenum target, const GLfloat *v); - void (APIENTRY *MultiTexCoord4iARB) (GLenum target, GLint s, GLint t, GLint r, GLint q); - void (APIENTRY *MultiTexCoord4ivARB) (GLenum target, const GLint *v); - void (APIENTRY *MultiTexCoord4sARB) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); - void (APIENTRY *MultiTexCoord4svARB) (GLenum target, const GLshort *v); - void (APIENTRY *LoadTransposeMatrixfARB) (const GLfloat *m); - void (APIENTRY *LoadTransposeMatrixdARB) (const GLdouble *m); - void (APIENTRY *MultTransposeMatrixfARB) (const GLfloat *m); - void (APIENTRY *MultTransposeMatrixdARB) (const GLdouble *m); - void (APIENTRY *SampleCoverageARB) (GLclampf value, GLboolean invert); - void (APIENTRY *CompressedTexImage3DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexImage2DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexImage1DARB) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage3DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage2DARB) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *CompressedTexSubImage1DARB) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); - void (APIENTRY *GetCompressedTexImageARB) (GLenum target, GLint level, GLvoid *img); - void (APIENTRY *PointParameterfARB) (GLenum pname, GLfloat param); - void (APIENTRY *PointParameterfvARB) (GLenum pname, const GLfloat *params); - void (APIENTRY *WeightbvARB) (GLint size, const GLbyte *weights); - void (APIENTRY *WeightsvARB) (GLint size, const GLshort *weights); - void (APIENTRY *WeightivARB) (GLint size, const GLint *weights); - void (APIENTRY *WeightfvARB) (GLint size, const GLfloat *weights); - void (APIENTRY *WeightdvARB) (GLint size, const GLdouble *weights); - void (APIENTRY *WeightubvARB) (GLint size, const GLubyte *weights); - void (APIENTRY *WeightusvARB) (GLint size, const GLushort *weights); - void (APIENTRY *WeightuivARB) (GLint size, const GLuint *weights); - void (APIENTRY *WeightPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *VertexBlendARB) (GLint count); - void (APIENTRY *CurrentPaletteMatrixARB) (GLint index); - void (APIENTRY *MatrixIndexubvARB) (GLint size, const GLubyte *indices); - void (APIENTRY *MatrixIndexusvARB) (GLint size, const GLushort *indices); - void (APIENTRY *MatrixIndexuivARB) (GLint size, const GLuint *indices); - void (APIENTRY *MatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *WindowPos2dARB) (GLdouble x, GLdouble y); - void (APIENTRY *WindowPos2dvARB) (const GLdouble *v); - void (APIENTRY *WindowPos2fARB) (GLfloat x, GLfloat y); - void (APIENTRY *WindowPos2fvARB) (const GLfloat *v); - void (APIENTRY *WindowPos2iARB) (GLint x, GLint y); - void (APIENTRY *WindowPos2ivARB) (const GLint *v); - void (APIENTRY *WindowPos2sARB) (GLshort x, GLshort y); - void (APIENTRY *WindowPos2svARB) (const GLshort *v); - void (APIENTRY *WindowPos3dARB) (GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *WindowPos3dvARB) (const GLdouble *v); - void (APIENTRY *WindowPos3fARB) (GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *WindowPos3fvARB) (const GLfloat *v); - void (APIENTRY *WindowPos3iARB) (GLint x, GLint y, GLint z); - void (APIENTRY *WindowPos3ivARB) (const GLint *v); - void (APIENTRY *WindowPos3sARB) (GLshort x, GLshort y, GLshort z); - void (APIENTRY *WindowPos3svARB) (const GLshort *v); - void (APIENTRY *VertexAttrib1dARB) (GLuint index, GLdouble x); - void (APIENTRY *VertexAttrib1dvARB) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib1fARB) (GLuint index, GLfloat x); - void (APIENTRY *VertexAttrib1fvARB) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib1sARB) (GLuint index, GLshort x); - void (APIENTRY *VertexAttrib1svARB) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib2dARB) (GLuint index, GLdouble x, GLdouble y); - void (APIENTRY *VertexAttrib2dvARB) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib2fARB) (GLuint index, GLfloat x, GLfloat y); - void (APIENTRY *VertexAttrib2fvARB) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib2sARB) (GLuint index, GLshort x, GLshort y); - void (APIENTRY *VertexAttrib2svARB) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib3dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *VertexAttrib3dvARB) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib3fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *VertexAttrib3fvARB) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib3sARB) (GLuint index, GLshort x, GLshort y, GLshort z); - void (APIENTRY *VertexAttrib3svARB) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib4NbvARB) (GLuint index, const GLbyte *v); - void (APIENTRY *VertexAttrib4NivARB) (GLuint index, const GLint *v); - void (APIENTRY *VertexAttrib4NsvARB) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib4NubARB) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); - void (APIENTRY *VertexAttrib4NubvARB) (GLuint index, const GLubyte *v); - void (APIENTRY *VertexAttrib4NuivARB) (GLuint index, const GLuint *v); - void (APIENTRY *VertexAttrib4NusvARB) (GLuint index, const GLushort *v); - void (APIENTRY *VertexAttrib4bvARB) (GLuint index, const GLbyte *v); - void (APIENTRY *VertexAttrib4dARB) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *VertexAttrib4dvARB) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib4fARB) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *VertexAttrib4fvARB) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib4ivARB) (GLuint index, const GLint *v); - void (APIENTRY *VertexAttrib4sARB) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); - void (APIENTRY *VertexAttrib4svARB) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib4ubvARB) (GLuint index, const GLubyte *v); - void (APIENTRY *VertexAttrib4uivARB) (GLuint index, const GLuint *v); - void (APIENTRY *VertexAttrib4usvARB) (GLuint index, const GLushort *v); - void (APIENTRY *VertexAttribPointerARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *EnableVertexAttribArrayARB) (GLuint index); - void (APIENTRY *DisableVertexAttribArrayARB) (GLuint index); - void (APIENTRY *ProgramStringARB) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); - void (APIENTRY *BindProgramARB) (GLenum target, GLuint program); - void (APIENTRY *DeleteProgramsARB) (GLsizei n, const GLuint *programs); - void (APIENTRY *GenProgramsARB) (GLsizei n, GLuint *programs); - void (APIENTRY *ProgramEnvParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *ProgramEnvParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params); - void (APIENTRY *ProgramEnvParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *ProgramEnvParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params); - void (APIENTRY *ProgramLocalParameter4dARB) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *ProgramLocalParameter4dvARB) (GLenum target, GLuint index, const GLdouble *params); - void (APIENTRY *ProgramLocalParameter4fARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *ProgramLocalParameter4fvARB) (GLenum target, GLuint index, const GLfloat *params); - void (APIENTRY *GetProgramEnvParameterdvARB) (GLenum target, GLuint index, GLdouble *params); - void (APIENTRY *GetProgramEnvParameterfvARB) (GLenum target, GLuint index, GLfloat *params); - void (APIENTRY *GetProgramLocalParameterdvARB) (GLenum target, GLuint index, GLdouble *params); - void (APIENTRY *GetProgramLocalParameterfvARB) (GLenum target, GLuint index, GLfloat *params); - void (APIENTRY *GetProgramivARB) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetProgramStringARB) (GLenum target, GLenum pname, GLvoid *string); - void (APIENTRY *GetVertexAttribdvARB) (GLuint index, GLenum pname, GLdouble *params); - void (APIENTRY *GetVertexAttribfvARB) (GLuint index, GLenum pname, GLfloat *params); - void (APIENTRY *GetVertexAttribivARB) (GLuint index, GLenum pname, GLint *params); - void (APIENTRY *GetVertexAttribPointervARB) (GLuint index, GLenum pname, GLvoid* *pointer); - GLboolean (APIENTRY *IsProgramARB) (GLuint program); - void (APIENTRY *BindBufferARB) (GLenum target, GLuint buffer); - void (APIENTRY *DeleteBuffersARB) (GLsizei n, const GLuint *buffers); - void (APIENTRY *GenBuffersARB) (GLsizei n, GLuint *buffers); - GLboolean (APIENTRY *IsBufferARB) (GLuint buffer); - void (APIENTRY *BufferDataARB) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); - void (APIENTRY *BufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); - void (APIENTRY *GetBufferSubDataARB) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); - GLvoid* (APIENTRY *MapBufferARB) (GLenum target, GLenum access); - GLboolean (APIENTRY *UnmapBufferARB) (GLenum target); - void (APIENTRY *GetBufferParameterivARB) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetBufferPointervARB) (GLenum target, GLenum pname, GLvoid* *params); - void (APIENTRY *GenQueriesARB) (GLsizei n, GLuint *ids); - void (APIENTRY *DeleteQueriesARB) (GLsizei n, const GLuint *ids); - GLboolean (APIENTRY *IsQueryARB) (GLuint id); - void (APIENTRY *BeginQueryARB) (GLenum target, GLuint id); - void (APIENTRY *EndQueryARB) (GLenum target); - void (APIENTRY *GetQueryivARB) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetQueryObjectivARB) (GLuint id, GLenum pname, GLint *params); - void (APIENTRY *GetQueryObjectuivARB) (GLuint id, GLenum pname, GLuint *params); - void (APIENTRY *DeleteObjectARB) (GLhandleARB obj); - GLhandleARB (APIENTRY *GetHandleARB) (GLenum pname); - void (APIENTRY *DetachObjectARB) (GLhandleARB containerObj, GLhandleARB attachedObj); - GLhandleARB (APIENTRY *CreateShaderObjectARB) (GLenum shaderType); - void (APIENTRY *ShaderSourceARB) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); - void (APIENTRY *CompileShaderARB) (GLhandleARB shaderObj); - GLhandleARB (APIENTRY *CreateProgramObjectARB) (void); - void (APIENTRY *AttachObjectARB) (GLhandleARB containerObj, GLhandleARB obj); - void (APIENTRY *LinkProgramARB) (GLhandleARB programObj); - void (APIENTRY *UseProgramObjectARB) (GLhandleARB programObj); - void (APIENTRY *ValidateProgramARB) (GLhandleARB programObj); - void (APIENTRY *Uniform1fARB) (GLint location, GLfloat v0); - void (APIENTRY *Uniform2fARB) (GLint location, GLfloat v0, GLfloat v1); - void (APIENTRY *Uniform3fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); - void (APIENTRY *Uniform4fARB) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); - void (APIENTRY *Uniform1iARB) (GLint location, GLint v0); - void (APIENTRY *Uniform2iARB) (GLint location, GLint v0, GLint v1); - void (APIENTRY *Uniform3iARB) (GLint location, GLint v0, GLint v1, GLint v2); - void (APIENTRY *Uniform4iARB) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); - void (APIENTRY *Uniform1fvARB) (GLint location, GLsizei count, const GLfloat *value); - void (APIENTRY *Uniform2fvARB) (GLint location, GLsizei count, const GLfloat *value); - void (APIENTRY *Uniform3fvARB) (GLint location, GLsizei count, const GLfloat *value); - void (APIENTRY *Uniform4fvARB) (GLint location, GLsizei count, const GLfloat *value); - void (APIENTRY *Uniform1ivARB) (GLint location, GLsizei count, const GLint *value); - void (APIENTRY *Uniform2ivARB) (GLint location, GLsizei count, const GLint *value); - void (APIENTRY *Uniform3ivARB) (GLint location, GLsizei count, const GLint *value); - void (APIENTRY *Uniform4ivARB) (GLint location, GLsizei count, const GLint *value); - void (APIENTRY *UniformMatrix2fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - void (APIENTRY *UniformMatrix3fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - void (APIENTRY *UniformMatrix4fvARB) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); - void (APIENTRY *GetObjectParameterfvARB) (GLhandleARB obj, GLenum pname, GLfloat *params); - void (APIENTRY *GetObjectParameterivARB) (GLhandleARB obj, GLenum pname, GLint *params); - void (APIENTRY *GetInfoLogARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); - void (APIENTRY *GetAttachedObjectsARB) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); - GLint (APIENTRY *GetUniformLocationARB) (GLhandleARB programObj, const GLcharARB *name); - void (APIENTRY *GetActiveUniformARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); - void (APIENTRY *GetUniformfvARB) (GLhandleARB programObj, GLint location, GLfloat *params); - void (APIENTRY *GetUniformivARB) (GLhandleARB programObj, GLint location, GLint *params); - void (APIENTRY *GetShaderSourceARB) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); - void (APIENTRY *BindAttribLocationARB) (GLhandleARB programObj, GLuint index, const GLcharARB *name); - void (APIENTRY *GetActiveAttribARB) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); - GLint (APIENTRY *GetAttribLocationARB) (GLhandleARB programObj, const GLcharARB *name); - void (APIENTRY *BlendColorEXT) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); - void (APIENTRY *PolygonOffsetEXT) (GLfloat factor, GLfloat bias); - void (APIENTRY *TexImage3DEXT) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *TexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *GetTexFilterFuncSGIS) (GLenum target, GLenum filter, GLfloat *weights); - void (APIENTRY *TexFilterFuncSGIS) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); - void (APIENTRY *TexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *TexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *CopyTexImage1DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); - void (APIENTRY *CopyTexImage2DEXT) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); - void (APIENTRY *CopyTexSubImage1DEXT) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); - void (APIENTRY *CopyTexSubImage2DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); - void (APIENTRY *CopyTexSubImage3DEXT) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); - void (APIENTRY *GetHistogramEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); - void (APIENTRY *GetHistogramParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetHistogramParameterivEXT) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetMinmaxEXT) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); - void (APIENTRY *GetMinmaxParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetMinmaxParameterivEXT) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *HistogramEXT) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); - void (APIENTRY *MinmaxEXT) (GLenum target, GLenum internalformat, GLboolean sink); - void (APIENTRY *ResetHistogramEXT) (GLenum target); - void (APIENTRY *ResetMinmaxEXT) (GLenum target); - void (APIENTRY *ConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); - void (APIENTRY *ConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); - void (APIENTRY *ConvolutionParameterfEXT) (GLenum target, GLenum pname, GLfloat params); - void (APIENTRY *ConvolutionParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *ConvolutionParameteriEXT) (GLenum target, GLenum pname, GLint params); - void (APIENTRY *ConvolutionParameterivEXT) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *CopyConvolutionFilter1DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); - void (APIENTRY *CopyConvolutionFilter2DEXT) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); - void (APIENTRY *GetConvolutionFilterEXT) (GLenum target, GLenum format, GLenum type, GLvoid *image); - void (APIENTRY *GetConvolutionParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetConvolutionParameterivEXT) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetSeparableFilterEXT) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); - void (APIENTRY *SeparableFilter2DEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); - void (APIENTRY *ColorTableSGI) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); - void (APIENTRY *ColorTableParameterfvSGI) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *ColorTableParameterivSGI) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *CopyColorTableSGI) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); - void (APIENTRY *GetColorTableSGI) (GLenum target, GLenum format, GLenum type, GLvoid *table); - void (APIENTRY *GetColorTableParameterfvSGI) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetColorTableParameterivSGI) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *PixelTexGenSGIX) (GLenum mode); - void (APIENTRY *PixelTexGenParameteriSGIS) (GLenum pname, GLint param); - void (APIENTRY *PixelTexGenParameterivSGIS) (GLenum pname, const GLint *params); - void (APIENTRY *PixelTexGenParameterfSGIS) (GLenum pname, GLfloat param); - void (APIENTRY *PixelTexGenParameterfvSGIS) (GLenum pname, const GLfloat *params); - void (APIENTRY *GetPixelTexGenParameterivSGIS) (GLenum pname, GLint *params); - void (APIENTRY *GetPixelTexGenParameterfvSGIS) (GLenum pname, GLfloat *params); - void (APIENTRY *TexImage4DSGIS) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); - void (APIENTRY *TexSubImage4DSGIS) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); - GLboolean (APIENTRY *AreTexturesResidentEXT) (GLsizei n, const GLuint *textures, GLboolean *residences); - void (APIENTRY *BindTextureEXT) (GLenum target, GLuint texture); - void (APIENTRY *DeleteTexturesEXT) (GLsizei n, const GLuint *textures); - void (APIENTRY *GenTexturesEXT) (GLsizei n, GLuint *textures); - GLboolean (APIENTRY *IsTextureEXT) (GLuint texture); - void (APIENTRY *PrioritizeTexturesEXT) (GLsizei n, const GLuint *textures, const GLclampf *priorities); - void (APIENTRY *DetailTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points); - void (APIENTRY *GetDetailTexFuncSGIS) (GLenum target, GLfloat *points); - void (APIENTRY *SharpenTexFuncSGIS) (GLenum target, GLsizei n, const GLfloat *points); - void (APIENTRY *GetSharpenTexFuncSGIS) (GLenum target, GLfloat *points); - void (APIENTRY *SampleMaskSGIS) (GLclampf value, GLboolean invert); - void (APIENTRY *SamplePatternSGIS) (GLenum pattern); - void (APIENTRY *ArrayElementEXT) (GLint i); - void (APIENTRY *ColorPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - void (APIENTRY *DrawArraysEXT) (GLenum mode, GLint first, GLsizei count); - void (APIENTRY *EdgeFlagPointerEXT) (GLsizei stride, GLsizei count, const GLboolean *pointer); - void (APIENTRY *GetPointervEXT) (GLenum pname, GLvoid* *params); - void (APIENTRY *IndexPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - void (APIENTRY *NormalPointerEXT) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - void (APIENTRY *TexCoordPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - void (APIENTRY *VertexPointerEXT) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - void (APIENTRY *BlendEquationEXT) (GLenum mode); - void (APIENTRY *SpriteParameterfSGIX) (GLenum pname, GLfloat param); - void (APIENTRY *SpriteParameterfvSGIX) (GLenum pname, const GLfloat *params); - void (APIENTRY *SpriteParameteriSGIX) (GLenum pname, GLint param); - void (APIENTRY *SpriteParameterivSGIX) (GLenum pname, const GLint *params); - void (APIENTRY *PointParameterfEXT) (GLenum pname, GLfloat param); - void (APIENTRY *PointParameterfvEXT) (GLenum pname, const GLfloat *params); - void (APIENTRY *PointParameterfSGIS) (GLenum pname, GLfloat param); - void (APIENTRY *PointParameterfvSGIS) (GLenum pname, const GLfloat *params); - GLint (APIENTRY *GetInstrumentsSGIX) (void); - void (APIENTRY *InstrumentsBufferSGIX) (GLsizei size, GLint *buffer); - GLint (APIENTRY *PollInstrumentsSGIX) (GLint *marker_p); - void (APIENTRY *ReadInstrumentsSGIX) (GLint marker); - void (APIENTRY *StartInstrumentsSGIX) (void); - void (APIENTRY *StopInstrumentsSGIX) (GLint marker); - void (APIENTRY *FrameZoomSGIX) (GLint factor); - void (APIENTRY *TagSampleBufferSGIX) (void); - void (APIENTRY *DeformationMap3dSGIX) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); - void (APIENTRY *DeformationMap3fSGIX) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); - void (APIENTRY *DeformSGIX) (GLbitfield mask); - void (APIENTRY *LoadIdentityDeformationMapSGIX) (GLbitfield mask); - void (APIENTRY *ReferencePlaneSGIX) (const GLdouble *equation); - void (APIENTRY *FlushRasterSGIX) (void); - void (APIENTRY *FogFuncSGIS) (GLsizei n, const GLfloat *points); - void (APIENTRY *GetFogFuncSGIS) (GLfloat *points); - void (APIENTRY *ImageTransformParameteriHP) (GLenum target, GLenum pname, GLint param); - void (APIENTRY *ImageTransformParameterfHP) (GLenum target, GLenum pname, GLfloat param); - void (APIENTRY *ImageTransformParameterivHP) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *ImageTransformParameterfvHP) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *GetImageTransformParameterivHP) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetImageTransformParameterfvHP) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *ColorSubTableEXT) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); - void (APIENTRY *CopyColorSubTableEXT) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); - void (APIENTRY *HintPGI) (GLenum target, GLint mode); - void (APIENTRY *ColorTableEXT) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); - void (APIENTRY *GetColorTableEXT) (GLenum target, GLenum format, GLenum type, GLvoid *data); - void (APIENTRY *GetColorTableParameterivEXT) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetColorTableParameterfvEXT) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetListParameterfvSGIX) (GLuint list, GLenum pname, GLfloat *params); - void (APIENTRY *GetListParameterivSGIX) (GLuint list, GLenum pname, GLint *params); - void (APIENTRY *ListParameterfSGIX) (GLuint list, GLenum pname, GLfloat param); - void (APIENTRY *ListParameterfvSGIX) (GLuint list, GLenum pname, const GLfloat *params); - void (APIENTRY *ListParameteriSGIX) (GLuint list, GLenum pname, GLint param); - void (APIENTRY *ListParameterivSGIX) (GLuint list, GLenum pname, const GLint *params); - void (APIENTRY *IndexMaterialEXT) (GLenum face, GLenum mode); - void (APIENTRY *IndexFuncEXT) (GLenum func, GLclampf ref); - void (APIENTRY *LockArraysEXT) (GLint first, GLsizei count); - void (APIENTRY *UnlockArraysEXT) (void); - void (APIENTRY *CullParameterdvEXT) (GLenum pname, GLdouble *params); - void (APIENTRY *CullParameterfvEXT) (GLenum pname, GLfloat *params); - void (APIENTRY *FragmentColorMaterialSGIX) (GLenum face, GLenum mode); - void (APIENTRY *FragmentLightfSGIX) (GLenum light, GLenum pname, GLfloat param); - void (APIENTRY *FragmentLightfvSGIX) (GLenum light, GLenum pname, const GLfloat *params); - void (APIENTRY *FragmentLightiSGIX) (GLenum light, GLenum pname, GLint param); - void (APIENTRY *FragmentLightivSGIX) (GLenum light, GLenum pname, const GLint *params); - void (APIENTRY *FragmentLightModelfSGIX) (GLenum pname, GLfloat param); - void (APIENTRY *FragmentLightModelfvSGIX) (GLenum pname, const GLfloat *params); - void (APIENTRY *FragmentLightModeliSGIX) (GLenum pname, GLint param); - void (APIENTRY *FragmentLightModelivSGIX) (GLenum pname, const GLint *params); - void (APIENTRY *FragmentMaterialfSGIX) (GLenum face, GLenum pname, GLfloat param); - void (APIENTRY *FragmentMaterialfvSGIX) (GLenum face, GLenum pname, const GLfloat *params); - void (APIENTRY *FragmentMaterialiSGIX) (GLenum face, GLenum pname, GLint param); - void (APIENTRY *FragmentMaterialivSGIX) (GLenum face, GLenum pname, const GLint *params); - void (APIENTRY *GetFragmentLightfvSGIX) (GLenum light, GLenum pname, GLfloat *params); - void (APIENTRY *GetFragmentLightivSGIX) (GLenum light, GLenum pname, GLint *params); - void (APIENTRY *GetFragmentMaterialfvSGIX) (GLenum face, GLenum pname, GLfloat *params); - void (APIENTRY *GetFragmentMaterialivSGIX) (GLenum face, GLenum pname, GLint *params); - void (APIENTRY *LightEnviSGIX) (GLenum pname, GLint param); - void (APIENTRY *DrawRangeElementsEXT) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); - void (APIENTRY *ApplyTextureEXT) (GLenum mode); - void (APIENTRY *TextureLightEXT) (GLenum pname); - void (APIENTRY *TextureMaterialEXT) (GLenum face, GLenum mode); - void (APIENTRY *AsyncMarkerSGIX) (GLuint marker); - GLint (APIENTRY *FinishAsyncSGIX) (GLuint *markerp); - GLint (APIENTRY *PollAsyncSGIX) (GLuint *markerp); - GLuint (APIENTRY *GenAsyncMarkersSGIX) (GLsizei range); - void (APIENTRY *DeleteAsyncMarkersSGIX) (GLuint marker, GLsizei range); - GLboolean (APIENTRY *IsAsyncMarkerSGIX) (GLuint marker); - void (APIENTRY *VertexPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer); - void (APIENTRY *NormalPointervINTEL) (GLenum type, const GLvoid* *pointer); - void (APIENTRY *ColorPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer); - void (APIENTRY *TexCoordPointervINTEL) (GLint size, GLenum type, const GLvoid* *pointer); - void (APIENTRY *PixelTransformParameteriEXT) (GLenum target, GLenum pname, GLint param); - void (APIENTRY *PixelTransformParameterfEXT) (GLenum target, GLenum pname, GLfloat param); - void (APIENTRY *PixelTransformParameterivEXT) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *PixelTransformParameterfvEXT) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *SecondaryColor3bEXT) (GLbyte red, GLbyte green, GLbyte blue); - void (APIENTRY *SecondaryColor3bvEXT) (const GLbyte *v); - void (APIENTRY *SecondaryColor3dEXT) (GLdouble red, GLdouble green, GLdouble blue); - void (APIENTRY *SecondaryColor3dvEXT) (const GLdouble *v); - void (APIENTRY *SecondaryColor3fEXT) (GLfloat red, GLfloat green, GLfloat blue); - void (APIENTRY *SecondaryColor3fvEXT) (const GLfloat *v); - void (APIENTRY *SecondaryColor3iEXT) (GLint red, GLint green, GLint blue); - void (APIENTRY *SecondaryColor3ivEXT) (const GLint *v); - void (APIENTRY *SecondaryColor3sEXT) (GLshort red, GLshort green, GLshort blue); - void (APIENTRY *SecondaryColor3svEXT) (const GLshort *v); - void (APIENTRY *SecondaryColor3ubEXT) (GLubyte red, GLubyte green, GLubyte blue); - void (APIENTRY *SecondaryColor3ubvEXT) (const GLubyte *v); - void (APIENTRY *SecondaryColor3uiEXT) (GLuint red, GLuint green, GLuint blue); - void (APIENTRY *SecondaryColor3uivEXT) (const GLuint *v); - void (APIENTRY *SecondaryColor3usEXT) (GLushort red, GLushort green, GLushort blue); - void (APIENTRY *SecondaryColor3usvEXT) (const GLushort *v); - void (APIENTRY *SecondaryColorPointerEXT) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *TextureNormalEXT) (GLenum mode); - void (APIENTRY *MultiDrawArraysEXT) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); - void (APIENTRY *MultiDrawElementsEXT) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); - void (APIENTRY *FogCoordfEXT) (GLfloat coord); - void (APIENTRY *FogCoordfvEXT) (const GLfloat *coord); - void (APIENTRY *FogCoorddEXT) (GLdouble coord); - void (APIENTRY *FogCoorddvEXT) (const GLdouble *coord); - void (APIENTRY *FogCoordPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *Tangent3bEXT) (GLbyte tx, GLbyte ty, GLbyte tz); - void (APIENTRY *Tangent3bvEXT) (const GLbyte *v); - void (APIENTRY *Tangent3dEXT) (GLdouble tx, GLdouble ty, GLdouble tz); - void (APIENTRY *Tangent3dvEXT) (const GLdouble *v); - void (APIENTRY *Tangent3fEXT) (GLfloat tx, GLfloat ty, GLfloat tz); - void (APIENTRY *Tangent3fvEXT) (const GLfloat *v); - void (APIENTRY *Tangent3iEXT) (GLint tx, GLint ty, GLint tz); - void (APIENTRY *Tangent3ivEXT) (const GLint *v); - void (APIENTRY *Tangent3sEXT) (GLshort tx, GLshort ty, GLshort tz); - void (APIENTRY *Tangent3svEXT) (const GLshort *v); - void (APIENTRY *Binormal3bEXT) (GLbyte bx, GLbyte by, GLbyte bz); - void (APIENTRY *Binormal3bvEXT) (const GLbyte *v); - void (APIENTRY *Binormal3dEXT) (GLdouble bx, GLdouble by, GLdouble bz); - void (APIENTRY *Binormal3dvEXT) (const GLdouble *v); - void (APIENTRY *Binormal3fEXT) (GLfloat bx, GLfloat by, GLfloat bz); - void (APIENTRY *Binormal3fvEXT) (const GLfloat *v); - void (APIENTRY *Binormal3iEXT) (GLint bx, GLint by, GLint bz); - void (APIENTRY *Binormal3ivEXT) (const GLint *v); - void (APIENTRY *Binormal3sEXT) (GLshort bx, GLshort by, GLshort bz); - void (APIENTRY *Binormal3svEXT) (const GLshort *v); - void (APIENTRY *TangentPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *BinormalPointerEXT) (GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *FinishTextureSUNX) (void); - void (APIENTRY *GlobalAlphaFactorbSUN) (GLbyte factor); - void (APIENTRY *GlobalAlphaFactorsSUN) (GLshort factor); - void (APIENTRY *GlobalAlphaFactoriSUN) (GLint factor); - void (APIENTRY *GlobalAlphaFactorfSUN) (GLfloat factor); - void (APIENTRY *GlobalAlphaFactordSUN) (GLdouble factor); - void (APIENTRY *GlobalAlphaFactorubSUN) (GLubyte factor); - void (APIENTRY *GlobalAlphaFactorusSUN) (GLushort factor); - void (APIENTRY *GlobalAlphaFactoruiSUN) (GLuint factor); - void (APIENTRY *ReplacementCodeuiSUN) (GLuint code); - void (APIENTRY *ReplacementCodeusSUN) (GLushort code); - void (APIENTRY *ReplacementCodeubSUN) (GLubyte code); - void (APIENTRY *ReplacementCodeuivSUN) (const GLuint *code); - void (APIENTRY *ReplacementCodeusvSUN) (const GLushort *code); - void (APIENTRY *ReplacementCodeubvSUN) (const GLubyte *code); - void (APIENTRY *ReplacementCodePointerSUN) (GLenum type, GLsizei stride, const GLvoid* *pointer); - void (APIENTRY *Color4ubVertex2fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); - void (APIENTRY *Color4ubVertex2fvSUN) (const GLubyte *c, const GLfloat *v); - void (APIENTRY *Color4ubVertex3fSUN) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *Color4ubVertex3fvSUN) (const GLubyte *c, const GLfloat *v); - void (APIENTRY *Color3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *Color3fVertex3fvSUN) (const GLfloat *c, const GLfloat *v); - void (APIENTRY *Normal3fVertex3fSUN) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *Normal3fVertex3fvSUN) (const GLfloat *n, const GLfloat *v); - void (APIENTRY *Color4fNormal3fVertex3fSUN) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *Color4fNormal3fVertex3fvSUN) (const GLfloat *c, const GLfloat *n, const GLfloat *v); - void (APIENTRY *TexCoord2fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *TexCoord2fVertex3fvSUN) (const GLfloat *tc, const GLfloat *v); - void (APIENTRY *TexCoord4fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *TexCoord4fVertex4fvSUN) (const GLfloat *tc, const GLfloat *v); - void (APIENTRY *TexCoord2fColor4ubVertex3fSUN) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *TexCoord2fColor4ubVertex3fvSUN) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); - void (APIENTRY *TexCoord2fColor3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *TexCoord2fColor3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); - void (APIENTRY *TexCoord2fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *TexCoord2fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); - void (APIENTRY *TexCoord2fColor4fNormal3fVertex3fSUN) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *TexCoord2fColor4fNormal3fVertex3fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); - void (APIENTRY *TexCoord4fColor4fNormal3fVertex4fSUN) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *TexCoord4fColor4fNormal3fVertex4fvSUN) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiVertex3fSUN) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiVertex3fvSUN) (const GLuint *rc, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiColor4ubVertex3fSUN) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiColor4ubVertex3fvSUN) (const GLuint *rc, const GLubyte *c, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiColor3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiColor3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiNormal3fVertex3fSUN) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *n, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiTexCoord2fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiTexCoord2fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); - void (APIENTRY *ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); - void (APIENTRY *BlendFuncSeparateEXT) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - void (APIENTRY *BlendFuncSeparateINGR) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); - void (APIENTRY *VertexWeightfEXT) (GLfloat weight); - void (APIENTRY *VertexWeightfvEXT) (const GLfloat *weight); - void (APIENTRY *VertexWeightPointerEXT) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *FlushVertexArrayRangeNV) (void); - void (APIENTRY *VertexArrayRangeNV) (GLsizei length, const GLvoid *pointer); - void (APIENTRY *CombinerParameterfvNV) (GLenum pname, const GLfloat *params); - void (APIENTRY *CombinerParameterfNV) (GLenum pname, GLfloat param); - void (APIENTRY *CombinerParameterivNV) (GLenum pname, const GLint *params); - void (APIENTRY *CombinerParameteriNV) (GLenum pname, GLint param); - void (APIENTRY *CombinerInputNV) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); - void (APIENTRY *CombinerOutputNV) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); - void (APIENTRY *FinalCombinerInputNV) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); - void (APIENTRY *GetCombinerInputParameterfvNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); - void (APIENTRY *GetCombinerInputParameterivNV) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); - void (APIENTRY *GetCombinerOutputParameterfvNV) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); - void (APIENTRY *GetCombinerOutputParameterivNV) (GLenum stage, GLenum portion, GLenum pname, GLint *params); - void (APIENTRY *GetFinalCombinerInputParameterfvNV) (GLenum variable, GLenum pname, GLfloat *params); - void (APIENTRY *GetFinalCombinerInputParameterivNV) (GLenum variable, GLenum pname, GLint *params); - void (APIENTRY *ResizeBuffersMESA) (void); - void (APIENTRY *WindowPos2dMESA) (GLdouble x, GLdouble y); - void (APIENTRY *WindowPos2dvMESA) (const GLdouble *v); - void (APIENTRY *WindowPos2fMESA) (GLfloat x, GLfloat y); - void (APIENTRY *WindowPos2fvMESA) (const GLfloat *v); - void (APIENTRY *WindowPos2iMESA) (GLint x, GLint y); - void (APIENTRY *WindowPos2ivMESA) (const GLint *v); - void (APIENTRY *WindowPos2sMESA) (GLshort x, GLshort y); - void (APIENTRY *WindowPos2svMESA) (const GLshort *v); - void (APIENTRY *WindowPos3dMESA) (GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *WindowPos3dvMESA) (const GLdouble *v); - void (APIENTRY *WindowPos3fMESA) (GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *WindowPos3fvMESA) (const GLfloat *v); - void (APIENTRY *WindowPos3iMESA) (GLint x, GLint y, GLint z); - void (APIENTRY *WindowPos3ivMESA) (const GLint *v); - void (APIENTRY *WindowPos3sMESA) (GLshort x, GLshort y, GLshort z); - void (APIENTRY *WindowPos3svMESA) (const GLshort *v); - void (APIENTRY *WindowPos4dMESA) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *WindowPos4dvMESA) (const GLdouble *v); - void (APIENTRY *WindowPos4fMESA) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *WindowPos4fvMESA) (const GLfloat *v); - void (APIENTRY *WindowPos4iMESA) (GLint x, GLint y, GLint z, GLint w); - void (APIENTRY *WindowPos4ivMESA) (const GLint *v); - void (APIENTRY *WindowPos4sMESA) (GLshort x, GLshort y, GLshort z, GLshort w); - void (APIENTRY *WindowPos4svMESA) (const GLshort *v); - void (APIENTRY *MultiModeDrawArraysIBM) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); - void (APIENTRY *MultiModeDrawElementsIBM) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); - void (APIENTRY *ColorPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *SecondaryColorPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *EdgeFlagPointerListIBM) (GLint stride, const GLboolean* *pointer, GLint ptrstride); - void (APIENTRY *FogCoordPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *IndexPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *NormalPointerListIBM) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *TexCoordPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *VertexPointerListIBM) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); - void (APIENTRY *TbufferMask3DFX) (GLuint mask); - void (APIENTRY *SampleMaskEXT) (GLclampf value, GLboolean invert); - void (APIENTRY *SamplePatternEXT) (GLenum pattern); - void (APIENTRY *TextureColorMaskSGIS) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); - void (APIENTRY *IglooInterfaceSGIX) (GLenum pname, const GLvoid *params); - void (APIENTRY *DeleteFencesNV) (GLsizei n, const GLuint *fences); - void (APIENTRY *GenFencesNV) (GLsizei n, GLuint *fences); - GLboolean (APIENTRY *IsFenceNV) (GLuint fence); - GLboolean (APIENTRY *TestFenceNV) (GLuint fence); - void (APIENTRY *GetFenceivNV) (GLuint fence, GLenum pname, GLint *params); - void (APIENTRY *FinishFenceNV) (GLuint fence); - void (APIENTRY *SetFenceNV) (GLuint fence, GLenum condition); - void (APIENTRY *MapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); - void (APIENTRY *MapParameterivNV) (GLenum target, GLenum pname, const GLint *params); - void (APIENTRY *MapParameterfvNV) (GLenum target, GLenum pname, const GLfloat *params); - void (APIENTRY *GetMapControlPointsNV) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); - void (APIENTRY *GetMapParameterivNV) (GLenum target, GLenum pname, GLint *params); - void (APIENTRY *GetMapParameterfvNV) (GLenum target, GLenum pname, GLfloat *params); - void (APIENTRY *GetMapAttribParameterivNV) (GLenum target, GLuint index, GLenum pname, GLint *params); - void (APIENTRY *GetMapAttribParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params); - void (APIENTRY *EvalMapsNV) (GLenum target, GLenum mode); - void (APIENTRY *CombinerStageParameterfvNV) (GLenum stage, GLenum pname, const GLfloat *params); - void (APIENTRY *GetCombinerStageParameterfvNV) (GLenum stage, GLenum pname, GLfloat *params); - GLboolean (APIENTRY *AreProgramsResidentNV) (GLsizei n, const GLuint *programs, GLboolean *residences); - void (APIENTRY *BindProgramNV) (GLenum target, GLuint id); - void (APIENTRY *DeleteProgramsNV) (GLsizei n, const GLuint *programs); - void (APIENTRY *ExecuteProgramNV) (GLenum target, GLuint id, const GLfloat *params); - void (APIENTRY *GenProgramsNV) (GLsizei n, GLuint *programs); - void (APIENTRY *GetProgramParameterdvNV) (GLenum target, GLuint index, GLenum pname, GLdouble *params); - void (APIENTRY *GetProgramParameterfvNV) (GLenum target, GLuint index, GLenum pname, GLfloat *params); - void (APIENTRY *GetProgramivNV) (GLuint id, GLenum pname, GLint *params); - void (APIENTRY *GetProgramStringNV) (GLuint id, GLenum pname, GLubyte *program); - void (APIENTRY *GetTrackMatrixivNV) (GLenum target, GLuint address, GLenum pname, GLint *params); - void (APIENTRY *GetVertexAttribdvNV) (GLuint index, GLenum pname, GLdouble *params); - void (APIENTRY *GetVertexAttribfvNV) (GLuint index, GLenum pname, GLfloat *params); - void (APIENTRY *GetVertexAttribivNV) (GLuint index, GLenum pname, GLint *params); - void (APIENTRY *GetVertexAttribPointervNV) (GLuint index, GLenum pname, GLvoid* *pointer); - GLboolean (APIENTRY *IsProgramNV) (GLuint id); - void (APIENTRY *LoadProgramNV) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); - void (APIENTRY *ProgramParameter4dNV) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *ProgramParameter4dvNV) (GLenum target, GLuint index, const GLdouble *v); - void (APIENTRY *ProgramParameter4fNV) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *ProgramParameter4fvNV) (GLenum target, GLuint index, const GLfloat *v); - void (APIENTRY *ProgramParameters4dvNV) (GLenum target, GLuint index, GLuint count, const GLdouble *v); - void (APIENTRY *ProgramParameters4fvNV) (GLenum target, GLuint index, GLuint count, const GLfloat *v); - void (APIENTRY *RequestResidentProgramsNV) (GLsizei n, const GLuint *programs); - void (APIENTRY *TrackMatrixNV) (GLenum target, GLuint address, GLenum matrix, GLenum transform); - void (APIENTRY *VertexAttribPointerNV) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); - void (APIENTRY *VertexAttrib1dNV) (GLuint index, GLdouble x); - void (APIENTRY *VertexAttrib1dvNV) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib1fNV) (GLuint index, GLfloat x); - void (APIENTRY *VertexAttrib1fvNV) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib1sNV) (GLuint index, GLshort x); - void (APIENTRY *VertexAttrib1svNV) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib2dNV) (GLuint index, GLdouble x, GLdouble y); - void (APIENTRY *VertexAttrib2dvNV) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib2fNV) (GLuint index, GLfloat x, GLfloat y); - void (APIENTRY *VertexAttrib2fvNV) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib2sNV) (GLuint index, GLshort x, GLshort y); - void (APIENTRY *VertexAttrib2svNV) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib3dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *VertexAttrib3dvNV) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib3fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *VertexAttrib3fvNV) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib3sNV) (GLuint index, GLshort x, GLshort y, GLshort z); - void (APIENTRY *VertexAttrib3svNV) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib4dNV) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *VertexAttrib4dvNV) (GLuint index, const GLdouble *v); - void (APIENTRY *VertexAttrib4fNV) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *VertexAttrib4fvNV) (GLuint index, const GLfloat *v); - void (APIENTRY *VertexAttrib4sNV) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); - void (APIENTRY *VertexAttrib4svNV) (GLuint index, const GLshort *v); - void (APIENTRY *VertexAttrib4ubNV) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); - void (APIENTRY *VertexAttrib4ubvNV) (GLuint index, const GLubyte *v); - void (APIENTRY *VertexAttribs1dvNV) (GLuint index, GLsizei count, const GLdouble *v); - void (APIENTRY *VertexAttribs1fvNV) (GLuint index, GLsizei count, const GLfloat *v); - void (APIENTRY *VertexAttribs1svNV) (GLuint index, GLsizei count, const GLshort *v); - void (APIENTRY *VertexAttribs2dvNV) (GLuint index, GLsizei count, const GLdouble *v); - void (APIENTRY *VertexAttribs2fvNV) (GLuint index, GLsizei count, const GLfloat *v); - void (APIENTRY *VertexAttribs2svNV) (GLuint index, GLsizei count, const GLshort *v); - void (APIENTRY *VertexAttribs3dvNV) (GLuint index, GLsizei count, const GLdouble *v); - void (APIENTRY *VertexAttribs3fvNV) (GLuint index, GLsizei count, const GLfloat *v); - void (APIENTRY *VertexAttribs3svNV) (GLuint index, GLsizei count, const GLshort *v); - void (APIENTRY *VertexAttribs4dvNV) (GLuint index, GLsizei count, const GLdouble *v); - void (APIENTRY *VertexAttribs4fvNV) (GLuint index, GLsizei count, const GLfloat *v); - void (APIENTRY *VertexAttribs4svNV) (GLuint index, GLsizei count, const GLshort *v); - void (APIENTRY *VertexAttribs4ubvNV) (GLuint index, GLsizei count, const GLubyte *v); - void (APIENTRY *TexBumpParameterivATI) (GLenum pname, const GLint *param); - void (APIENTRY *TexBumpParameterfvATI) (GLenum pname, const GLfloat *param); - void (APIENTRY *GetTexBumpParameterivATI) (GLenum pname, GLint *param); - void (APIENTRY *GetTexBumpParameterfvATI) (GLenum pname, GLfloat *param); - GLuint (APIENTRY *GenFragmentShadersATI) (GLuint range); - void (APIENTRY *BindFragmentShaderATI) (GLuint id); - void (APIENTRY *DeleteFragmentShaderATI) (GLuint id); - void (APIENTRY *BeginFragmentShaderATI) (void); - void (APIENTRY *EndFragmentShaderATI) (void); - void (APIENTRY *PassTexCoordATI) (GLuint dst, GLuint coord, GLenum swizzle); - void (APIENTRY *SampleMapATI) (GLuint dst, GLuint interp, GLenum swizzle); - void (APIENTRY *ColorFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); - void (APIENTRY *ColorFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); - void (APIENTRY *ColorFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); - void (APIENTRY *AlphaFragmentOp1ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); - void (APIENTRY *AlphaFragmentOp2ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); - void (APIENTRY *AlphaFragmentOp3ATI) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); - void (APIENTRY *SetFragmentShaderConstantATI) (GLuint dst, const GLfloat *value); - void (APIENTRY *PNTrianglesiATI) (GLenum pname, GLint param); - void (APIENTRY *PNTrianglesfATI) (GLenum pname, GLfloat param); - GLuint (APIENTRY *NewObjectBufferATI) (GLsizei size, const GLvoid *pointer, GLenum usage); - GLboolean (APIENTRY *IsObjectBufferATI) (GLuint buffer); - void (APIENTRY *UpdateObjectBufferATI) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); - void (APIENTRY *GetObjectBufferfvATI) (GLuint buffer, GLenum pname, GLfloat *params); - void (APIENTRY *GetObjectBufferivATI) (GLuint buffer, GLenum pname, GLint *params); - void (APIENTRY *FreeObjectBufferATI) (GLuint buffer); - void (APIENTRY *ArrayObjectATI) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); - void (APIENTRY *GetArrayObjectfvATI) (GLenum array, GLenum pname, GLfloat *params); - void (APIENTRY *GetArrayObjectivATI) (GLenum array, GLenum pname, GLint *params); - void (APIENTRY *VariantArrayObjectATI) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); - void (APIENTRY *GetVariantArrayObjectfvATI) (GLuint id, GLenum pname, GLfloat *params); - void (APIENTRY *GetVariantArrayObjectivATI) (GLuint id, GLenum pname, GLint *params); - void (APIENTRY *BeginVertexShaderEXT) (void); - void (APIENTRY *EndVertexShaderEXT) (void); - void (APIENTRY *BindVertexShaderEXT) (GLuint id); - GLuint (APIENTRY *GenVertexShadersEXT) (GLuint range); - void (APIENTRY *DeleteVertexShaderEXT) (GLuint id); - void (APIENTRY *ShaderOp1EXT) (GLenum op, GLuint res, GLuint arg1); - void (APIENTRY *ShaderOp2EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); - void (APIENTRY *ShaderOp3EXT) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); - void (APIENTRY *SwizzleEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); - void (APIENTRY *WriteMaskEXT) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); - void (APIENTRY *InsertComponentEXT) (GLuint res, GLuint src, GLuint num); - void (APIENTRY *ExtractComponentEXT) (GLuint res, GLuint src, GLuint num); - GLuint (APIENTRY *GenSymbolsEXT) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); - void (APIENTRY *SetInvariantEXT) (GLuint id, GLenum type, const GLvoid *addr); - void (APIENTRY *SetLocalConstantEXT) (GLuint id, GLenum type, const GLvoid *addr); - void (APIENTRY *VariantbvEXT) (GLuint id, const GLbyte *addr); - void (APIENTRY *VariantsvEXT) (GLuint id, const GLshort *addr); - void (APIENTRY *VariantivEXT) (GLuint id, const GLint *addr); - void (APIENTRY *VariantfvEXT) (GLuint id, const GLfloat *addr); - void (APIENTRY *VariantdvEXT) (GLuint id, const GLdouble *addr); - void (APIENTRY *VariantubvEXT) (GLuint id, const GLubyte *addr); - void (APIENTRY *VariantusvEXT) (GLuint id, const GLushort *addr); - void (APIENTRY *VariantuivEXT) (GLuint id, const GLuint *addr); - void (APIENTRY *VariantPointerEXT) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); - void (APIENTRY *EnableVariantClientStateEXT) (GLuint id); - void (APIENTRY *DisableVariantClientStateEXT) (GLuint id); - GLuint (APIENTRY *BindLightParameterEXT) (GLenum light, GLenum value); - GLuint (APIENTRY *BindMaterialParameterEXT) (GLenum face, GLenum value); - GLuint (APIENTRY *BindTexGenParameterEXT) (GLenum unit, GLenum coord, GLenum value); - GLuint (APIENTRY *BindTextureUnitParameterEXT) (GLenum unit, GLenum value); - GLuint (APIENTRY *BindParameterEXT) (GLenum value); - GLboolean (APIENTRY *IsVariantEnabledEXT) (GLuint id, GLenum cap); - void (APIENTRY *GetVariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); - void (APIENTRY *GetVariantIntegervEXT) (GLuint id, GLenum value, GLint *data); - void (APIENTRY *GetVariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); - void (APIENTRY *GetVariantPointervEXT) (GLuint id, GLenum value, GLvoid* *data); - void (APIENTRY *GetInvariantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); - void (APIENTRY *GetInvariantIntegervEXT) (GLuint id, GLenum value, GLint *data); - void (APIENTRY *GetInvariantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); - void (APIENTRY *GetLocalConstantBooleanvEXT) (GLuint id, GLenum value, GLboolean *data); - void (APIENTRY *GetLocalConstantIntegervEXT) (GLuint id, GLenum value, GLint *data); - void (APIENTRY *GetLocalConstantFloatvEXT) (GLuint id, GLenum value, GLfloat *data); - void (APIENTRY *VertexStream1sATI) (GLenum stream, GLshort x); - void (APIENTRY *VertexStream1svATI) (GLenum stream, const GLshort *coords); - void (APIENTRY *VertexStream1iATI) (GLenum stream, GLint x); - void (APIENTRY *VertexStream1ivATI) (GLenum stream, const GLint *coords); - void (APIENTRY *VertexStream1fATI) (GLenum stream, GLfloat x); - void (APIENTRY *VertexStream1fvATI) (GLenum stream, const GLfloat *coords); - void (APIENTRY *VertexStream1dATI) (GLenum stream, GLdouble x); - void (APIENTRY *VertexStream1dvATI) (GLenum stream, const GLdouble *coords); - void (APIENTRY *VertexStream2sATI) (GLenum stream, GLshort x, GLshort y); - void (APIENTRY *VertexStream2svATI) (GLenum stream, const GLshort *coords); - void (APIENTRY *VertexStream2iATI) (GLenum stream, GLint x, GLint y); - void (APIENTRY *VertexStream2ivATI) (GLenum stream, const GLint *coords); - void (APIENTRY *VertexStream2fATI) (GLenum stream, GLfloat x, GLfloat y); - void (APIENTRY *VertexStream2fvATI) (GLenum stream, const GLfloat *coords); - void (APIENTRY *VertexStream2dATI) (GLenum stream, GLdouble x, GLdouble y); - void (APIENTRY *VertexStream2dvATI) (GLenum stream, const GLdouble *coords); - void (APIENTRY *VertexStream3sATI) (GLenum stream, GLshort x, GLshort y, GLshort z); - void (APIENTRY *VertexStream3svATI) (GLenum stream, const GLshort *coords); - void (APIENTRY *VertexStream3iATI) (GLenum stream, GLint x, GLint y, GLint z); - void (APIENTRY *VertexStream3ivATI) (GLenum stream, const GLint *coords); - void (APIENTRY *VertexStream3fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); - void (APIENTRY *VertexStream3fvATI) (GLenum stream, const GLfloat *coords); - void (APIENTRY *VertexStream3dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); - void (APIENTRY *VertexStream3dvATI) (GLenum stream, const GLdouble *coords); - void (APIENTRY *VertexStream4sATI) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); - void (APIENTRY *VertexStream4svATI) (GLenum stream, const GLshort *coords); - void (APIENTRY *VertexStream4iATI) (GLenum stream, GLint x, GLint y, GLint z, GLint w); - void (APIENTRY *VertexStream4ivATI) (GLenum stream, const GLint *coords); - void (APIENTRY *VertexStream4fATI) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *VertexStream4fvATI) (GLenum stream, const GLfloat *coords); - void (APIENTRY *VertexStream4dATI) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *VertexStream4dvATI) (GLenum stream, const GLdouble *coords); - void (APIENTRY *NormalStream3bATI) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); - void (APIENTRY *NormalStream3bvATI) (GLenum stream, const GLbyte *coords); - void (APIENTRY *NormalStream3sATI) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); - void (APIENTRY *NormalStream3svATI) (GLenum stream, const GLshort *coords); - void (APIENTRY *NormalStream3iATI) (GLenum stream, GLint nx, GLint ny, GLint nz); - void (APIENTRY *NormalStream3ivATI) (GLenum stream, const GLint *coords); - void (APIENTRY *NormalStream3fATI) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); - void (APIENTRY *NormalStream3fvATI) (GLenum stream, const GLfloat *coords); - void (APIENTRY *NormalStream3dATI) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); - void (APIENTRY *NormalStream3dvATI) (GLenum stream, const GLdouble *coords); - void (APIENTRY *ClientActiveVertexStreamATI) (GLenum stream); - void (APIENTRY *VertexBlendEnviATI) (GLenum pname, GLint param); - void (APIENTRY *VertexBlendEnvfATI) (GLenum pname, GLfloat param); - void (APIENTRY *ElementPointerATI) (GLenum type, const GLvoid *pointer); - void (APIENTRY *DrawElementArrayATI) (GLenum mode, GLsizei count); - void (APIENTRY *DrawRangeElementArrayATI) (GLenum mode, GLuint start, GLuint end, GLsizei count); - void (APIENTRY *DrawMeshArraysSUN) (GLenum mode, GLint first, GLsizei count, GLsizei width); - void (APIENTRY *GenOcclusionQueriesNV) (GLsizei n, GLuint *ids); - void (APIENTRY *DeleteOcclusionQueriesNV) (GLsizei n, const GLuint *ids); - GLboolean (APIENTRY *IsOcclusionQueryNV) (GLuint id); - void (APIENTRY *BeginOcclusionQueryNV) (GLuint id); - void (APIENTRY *EndOcclusionQueryNV) (void); - void (APIENTRY *GetOcclusionQueryivNV) (GLuint id, GLenum pname, GLint *params); - void (APIENTRY *GetOcclusionQueryuivNV) (GLuint id, GLenum pname, GLuint *params); - void (APIENTRY *PointParameteriNV) (GLenum pname, GLint param); - void (APIENTRY *PointParameterivNV) (GLenum pname, const GLint *params); - void (APIENTRY *ActiveStencilFaceEXT) (GLenum face); - void (APIENTRY *DrawBuffersATI) (GLsizei n, const GLenum *bufs); - void (APIENTRY *ProgramNamedParameter4fNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); - void (APIENTRY *ProgramNamedParameter4dNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); - void (APIENTRY *ProgramNamedParameter4fvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); - void (APIENTRY *ProgramNamedParameter4dvNV) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); - void (APIENTRY *GetProgramNamedParameterfvNV) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); - void (APIENTRY *GetProgramNamedParameterdvNV) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); - void (APIENTRY *Vertex2hNV) (GLhalfNV x, GLhalfNV y); - void (APIENTRY *Vertex2hvNV) (const GLhalfNV *v); - void (APIENTRY *Vertex3hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z); - void (APIENTRY *Vertex3hvNV) (const GLhalfNV *v); - void (APIENTRY *Vertex4hNV) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); - void (APIENTRY *Vertex4hvNV) (const GLhalfNV *v); - void (APIENTRY *Normal3hNV) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); - void (APIENTRY *Normal3hvNV) (const GLhalfNV *v); - void (APIENTRY *Color3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); - void (APIENTRY *Color3hvNV) (const GLhalfNV *v); - void (APIENTRY *Color4hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); - void (APIENTRY *Color4hvNV) (const GLhalfNV *v); - void (APIENTRY *TexCoord1hNV) (GLhalfNV s); - void (APIENTRY *TexCoord1hvNV) (const GLhalfNV *v); - void (APIENTRY *TexCoord2hNV) (GLhalfNV s, GLhalfNV t); - void (APIENTRY *TexCoord2hvNV) (const GLhalfNV *v); - void (APIENTRY *TexCoord3hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r); - void (APIENTRY *TexCoord3hvNV) (const GLhalfNV *v); - void (APIENTRY *TexCoord4hNV) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); - void (APIENTRY *TexCoord4hvNV) (const GLhalfNV *v); - void (APIENTRY *MultiTexCoord1hNV) (GLenum target, GLhalfNV s); - void (APIENTRY *MultiTexCoord1hvNV) (GLenum target, const GLhalfNV *v); - void (APIENTRY *MultiTexCoord2hNV) (GLenum target, GLhalfNV s, GLhalfNV t); - void (APIENTRY *MultiTexCoord2hvNV) (GLenum target, const GLhalfNV *v); - void (APIENTRY *MultiTexCoord3hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); - void (APIENTRY *MultiTexCoord3hvNV) (GLenum target, const GLhalfNV *v); - void (APIENTRY *MultiTexCoord4hNV) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); - void (APIENTRY *MultiTexCoord4hvNV) (GLenum target, const GLhalfNV *v); - void (APIENTRY *FogCoordhNV) (GLhalfNV fog); - void (APIENTRY *FogCoordhvNV) (const GLhalfNV *fog); - void (APIENTRY *SecondaryColor3hNV) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); - void (APIENTRY *SecondaryColor3hvNV) (const GLhalfNV *v); - void (APIENTRY *VertexWeighthNV) (GLhalfNV weight); - void (APIENTRY *VertexWeighthvNV) (const GLhalfNV *weight); - void (APIENTRY *VertexAttrib1hNV) (GLuint index, GLhalfNV x); - void (APIENTRY *VertexAttrib1hvNV) (GLuint index, const GLhalfNV *v); - void (APIENTRY *VertexAttrib2hNV) (GLuint index, GLhalfNV x, GLhalfNV y); - void (APIENTRY *VertexAttrib2hvNV) (GLuint index, const GLhalfNV *v); - void (APIENTRY *VertexAttrib3hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); - void (APIENTRY *VertexAttrib3hvNV) (GLuint index, const GLhalfNV *v); - void (APIENTRY *VertexAttrib4hNV) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); - void (APIENTRY *VertexAttrib4hvNV) (GLuint index, const GLhalfNV *v); - void (APIENTRY *VertexAttribs1hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); - void (APIENTRY *VertexAttribs2hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); - void (APIENTRY *VertexAttribs3hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); - void (APIENTRY *VertexAttribs4hvNV) (GLuint index, GLsizei n, const GLhalfNV *v); - void (APIENTRY *PixelDataRangeNV) (GLenum target, GLsizei length, GLvoid *pointer); - void (APIENTRY *FlushPixelDataRangeNV) (GLenum target); - void (APIENTRY *PrimitiveRestartNV) (void); - void (APIENTRY *PrimitiveRestartIndexNV) (GLuint index); - GLvoid* (APIENTRY *MapObjectBufferATI) (GLuint buffer); - void (APIENTRY *UnmapObjectBufferATI) (GLuint buffer); - void (APIENTRY *StencilOpSeparateATI) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); - void (APIENTRY *StencilFuncSeparateATI) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); - void (APIENTRY *VertexAttribArrayObjectATI) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); - void (APIENTRY *GetVertexAttribArrayObjectfvATI) (GLuint index, GLenum pname, GLfloat *params); - void (APIENTRY *GetVertexAttribArrayObjectivATI) (GLuint index, GLenum pname, GLint *params); - void (APIENTRY *DepthBoundsEXT) (GLclampd zmin, GLclampd zmax); - void (APIENTRY *BlendEquationSeparateEXT) (GLenum modeRGB, GLenum modeAlpha); - void (APIENTRY *AddSwapHintRectWIN) (GLint x, GLint y, GLsizei width, GLsizei height); - - void (APIENTRY *BindFramebufferEXT) (GLenum target, GLuint framebuffer); - void (APIENTRY *BindRenderbufferEXT) (GLenum target, GLuint renderbuffer); - GLenum (APIENTRY *CheckFramebufferStatusEXT) (GLenum target); - void (APIENTRY *DeleteFramebuffersEXT) (GLsizei n, const GLuint* framebuffers); - void (APIENTRY *DeleteRenderbuffersEXT) (GLsizei n, const GLuint* renderbuffers); - void (APIENTRY *FramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); - void (APIENTRY *FramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); - void (APIENTRY *FramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); - void (APIENTRY *FramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); - void (APIENTRY *GenFramebuffersEXT) (GLsizei n, GLuint* framebuffers); - void (APIENTRY *GenRenderbuffersEXT) (GLsizei n, GLuint* renderbuffers); - void (APIENTRY *GenerateMipmapEXT) (GLenum target); - void (APIENTRY *GetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint* params); - void (APIENTRY *GetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint* params); - GLboolean (APIENTRY *IsFramebufferEXT) (GLuint framebuffer); - GLboolean (APIENTRY *IsRenderbufferEXT) (GLuint renderbuffer); - void (APIENTRY *RenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); - - void (APIENTRY *ProgramParameteriEXT) (GLuint program, GLenum pname, GLint value); - void (APIENTRY *FramebufferTextureEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level); - void (APIENTRY *FramebufferTextureLayerEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); - void (APIENTRY *FramebufferTextureFaceEXT) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); - void (APIENTRY *DrawBuffersARB) (GLsizei n, const GLenum *bufs); - -#ifdef MAC_VERSION - void (APIENTRY *ElementPointerAPPLE) (GLenum type, const GLvoid *pointer); - void (APIENTRY *DrawElementArrayAPPLE) (GLenum mode, GLint first, GLsizei count); - void (APIENTRY *DrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); - void (APIENTRY *MultiDrawElementArrayAPPLE) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); - void (APIENTRY *MultiDrawRangeElementArrayAPPLE) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); - void (APIENTRY *GenFencesAPPLE) (GLsizei n, GLuint *fences); - void (APIENTRY *DeleteFencesAPPLE) (GLsizei n, const GLuint *fences); - void (APIENTRY *SetFenceAPPLE) (GLuint fence); - GLboolean (APIENTRY *IsFenceAPPLE) (GLuint fence); - GLboolean (APIENTRY *TestFenceAPPLE) (GLuint fence); - void (APIENTRY *FinishFenceAPPLE) (GLuint fence); - GLboolean (APIENTRY *TestObjectAPPLE) (GLenum object, GLuint name); - void (APIENTRY *FinishObjectAPPLE) (GLenum object, GLint name); - void (APIENTRY *BindVertexArrayAPPLE) (GLuint array); - void (APIENTRY *DeleteVertexArraysAPPLE) (GLsizei n, const GLuint *arrays); - void (APIENTRY *GenVertexArraysAPPLE) (GLsizei n, const GLuint *arrays); - GLboolean (APIENTRY *IsVertexArrayAPPLE) (GLuint array); - void (APIENTRY *VertexArrayRangeAPPLE) (GLsizei length, GLvoid *pointer); - void (APIENTRY *FlushVertexArrayRangeAPPLE) (GLsizei length, GLvoid *pointer); - void (APIENTRY *VertexArrayParameteriAPPLE) (GLenum pname, GLint param); - void (APIENTRY *TextureRangeAPPLE) (GLenum target, GLsizei length, GLvoid *pointer); - void (APIENTRY *GetTexParameterPointervAPPLE) (GLenum target, GLenum pname, GLvoid **params); -#endif -#ifdef _WIN32 - HANDLE (WINAPI *CreateBufferRegionARB) (HDC hDC, int iLayerPlane, UINT uType); - VOID (WINAPI *DeleteBufferRegionARB) (HANDLE hRegion); - BOOL (WINAPI *SaveBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height); - BOOL (WINAPI *RestoreBufferRegionARB) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); - const char* (WINAPI *GetExtensionsStringARB) (HDC hdc); - BOOL (WINAPI *GetPixelFormatAttribivARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); - BOOL (WINAPI *GetPixelFormatAttribfvARB) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); - BOOL (WINAPI *ChoosePixelFormatARB) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); - BOOL (WINAPI *MakeContextCurrentARB) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - HDC (WINAPI *GetCurrentReadDCARB) (void); - HPBUFFERARB (WINAPI *CreatePbufferARB) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); - HDC (WINAPI *GetPbufferDCARB) (HPBUFFERARB hPbuffer); - int (WINAPI *ReleasePbufferDCARB) (HPBUFFERARB hPbuffer, HDC hDC); - BOOL (WINAPI *DestroyPbufferARB) (HPBUFFERARB hPbuffer); - BOOL (WINAPI *QueryPbufferARB) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); - BOOL (WINAPI *BindTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer); - BOOL (WINAPI *ReleaseTexImageARB) (HPBUFFERARB hPbuffer, int iBuffer); - BOOL (WINAPI *SetPbufferAttribARB) (HPBUFFERARB hPbuffer, const int *piAttribList); - GLboolean (WINAPI *CreateDisplayColorTableEXT) (GLushort id); - GLboolean (WINAPI *LoadDisplayColorTableEXT) (const GLushort *table, GLuint length); - GLboolean (WINAPI *BindDisplayColorTableEXT) (GLushort id); - VOID (WINAPI *DestroyDisplayColorTableEXT) (GLushort id); - const char* (WINAPI *GetExtensionsStringEXT) (void); - BOOL (WINAPI *MakeContextCurrentEXT) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); - HDC (WINAPI *GetCurrentReadDCEXT) (void); - HPBUFFEREXT (WINAPI *CreatePbufferEXT) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); - HDC (WINAPI *GetPbufferDCEXT) (HPBUFFEREXT hPbuffer); - int (WINAPI *ReleasePbufferDCEXT) (HPBUFFEREXT hPbuffer, HDC hDC); - BOOL (WINAPI *DestroyPbufferEXT) (HPBUFFEREXT hPbuffer); - BOOL (WINAPI *QueryPbufferEXT) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); - BOOL (WINAPI *GetPixelFormatAttribivEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); - BOOL (WINAPI *GetPixelFormatAttribfvEXT) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); - BOOL (WINAPI *ChoosePixelFormatEXT) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); - BOOL (WINAPI *SwapIntervalEXT) (int interval); - int (WINAPI *GetSwapIntervalEXT) (void); - void* (WINAPI *AllocateMemoryNV) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); - void (WINAPI *FreeMemoryNV) (void); - BOOL (WINAPI *GetSyncValuesOML) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); - BOOL (WINAPI *GetMscRateOML) (HDC hdc, INT32 *numerator, INT32 *denominator); - INT64 (WINAPI *SwapBuffersMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); - INT64 (WINAPI *SwapLayerBuffersMscOML) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); - BOOL (WINAPI *WaitForMscOML) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); - BOOL (WINAPI *WaitForSbcOML) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); - BOOL (WINAPI *GetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, int *piValue); - BOOL (WINAPI *SetDigitalVideoParametersI3D) (HDC hDC, int iAttribute, const int *piValue); - BOOL (WINAPI *GetGammaTableParametersI3D) (HDC hDC, int iAttribute, int *piValue); - BOOL (WINAPI *SetGammaTableParametersI3D) (HDC hDC, int iAttribute, const int *piValue); - BOOL (WINAPI *GetGammaTableI3D) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); - BOOL (WINAPI *SetGammaTableI3D) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); - BOOL (WINAPI *EnableGenlockI3D) (HDC hDC); - BOOL (WINAPI *DisableGenlockI3D) (HDC hDC); - BOOL (WINAPI *IsEnabledGenlockI3D) (HDC hDC, BOOL *pFlag); - BOOL (WINAPI *GenlockSourceI3D) (HDC hDC, UINT uSource); - BOOL (WINAPI *GetGenlockSourceI3D) (HDC hDC, UINT *uSource); - BOOL (WINAPI *GenlockSourceEdgeI3D) (HDC hDC, UINT uEdge); - BOOL (WINAPI *GetGenlockSourceEdgeI3D) (HDC hDC, UINT *uEdge); - BOOL (WINAPI *GenlockSampleRateI3D) (HDC hDC, UINT uRate); - BOOL (WINAPI *GetGenlockSampleRateI3D) (HDC hDC, UINT *uRate); - BOOL (WINAPI *GenlockSourceDelayI3D) (HDC hDC, UINT uDelay); - BOOL (WINAPI *GetGenlockSourceDelayI3D) (HDC hDC, UINT *uDelay); - BOOL (WINAPI *QueryGenlockMaxSourceDelayI3D) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); - LPVOID (WINAPI *CreateImageBufferI3D) (HDC hDC, DWORD dwSize, UINT uFlags); - BOOL (WINAPI *DestroyImageBufferI3D) (HDC hDC, LPVOID pAddress); - BOOL (WINAPI *AssociateImageBufferEventsI3D) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); - BOOL (WINAPI *ReleaseImageBufferEventsI3D) (HDC hDC, const LPVOID *pAddress, UINT count); - BOOL (WINAPI *EnableFrameLockI3D) (void); - BOOL (WINAPI *DisableFrameLockI3D) (void); - BOOL (WINAPI *IsEnabledFrameLockI3D) (BOOL *pFlag); - BOOL (WINAPI *QueryFrameLockMasterI3D) (BOOL *pFlag); - BOOL (WINAPI *GetFrameUsageI3D) (float *pUsage); - BOOL (WINAPI *BeginFrameTrackingI3D) (void); - BOOL (WINAPI *EndFrameTrackingI3D) (void); - BOOL (WINAPI *QueryFrameTrackingI3D) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#endif /* _WIN32 */ -} t_jit_gl_extprocs; - -#define glBlendColor (_jit_gl_get_proctable()->BlendColor) -#define glBlendEquation (_jit_gl_get_proctable()->BlendEquation) -#define glDrawRangeElements (_jit_gl_get_proctable()->DrawRangeElements) -#define glColorTable (_jit_gl_get_proctable()->ColorTable) -#define glColorTableParameterfv (_jit_gl_get_proctable()->ColorTableParameterfv) -#define glColorTableParameteriv (_jit_gl_get_proctable()->ColorTableParameteriv) -#define glCopyColorTable (_jit_gl_get_proctable()->CopyColorTable) -#define glGetColorTable (_jit_gl_get_proctable()->GetColorTable) -#define glGetColorTableParameterfv (_jit_gl_get_proctable()->GetColorTableParameterfv) -#define glGetColorTableParameteriv (_jit_gl_get_proctable()->GetColorTableParameteriv) -#define glColorSubTable (_jit_gl_get_proctable()->ColorSubTable) -#define glCopyColorSubTable (_jit_gl_get_proctable()->CopyColorSubTable) -#define glConvolutionFilter1D (_jit_gl_get_proctable()->ConvolutionFilter1D) -#define glConvolutionFilter2D (_jit_gl_get_proctable()->ConvolutionFilter2D) -#define glConvolutionParameterf (_jit_gl_get_proctable()->ConvolutionParameterf) -#define glConvolutionParameterfv (_jit_gl_get_proctable()->ConvolutionParameterfv) -#define glConvolutionParameteri (_jit_gl_get_proctable()->ConvolutionParameteri) -#define glConvolutionParameteriv (_jit_gl_get_proctable()->ConvolutionParameteriv) -#define glCopyConvolutionFilter1D (_jit_gl_get_proctable()->CopyConvolutionFilter1D) -#define glCopyConvolutionFilter2D (_jit_gl_get_proctable()->CopyConvolutionFilter2D) -#define glGetConvolutionFilter (_jit_gl_get_proctable()->GetConvolutionFilter) -#define glGetConvolutionParameterfv (_jit_gl_get_proctable()->GetConvolutionParameterfv) -#define glGetConvolutionParameteriv (_jit_gl_get_proctable()->GetConvolutionParameteriv) -#define glGetSeparableFilter (_jit_gl_get_proctable()->GetSeparableFilter) -#define glSeparableFilter2D (_jit_gl_get_proctable()->SeparableFilter2D) -#define glGetHistogram (_jit_gl_get_proctable()->GetHistogram) -#define glGetHistogramParameterfv (_jit_gl_get_proctable()->GetHistogramParameterfv) -#define glGetHistogramParameteriv (_jit_gl_get_proctable()->GetHistogramParameteriv) -#define glGetMinmax (_jit_gl_get_proctable()->GetMinmax) -#define glGetMinmaxParameterfv (_jit_gl_get_proctable()->GetMinmaxParameterfv) -#define glGetMinmaxParameteriv (_jit_gl_get_proctable()->GetMinmaxParameteriv) -#define glHistogram (_jit_gl_get_proctable()->Histogram) -#define glMinmax (_jit_gl_get_proctable()->Minmax) -#define glResetHistogram (_jit_gl_get_proctable()->ResetHistogram) -#define glResetMinmax (_jit_gl_get_proctable()->ResetMinmax) -#define glTexImage3D (_jit_gl_get_proctable()->TexImage3D) -#define glTexSubImage3D (_jit_gl_get_proctable()->TexSubImage3D) -#define glCopyTexSubImage3D (_jit_gl_get_proctable()->CopyTexSubImage3D) -#define glActiveTexture (_jit_gl_get_proctable()->ActiveTexture) -#define glClientActiveTexture (_jit_gl_get_proctable()->ClientActiveTexture) -#define glMultiTexCoord1d (_jit_gl_get_proctable()->MultiTexCoord1d) -#define glMultiTexCoord1dv (_jit_gl_get_proctable()->MultiTexCoord1dv) -#define glMultiTexCoord1f (_jit_gl_get_proctable()->MultiTexCoord1f) -#define glMultiTexCoord1fv (_jit_gl_get_proctable()->MultiTexCoord1fv) -#define glMultiTexCoord1i (_jit_gl_get_proctable()->MultiTexCoord1i) -#define glMultiTexCoord1iv (_jit_gl_get_proctable()->MultiTexCoord1iv) -#define glMultiTexCoord1s (_jit_gl_get_proctable()->MultiTexCoord1s) -#define glMultiTexCoord1sv (_jit_gl_get_proctable()->MultiTexCoord1sv) -#define glMultiTexCoord2d (_jit_gl_get_proctable()->MultiTexCoord2d) -#define glMultiTexCoord2dv (_jit_gl_get_proctable()->MultiTexCoord2dv) -#define glMultiTexCoord2f (_jit_gl_get_proctable()->MultiTexCoord2f) -#define glMultiTexCoord2fv (_jit_gl_get_proctable()->MultiTexCoord2fv) -#define glMultiTexCoord2i (_jit_gl_get_proctable()->MultiTexCoord2i) -#define glMultiTexCoord2iv (_jit_gl_get_proctable()->MultiTexCoord2iv) -#define glMultiTexCoord2s (_jit_gl_get_proctable()->MultiTexCoord2s) -#define glMultiTexCoord2sv (_jit_gl_get_proctable()->MultiTexCoord2sv) -#define glMultiTexCoord3d (_jit_gl_get_proctable()->MultiTexCoord3d) -#define glMultiTexCoord3dv (_jit_gl_get_proctable()->MultiTexCoord3dv) -#define glMultiTexCoord3f (_jit_gl_get_proctable()->MultiTexCoord3f) -#define glMultiTexCoord3fv (_jit_gl_get_proctable()->MultiTexCoord3fv) -#define glMultiTexCoord3i (_jit_gl_get_proctable()->MultiTexCoord3i) -#define glMultiTexCoord3iv (_jit_gl_get_proctable()->MultiTexCoord3iv) -#define glMultiTexCoord3s (_jit_gl_get_proctable()->MultiTexCoord3s) -#define glMultiTexCoord3sv (_jit_gl_get_proctable()->MultiTexCoord3sv) -#define glMultiTexCoord4d (_jit_gl_get_proctable()->MultiTexCoord4d) -#define glMultiTexCoord4dv (_jit_gl_get_proctable()->MultiTexCoord4dv) -#define glMultiTexCoord4f (_jit_gl_get_proctable()->MultiTexCoord4f) -#define glMultiTexCoord4fv (_jit_gl_get_proctable()->MultiTexCoord4fv) -#define glMultiTexCoord4i (_jit_gl_get_proctable()->MultiTexCoord4i) -#define glMultiTexCoord4iv (_jit_gl_get_proctable()->MultiTexCoord4iv) -#define glMultiTexCoord4s (_jit_gl_get_proctable()->MultiTexCoord4s) -#define glMultiTexCoord4sv (_jit_gl_get_proctable()->MultiTexCoord4sv) -#define glLoadTransposeMatrixf (_jit_gl_get_proctable()->LoadTransposeMatrixf) -#define glLoadTransposeMatrixd (_jit_gl_get_proctable()->LoadTransposeMatrixd) -#define glMultTransposeMatrixf (_jit_gl_get_proctable()->MultTransposeMatrixf) -#define glMultTransposeMatrixd (_jit_gl_get_proctable()->MultTransposeMatrixd) -#define glSampleCoverage (_jit_gl_get_proctable()->SampleCoverage) -#define glCompressedTexImage3D (_jit_gl_get_proctable()->CompressedTexImage3D) -#define glCompressedTexImage2D (_jit_gl_get_proctable()->CompressedTexImage2D) -#define glCompressedTexImage1D (_jit_gl_get_proctable()->CompressedTexImage1D) -#define glCompressedTexSubImage3D (_jit_gl_get_proctable()->CompressedTexSubImage3D) -#define glCompressedTexSubImage2D (_jit_gl_get_proctable()->CompressedTexSubImage2D) -#define glCompressedTexSubImage1D (_jit_gl_get_proctable()->CompressedTexSubImage1D) -#define glGetCompressedTexImage (_jit_gl_get_proctable()->GetCompressedTexImage) -#define glBlendFuncSeparate (_jit_gl_get_proctable()->BlendFuncSeparate) -#define glFogCoordf (_jit_gl_get_proctable()->FogCoordf) -#define glFogCoordfv (_jit_gl_get_proctable()->FogCoordfv) -#define glFogCoordd (_jit_gl_get_proctable()->FogCoordd) -#define glFogCoorddv (_jit_gl_get_proctable()->FogCoorddv) -#define glFogCoordPointer (_jit_gl_get_proctable()->FogCoordPointer) -#define glMultiDrawArrays (_jit_gl_get_proctable()->MultiDrawArrays) -#define glMultiDrawElements (_jit_gl_get_proctable()->MultiDrawElements) -#define glPointParameterf (_jit_gl_get_proctable()->PointParameterf) -#define glPointParameterfv (_jit_gl_get_proctable()->PointParameterfv) -#define glPointParameteri (_jit_gl_get_proctable()->PointParameteri) -#define glPointParameteriv (_jit_gl_get_proctable()->PointParameteriv) -#define glSecondaryColor3b (_jit_gl_get_proctable()->SecondaryColor3b) -#define glSecondaryColor3bv (_jit_gl_get_proctable()->SecondaryColor3bv) -#define glSecondaryColor3d (_jit_gl_get_proctable()->SecondaryColor3d) -#define glSecondaryColor3dv (_jit_gl_get_proctable()->SecondaryColor3dv) -#define glSecondaryColor3f (_jit_gl_get_proctable()->SecondaryColor3f) -#define glSecondaryColor3fv (_jit_gl_get_proctable()->SecondaryColor3fv) -#define glSecondaryColor3i (_jit_gl_get_proctable()->SecondaryColor3i) -#define glSecondaryColor3iv (_jit_gl_get_proctable()->SecondaryColor3iv) -#define glSecondaryColor3s (_jit_gl_get_proctable()->SecondaryColor3s) -#define glSecondaryColor3sv (_jit_gl_get_proctable()->SecondaryColor3sv) -#define glSecondaryColor3ub (_jit_gl_get_proctable()->SecondaryColor3ub) -#define glSecondaryColor3ubv (_jit_gl_get_proctable()->SecondaryColor3ubv) -#define glSecondaryColor3ui (_jit_gl_get_proctable()->SecondaryColor3ui) -#define glSecondaryColor3uiv (_jit_gl_get_proctable()->SecondaryColor3uiv) -#define glSecondaryColor3us (_jit_gl_get_proctable()->SecondaryColor3us) -#define glSecondaryColor3usv (_jit_gl_get_proctable()->SecondaryColor3usv) -#define glSecondaryColorPointer (_jit_gl_get_proctable()->SecondaryColorPointer) -#define glWindowPos2d (_jit_gl_get_proctable()->WindowPos2d) -#define glWindowPos2dv (_jit_gl_get_proctable()->WindowPos2dv) -#define glWindowPos2f (_jit_gl_get_proctable()->WindowPos2f) -#define glWindowPos2fv (_jit_gl_get_proctable()->WindowPos2fv) -#define glWindowPos2i (_jit_gl_get_proctable()->WindowPos2i) -#define glWindowPos2iv (_jit_gl_get_proctable()->WindowPos2iv) -#define glWindowPos2s (_jit_gl_get_proctable()->WindowPos2s) -#define glWindowPos2sv (_jit_gl_get_proctable()->WindowPos2sv) -#define glWindowPos3d (_jit_gl_get_proctable()->WindowPos3d) -#define glWindowPos3dv (_jit_gl_get_proctable()->WindowPos3dv) -#define glWindowPos3f (_jit_gl_get_proctable()->WindowPos3f) -#define glWindowPos3fv (_jit_gl_get_proctable()->WindowPos3fv) -#define glWindowPos3i (_jit_gl_get_proctable()->WindowPos3i) -#define glWindowPos3iv (_jit_gl_get_proctable()->WindowPos3iv) -#define glWindowPos3s (_jit_gl_get_proctable()->WindowPos3s) -#define glWindowPos3sv (_jit_gl_get_proctable()->WindowPos3sv) -#define glGenQueries (_jit_gl_get_proctable()->GenQueries) -#define glDeleteQueries (_jit_gl_get_proctable()->DeleteQueries) -#define glIsQuery (_jit_gl_get_proctable()->IsQuery) -#define glBeginQuery (_jit_gl_get_proctable()->BeginQuery) -#define glEndQuery (_jit_gl_get_proctable()->EndQuery) -#define glGetQueryiv (_jit_gl_get_proctable()->GetQueryiv) -#define glGetQueryObjectiv (_jit_gl_get_proctable()->GetQueryObjectiv) -#define glGetQueryObjectuiv (_jit_gl_get_proctable()->GetQueryObjectuiv) -#define glBindBuffer (_jit_gl_get_proctable()->BindBuffer) -#define glDeleteBuffers (_jit_gl_get_proctable()->DeleteBuffers) -#define glGenBuffers (_jit_gl_get_proctable()->GenBuffers) -#define glIsBuffer (_jit_gl_get_proctable()->IsBuffer) -#define glBufferData (_jit_gl_get_proctable()->BufferData) -#define glBufferSubData (_jit_gl_get_proctable()->BufferSubData) -#define glGetBufferSubData (_jit_gl_get_proctable()->GetBufferSubData) -#define glMapBuffer (_jit_gl_get_proctable()->MapBuffer) -#define glUnmapBuffer (_jit_gl_get_proctable()->UnmapBuffer) -#define glGetBufferParameteriv (_jit_gl_get_proctable()->GetBufferParameteriv) -#define glGetBufferPointerv (_jit_gl_get_proctable()->GetBufferPointerv) -#define glActiveTextureARB (_jit_gl_get_proctable()->ActiveTextureARB) -#define glClientActiveTextureARB (_jit_gl_get_proctable()->ClientActiveTextureARB) -#define glMultiTexCoord1dARB (_jit_gl_get_proctable()->MultiTexCoord1dARB) -#define glMultiTexCoord1dvARB (_jit_gl_get_proctable()->MultiTexCoord1dvARB) -#define glMultiTexCoord1fARB (_jit_gl_get_proctable()->MultiTexCoord1fARB) -#define glMultiTexCoord1fvARB (_jit_gl_get_proctable()->MultiTexCoord1fvARB) -#define glMultiTexCoord1iARB (_jit_gl_get_proctable()->MultiTexCoord1iARB) -#define glMultiTexCoord1ivARB (_jit_gl_get_proctable()->MultiTexCoord1ivARB) -#define glMultiTexCoord1sARB (_jit_gl_get_proctable()->MultiTexCoord1sARB) -#define glMultiTexCoord1svARB (_jit_gl_get_proctable()->MultiTexCoord1svARB) -#define glMultiTexCoord2dARB (_jit_gl_get_proctable()->MultiTexCoord2dARB) -#define glMultiTexCoord2dvARB (_jit_gl_get_proctable()->MultiTexCoord2dvARB) -#define glMultiTexCoord2fARB (_jit_gl_get_proctable()->MultiTexCoord2fARB) -#define glMultiTexCoord2fvARB (_jit_gl_get_proctable()->MultiTexCoord2fvARB) -#define glMultiTexCoord2iARB (_jit_gl_get_proctable()->MultiTexCoord2iARB) -#define glMultiTexCoord2ivARB (_jit_gl_get_proctable()->MultiTexCoord2ivARB) -#define glMultiTexCoord2sARB (_jit_gl_get_proctable()->MultiTexCoord2sARB) -#define glMultiTexCoord2svARB (_jit_gl_get_proctable()->MultiTexCoord2svARB) -#define glMultiTexCoord3dARB (_jit_gl_get_proctable()->MultiTexCoord3dARB) -#define glMultiTexCoord3dvARB (_jit_gl_get_proctable()->MultiTexCoord3dvARB) -#define glMultiTexCoord3fARB (_jit_gl_get_proctable()->MultiTexCoord3fARB) -#define glMultiTexCoord3fvARB (_jit_gl_get_proctable()->MultiTexCoord3fvARB) -#define glMultiTexCoord3iARB (_jit_gl_get_proctable()->MultiTexCoord3iARB) -#define glMultiTexCoord3ivARB (_jit_gl_get_proctable()->MultiTexCoord3ivARB) -#define glMultiTexCoord3sARB (_jit_gl_get_proctable()->MultiTexCoord3sARB) -#define glMultiTexCoord3svARB (_jit_gl_get_proctable()->MultiTexCoord3svARB) -#define glMultiTexCoord4dARB (_jit_gl_get_proctable()->MultiTexCoord4dARB) -#define glMultiTexCoord4dvARB (_jit_gl_get_proctable()->MultiTexCoord4dvARB) -#define glMultiTexCoord4fARB (_jit_gl_get_proctable()->MultiTexCoord4fARB) -#define glMultiTexCoord4fvARB (_jit_gl_get_proctable()->MultiTexCoord4fvARB) -#define glMultiTexCoord4iARB (_jit_gl_get_proctable()->MultiTexCoord4iARB) -#define glMultiTexCoord4ivARB (_jit_gl_get_proctable()->MultiTexCoord4ivARB) -#define glMultiTexCoord4sARB (_jit_gl_get_proctable()->MultiTexCoord4sARB) -#define glMultiTexCoord4svARB (_jit_gl_get_proctable()->MultiTexCoord4svARB) -#define glLoadTransposeMatrixfARB (_jit_gl_get_proctable()->LoadTransposeMatrixfARB) -#define glLoadTransposeMatrixdARB (_jit_gl_get_proctable()->LoadTransposeMatrixdARB) -#define glMultTransposeMatrixfARB (_jit_gl_get_proctable()->MultTransposeMatrixfARB) -#define glMultTransposeMatrixdARB (_jit_gl_get_proctable()->MultTransposeMatrixdARB) -#define glSampleCoverageARB (_jit_gl_get_proctable()->SampleCoverageARB) -#define glCompressedTexImage3DARB (_jit_gl_get_proctable()->CompressedTexImage3DARB) -#define glCompressedTexImage2DARB (_jit_gl_get_proctable()->CompressedTexImage2DARB) -#define glCompressedTexImage1DARB (_jit_gl_get_proctable()->CompressedTexImage1DARB) -#define glCompressedTexSubImage3DARB (_jit_gl_get_proctable()->CompressedTexSubImage3DARB) -#define glCompressedTexSubImage2DARB (_jit_gl_get_proctable()->CompressedTexSubImage2DARB) -#define glCompressedTexSubImage1DARB (_jit_gl_get_proctable()->CompressedTexSubImage1DARB) -#define glGetCompressedTexImageARB (_jit_gl_get_proctable()->GetCompressedTexImageARB) -#define glPointParameterfARB (_jit_gl_get_proctable()->PointParameterfARB) -#define glPointParameterfvARB (_jit_gl_get_proctable()->PointParameterfvARB) -#define glWeightbvARB (_jit_gl_get_proctable()->WeightbvARB) -#define glWeightsvARB (_jit_gl_get_proctable()->WeightsvARB) -#define glWeightivARB (_jit_gl_get_proctable()->WeightivARB) -#define glWeightfvARB (_jit_gl_get_proctable()->WeightfvARB) -#define glWeightdvARB (_jit_gl_get_proctable()->WeightdvARB) -#define glWeightubvARB (_jit_gl_get_proctable()->WeightubvARB) -#define glWeightusvARB (_jit_gl_get_proctable()->WeightusvARB) -#define glWeightuivARB (_jit_gl_get_proctable()->WeightuivARB) -#define glWeightPointerARB (_jit_gl_get_proctable()->WeightPointerARB) -#define glVertexBlendARB (_jit_gl_get_proctable()->VertexBlendARB) -#define glCurrentPaletteMatrixARB (_jit_gl_get_proctable()->CurrentPaletteMatrixARB) -#define glMatrixIndexubvARB (_jit_gl_get_proctable()->MatrixIndexubvARB) -#define glMatrixIndexusvARB (_jit_gl_get_proctable()->MatrixIndexusvARB) -#define glMatrixIndexuivARB (_jit_gl_get_proctable()->MatrixIndexuivARB) -#define glMatrixIndexPointerARB (_jit_gl_get_proctable()->MatrixIndexPointerARB) -#define glWindowPos2dARB (_jit_gl_get_proctable()->WindowPos2dARB) -#define glWindowPos2dvARB (_jit_gl_get_proctable()->WindowPos2dvARB) -#define glWindowPos2fARB (_jit_gl_get_proctable()->WindowPos2fARB) -#define glWindowPos2fvARB (_jit_gl_get_proctable()->WindowPos2fvARB) -#define glWindowPos2iARB (_jit_gl_get_proctable()->WindowPos2iARB) -#define glWindowPos2ivARB (_jit_gl_get_proctable()->WindowPos2ivARB) -#define glWindowPos2sARB (_jit_gl_get_proctable()->WindowPos2sARB) -#define glWindowPos2svARB (_jit_gl_get_proctable()->WindowPos2svARB) -#define glWindowPos3dARB (_jit_gl_get_proctable()->WindowPos3dARB) -#define glWindowPos3dvARB (_jit_gl_get_proctable()->WindowPos3dvARB) -#define glWindowPos3fARB (_jit_gl_get_proctable()->WindowPos3fARB) -#define glWindowPos3fvARB (_jit_gl_get_proctable()->WindowPos3fvARB) -#define glWindowPos3iARB (_jit_gl_get_proctable()->WindowPos3iARB) -#define glWindowPos3ivARB (_jit_gl_get_proctable()->WindowPos3ivARB) -#define glWindowPos3sARB (_jit_gl_get_proctable()->WindowPos3sARB) -#define glWindowPos3svARB (_jit_gl_get_proctable()->WindowPos3svARB) -#define glVertexAttrib1dARB (_jit_gl_get_proctable()->VertexAttrib1dARB) -#define glVertexAttrib1dvARB (_jit_gl_get_proctable()->VertexAttrib1dvARB) -#define glVertexAttrib1fARB (_jit_gl_get_proctable()->VertexAttrib1fARB) -#define glVertexAttrib1fvARB (_jit_gl_get_proctable()->VertexAttrib1fvARB) -#define glVertexAttrib1sARB (_jit_gl_get_proctable()->VertexAttrib1sARB) -#define glVertexAttrib1svARB (_jit_gl_get_proctable()->VertexAttrib1svARB) -#define glVertexAttrib2dARB (_jit_gl_get_proctable()->VertexAttrib2dARB) -#define glVertexAttrib2dvARB (_jit_gl_get_proctable()->VertexAttrib2dvARB) -#define glVertexAttrib2fARB (_jit_gl_get_proctable()->VertexAttrib2fARB) -#define glVertexAttrib2fvARB (_jit_gl_get_proctable()->VertexAttrib2fvARB) -#define glVertexAttrib2sARB (_jit_gl_get_proctable()->VertexAttrib2sARB) -#define glVertexAttrib2svARB (_jit_gl_get_proctable()->VertexAttrib2svARB) -#define glVertexAttrib3dARB (_jit_gl_get_proctable()->VertexAttrib3dARB) -#define glVertexAttrib3dvARB (_jit_gl_get_proctable()->VertexAttrib3dvARB) -#define glVertexAttrib3fARB (_jit_gl_get_proctable()->VertexAttrib3fARB) -#define glVertexAttrib3fvARB (_jit_gl_get_proctable()->VertexAttrib3fvARB) -#define glVertexAttrib3sARB (_jit_gl_get_proctable()->VertexAttrib3sARB) -#define glVertexAttrib3svARB (_jit_gl_get_proctable()->VertexAttrib3svARB) -#define glVertexAttrib4NbvARB (_jit_gl_get_proctable()->VertexAttrib4NbvARB) -#define glVertexAttrib4NivARB (_jit_gl_get_proctable()->VertexAttrib4NivARB) -#define glVertexAttrib4NsvARB (_jit_gl_get_proctable()->VertexAttrib4NsvARB) -#define glVertexAttrib4NubARB (_jit_gl_get_proctable()->VertexAttrib4NubARB) -#define glVertexAttrib4NubvARB (_jit_gl_get_proctable()->VertexAttrib4NubvARB) -#define glVertexAttrib4NuivARB (_jit_gl_get_proctable()->VertexAttrib4NuivARB) -#define glVertexAttrib4NusvARB (_jit_gl_get_proctable()->VertexAttrib4NusvARB) -#define glVertexAttrib4bvARB (_jit_gl_get_proctable()->VertexAttrib4bvARB) -#define glVertexAttrib4dARB (_jit_gl_get_proctable()->VertexAttrib4dARB) -#define glVertexAttrib4dvARB (_jit_gl_get_proctable()->VertexAttrib4dvARB) -#define glVertexAttrib4fARB (_jit_gl_get_proctable()->VertexAttrib4fARB) -#define glVertexAttrib4fvARB (_jit_gl_get_proctable()->VertexAttrib4fvARB) -#define glVertexAttrib4ivARB (_jit_gl_get_proctable()->VertexAttrib4ivARB) -#define glVertexAttrib4sARB (_jit_gl_get_proctable()->VertexAttrib4sARB) -#define glVertexAttrib4svARB (_jit_gl_get_proctable()->VertexAttrib4svARB) -#define glVertexAttrib4ubvARB (_jit_gl_get_proctable()->VertexAttrib4ubvARB) -#define glVertexAttrib4uivARB (_jit_gl_get_proctable()->VertexAttrib4uivARB) -#define glVertexAttrib4usvARB (_jit_gl_get_proctable()->VertexAttrib4usvARB) -#define glVertexAttribPointerARB (_jit_gl_get_proctable()->VertexAttribPointerARB) -#define glEnableVertexAttribArrayARB (_jit_gl_get_proctable()->EnableVertexAttribArrayARB) -#define glDisableVertexAttribArrayARB (_jit_gl_get_proctable()->DisableVertexAttribArrayARB) -#define glProgramStringARB (_jit_gl_get_proctable()->ProgramStringARB) -#define glBindProgramARB (_jit_gl_get_proctable()->BindProgramARB) -#define glDeleteProgramsARB (_jit_gl_get_proctable()->DeleteProgramsARB) -#define glGenProgramsARB (_jit_gl_get_proctable()->GenProgramsARB) -#define glProgramEnvParameter4dARB (_jit_gl_get_proctable()->ProgramEnvParameter4dARB) -#define glProgramEnvParameter4dvARB (_jit_gl_get_proctable()->ProgramEnvParameter4dvARB) -#define glProgramEnvParameter4fARB (_jit_gl_get_proctable()->ProgramEnvParameter4fARB) -#define glProgramEnvParameter4fvARB (_jit_gl_get_proctable()->ProgramEnvParameter4fvARB) -#define glProgramLocalParameter4dARB (_jit_gl_get_proctable()->ProgramLocalParameter4dARB) -#define glProgramLocalParameter4dvARB (_jit_gl_get_proctable()->ProgramLocalParameter4dvARB) -#define glProgramLocalParameter4fARB (_jit_gl_get_proctable()->ProgramLocalParameter4fARB) -#define glProgramLocalParameter4fvARB (_jit_gl_get_proctable()->ProgramLocalParameter4fvARB) -#define glGetProgramEnvParameterdvARB (_jit_gl_get_proctable()->GetProgramEnvParameterdvARB) -#define glGetProgramEnvParameterfvARB (_jit_gl_get_proctable()->GetProgramEnvParameterfvARB) -#define glGetProgramLocalParameterdvARB (_jit_gl_get_proctable()->GetProgramLocalParameterdvARB) -#define glGetProgramLocalParameterfvARB (_jit_gl_get_proctable()->GetProgramLocalParameterfvARB) -#define glGetProgramivARB (_jit_gl_get_proctable()->GetProgramivARB) -#define glGetProgramStringARB (_jit_gl_get_proctable()->GetProgramStringARB) -#define glGetVertexAttribdvARB (_jit_gl_get_proctable()->GetVertexAttribdvARB) -#define glGetVertexAttribfvARB (_jit_gl_get_proctable()->GetVertexAttribfvARB) -#define glGetVertexAttribivARB (_jit_gl_get_proctable()->GetVertexAttribivARB) -#define glGetVertexAttribPointervARB (_jit_gl_get_proctable()->GetVertexAttribPointervARB) -#define glIsProgramARB (_jit_gl_get_proctable()->IsProgramARB) -#define glBindBufferARB (_jit_gl_get_proctable()->BindBufferARB) -#define glDeleteBuffersARB (_jit_gl_get_proctable()->DeleteBuffersARB) -#define glGenBuffersARB (_jit_gl_get_proctable()->GenBuffersARB) -#define glIsBufferARB (_jit_gl_get_proctable()->IsBufferARB) -#define glBufferDataARB (_jit_gl_get_proctable()->BufferDataARB) -#define glBufferSubDataARB (_jit_gl_get_proctable()->BufferSubDataARB) -#define glGetBufferSubDataARB (_jit_gl_get_proctable()->GetBufferSubDataARB) -#define glMapBufferARB (_jit_gl_get_proctable()->MapBufferARB) -#define glUnmapBufferARB (_jit_gl_get_proctable()->UnmapBufferARB) -#define glGetBufferParameterivARB (_jit_gl_get_proctable()->GetBufferParameterivARB) -#define glGetBufferPointervARB (_jit_gl_get_proctable()->GetBufferPointervARB) -#define glGenQueriesARB (_jit_gl_get_proctable()->GenQueriesARB) -#define glDeleteQueriesARB (_jit_gl_get_proctable()->DeleteQueriesARB) -#define glIsQueryARB (_jit_gl_get_proctable()->IsQueryARB) -#define glBeginQueryARB (_jit_gl_get_proctable()->BeginQueryARB) -#define glEndQueryARB (_jit_gl_get_proctable()->EndQueryARB) -#define glGetQueryivARB (_jit_gl_get_proctable()->GetQueryivARB) -#define glGetQueryObjectivARB (_jit_gl_get_proctable()->GetQueryObjectivARB) -#define glGetQueryObjectuivARB (_jit_gl_get_proctable()->GetQueryObjectuivARB) -#define glDeleteObjectARB (_jit_gl_get_proctable()->DeleteObjectARB) -#define glGetHandleARB (_jit_gl_get_proctable()->GetHandleARB) -#define glDetachObjectARB (_jit_gl_get_proctable()->DetachObjectARB) -#define glCreateShaderObjectARB (_jit_gl_get_proctable()->CreateShaderObjectARB) -#define glShaderSourceARB (_jit_gl_get_proctable()->ShaderSourceARB) -#define glCompileShaderARB (_jit_gl_get_proctable()->CompileShaderARB) -#define glCreateProgramObjectARB (_jit_gl_get_proctable()->CreateProgramObjectARB) -#define glAttachObjectARB (_jit_gl_get_proctable()->AttachObjectARB) -#define glLinkProgramARB (_jit_gl_get_proctable()->LinkProgramARB) -#define glUseProgramObjectARB (_jit_gl_get_proctable()->UseProgramObjectARB) -#define glValidateProgramARB (_jit_gl_get_proctable()->ValidateProgramARB) -#define glUniform1fARB (_jit_gl_get_proctable()->Uniform1fARB) -#define glUniform2fARB (_jit_gl_get_proctable()->Uniform2fARB) -#define glUniform3fARB (_jit_gl_get_proctable()->Uniform3fARB) -#define glUniform4fARB (_jit_gl_get_proctable()->Uniform4fARB) -#define glUniform1iARB (_jit_gl_get_proctable()->Uniform1iARB) -#define glUniform2iARB (_jit_gl_get_proctable()->Uniform2iARB) -#define glUniform3iARB (_jit_gl_get_proctable()->Uniform3iARB) -#define glUniform4iARB (_jit_gl_get_proctable()->Uniform4iARB) -#define glUniform1fvARB (_jit_gl_get_proctable()->Uniform1fvARB) -#define glUniform2fvARB (_jit_gl_get_proctable()->Uniform2fvARB) -#define glUniform3fvARB (_jit_gl_get_proctable()->Uniform3fvARB) -#define glUniform4fvARB (_jit_gl_get_proctable()->Uniform4fvARB) -#define glUniform1ivARB (_jit_gl_get_proctable()->Uniform1ivARB) -#define glUniform2ivARB (_jit_gl_get_proctable()->Uniform2ivARB) -#define glUniform3ivARB (_jit_gl_get_proctable()->Uniform3ivARB) -#define glUniform4ivARB (_jit_gl_get_proctable()->Uniform4ivARB) -#define glUniformMatrix2fvARB (_jit_gl_get_proctable()->UniformMatrix2fvARB) -#define glUniformMatrix3fvARB (_jit_gl_get_proctable()->UniformMatrix3fvARB) -#define glUniformMatrix4fvARB (_jit_gl_get_proctable()->UniformMatrix4fvARB) -#define glGetObjectParameterfvARB (_jit_gl_get_proctable()->GetObjectParameterfvARB) -#define glGetObjectParameterivARB (_jit_gl_get_proctable()->GetObjectParameterivARB) -#define glGetInfoLogARB (_jit_gl_get_proctable()->GetInfoLogARB) -#define glGetAttachedObjectsARB (_jit_gl_get_proctable()->GetAttachedObjectsARB) -#define glGetUniformLocationARB (_jit_gl_get_proctable()->GetUniformLocationARB) -#define glGetActiveUniformARB (_jit_gl_get_proctable()->GetActiveUniformARB) -#define glGetUniformfvARB (_jit_gl_get_proctable()->GetUniformfvARB) -#define glGetUniformivARB (_jit_gl_get_proctable()->GetUniformivARB) -#define glGetShaderSourceARB (_jit_gl_get_proctable()->GetShaderSourceARB) -#define glBindAttribLocationARB (_jit_gl_get_proctable()->BindAttribLocationARB) -#define glGetActiveAttribARB (_jit_gl_get_proctable()->GetActiveAttribARB) -#define glGetAttribLocationARB (_jit_gl_get_proctable()->GetAttribLocationARB) -#define glBlendColorEXT (_jit_gl_get_proctable()->BlendColorEXT) -#define glPolygonOffsetEXT (_jit_gl_get_proctable()->PolygonOffsetEXT) -#define glTexImage3DEXT (_jit_gl_get_proctable()->TexImage3DEXT) -#define glTexSubImage3DEXT (_jit_gl_get_proctable()->TexSubImage3DEXT) -#define glGetTexFilterFuncSGIS (_jit_gl_get_proctable()->GetTexFilterFuncSGIS) -#define glTexFilterFuncSGIS (_jit_gl_get_proctable()->TexFilterFuncSGIS) -#define glTexSubImage1DEXT (_jit_gl_get_proctable()->TexSubImage1DEXT) -#define glTexSubImage2DEXT (_jit_gl_get_proctable()->TexSubImage2DEXT) -#define glCopyTexImage1DEXT (_jit_gl_get_proctable()->CopyTexImage1DEXT) -#define glCopyTexImage2DEXT (_jit_gl_get_proctable()->CopyTexImage2DEXT) -#define glCopyTexSubImage1DEXT (_jit_gl_get_proctable()->CopyTexSubImage1DEXT) -#define glCopyTexSubImage2DEXT (_jit_gl_get_proctable()->CopyTexSubImage2DEXT) -#define glCopyTexSubImage3DEXT (_jit_gl_get_proctable()->CopyTexSubImage3DEXT) -#define glGetHistogramEXT (_jit_gl_get_proctable()->GetHistogramEXT) -#define glGetHistogramParameterfvEXT (_jit_gl_get_proctable()->GetHistogramParameterfvEXT) -#define glGetHistogramParameterivEXT (_jit_gl_get_proctable()->GetHistogramParameterivEXT) -#define glGetMinmaxEXT (_jit_gl_get_proctable()->GetMinmaxEXT) -#define glGetMinmaxParameterfvEXT (_jit_gl_get_proctable()->GetMinmaxParameterfvEXT) -#define glGetMinmaxParameterivEXT (_jit_gl_get_proctable()->GetMinmaxParameterivEXT) -#define glHistogramEXT (_jit_gl_get_proctable()->HistogramEXT) -#define glMinmaxEXT (_jit_gl_get_proctable()->MinmaxEXT) -#define glResetHistogramEXT (_jit_gl_get_proctable()->ResetHistogramEXT) -#define glResetMinmaxEXT (_jit_gl_get_proctable()->ResetMinmaxEXT) -#define glConvolutionFilter1DEXT (_jit_gl_get_proctable()->ConvolutionFilter1DEXT) -#define glConvolutionFilter2DEXT (_jit_gl_get_proctable()->ConvolutionFilter2DEXT) -#define glConvolutionParameterfEXT (_jit_gl_get_proctable()->ConvolutionParameterfEXT) -#define glConvolutionParameterfvEXT (_jit_gl_get_proctable()->ConvolutionParameterfvEXT) -#define glConvolutionParameteriEXT (_jit_gl_get_proctable()->ConvolutionParameteriEXT) -#define glConvolutionParameterivEXT (_jit_gl_get_proctable()->ConvolutionParameterivEXT) -#define glCopyConvolutionFilter1DEXT (_jit_gl_get_proctable()->CopyConvolutionFilter1DEXT) -#define glCopyConvolutionFilter2DEXT (_jit_gl_get_proctable()->CopyConvolutionFilter2DEXT) -#define glGetConvolutionFilterEXT (_jit_gl_get_proctable()->GetConvolutionFilterEXT) -#define glGetConvolutionParameterfvEXT (_jit_gl_get_proctable()->GetConvolutionParameterfvEXT) -#define glGetConvolutionParameterivEXT (_jit_gl_get_proctable()->GetConvolutionParameterivEXT) -#define glGetSeparableFilterEXT (_jit_gl_get_proctable()->GetSeparableFilterEXT) -#define glSeparableFilter2DEXT (_jit_gl_get_proctable()->SeparableFilter2DEXT) -#define glColorTableSGI (_jit_gl_get_proctable()->ColorTableSGI) -#define glColorTableParameterfvSGI (_jit_gl_get_proctable()->ColorTableParameterfvSGI) -#define glColorTableParameterivSGI (_jit_gl_get_proctable()->ColorTableParameterivSGI) -#define glCopyColorTableSGI (_jit_gl_get_proctable()->CopyColorTableSGI) -#define glGetColorTableSGI (_jit_gl_get_proctable()->GetColorTableSGI) -#define glGetColorTableParameterfvSGI (_jit_gl_get_proctable()->GetColorTableParameterfvSGI) -#define glGetColorTableParameterivSGI (_jit_gl_get_proctable()->GetColorTableParameterivSGI) -#define glPixelTexGenSGIX (_jit_gl_get_proctable()->PixelTexGenSGIX) -#define glPixelTexGenParameteriSGIS (_jit_gl_get_proctable()->PixelTexGenParameteriSGIS) -#define glPixelTexGenParameterivSGIS (_jit_gl_get_proctable()->PixelTexGenParameterivSGIS) -#define glPixelTexGenParameterfSGIS (_jit_gl_get_proctable()->PixelTexGenParameterfSGIS) -#define glPixelTexGenParameterfvSGIS (_jit_gl_get_proctable()->PixelTexGenParameterfvSGIS) -#define glGetPixelTexGenParameterivSGIS (_jit_gl_get_proctable()->GetPixelTexGenParameterivSGIS) -#define glGetPixelTexGenParameterfvSGIS (_jit_gl_get_proctable()->GetPixelTexGenParameterfvSGIS) -#define glTexImage4DSGIS (_jit_gl_get_proctable()->TexImage4DSGIS) -#define glTexSubImage4DSGIS (_jit_gl_get_proctable()->TexSubImage4DSGIS) -#define glAreTexturesResidentEXT (_jit_gl_get_proctable()->AreTexturesResidentEXT) -#define glBindTextureEXT (_jit_gl_get_proctable()->BindTextureEXT) -#define glDeleteTexturesEXT (_jit_gl_get_proctable()->DeleteTexturesEXT) -#define glGenTexturesEXT (_jit_gl_get_proctable()->GenTexturesEXT) -#define glIsTextureEXT (_jit_gl_get_proctable()->IsTextureEXT) -#define glPrioritizeTexturesEXT (_jit_gl_get_proctable()->PrioritizeTexturesEXT) -#define glDetailTexFuncSGIS (_jit_gl_get_proctable()->DetailTexFuncSGIS) -#define glGetDetailTexFuncSGIS (_jit_gl_get_proctable()->GetDetailTexFuncSGIS) -#define glSharpenTexFuncSGIS (_jit_gl_get_proctable()->SharpenTexFuncSGIS) -#define glGetSharpenTexFuncSGIS (_jit_gl_get_proctable()->GetSharpenTexFuncSGIS) -#define glSampleMaskSGIS (_jit_gl_get_proctable()->SampleMaskSGIS) -#define glSamplePatternSGIS (_jit_gl_get_proctable()->SamplePatternSGIS) -#define glArrayElementEXT (_jit_gl_get_proctable()->ArrayElementEXT) -#define glColorPointerEXT (_jit_gl_get_proctable()->ColorPointerEXT) -#define glDrawArraysEXT (_jit_gl_get_proctable()->DrawArraysEXT) -#define glEdgeFlagPointerEXT (_jit_gl_get_proctable()->EdgeFlagPointerEXT) -#define glGetPointervEXT (_jit_gl_get_proctable()->GetPointervEXT) -#define glIndexPointerEXT (_jit_gl_get_proctable()->IndexPointerEXT) -#define glNormalPointerEXT (_jit_gl_get_proctable()->NormalPointerEXT) -#define glTexCoordPointerEXT (_jit_gl_get_proctable()->TexCoordPointerEXT) -#define glVertexPointerEXT (_jit_gl_get_proctable()->VertexPointerEXT) -#define glBlendEquationEXT (_jit_gl_get_proctable()->BlendEquationEXT) -#define glSpriteParameterfSGIX (_jit_gl_get_proctable()->SpriteParameterfSGIX) -#define glSpriteParameterfvSGIX (_jit_gl_get_proctable()->SpriteParameterfvSGIX) -#define glSpriteParameteriSGIX (_jit_gl_get_proctable()->SpriteParameteriSGIX) -#define glSpriteParameterivSGIX (_jit_gl_get_proctable()->SpriteParameterivSGIX) -#define glPointParameterfEXT (_jit_gl_get_proctable()->PointParameterfEXT) -#define glPointParameterfvEXT (_jit_gl_get_proctable()->PointParameterfvEXT) -#define glPointParameterfSGIS (_jit_gl_get_proctable()->PointParameterfSGIS) -#define glPointParameterfvSGIS (_jit_gl_get_proctable()->PointParameterfvSGIS) -#define glGetInstrumentsSGIX (_jit_gl_get_proctable()->GetInstrumentsSGIX) -#define glInstrumentsBufferSGIX (_jit_gl_get_proctable()->InstrumentsBufferSGIX) -#define glPollInstrumentsSGIX (_jit_gl_get_proctable()->PollInstrumentsSGIX) -#define glReadInstrumentsSGIX (_jit_gl_get_proctable()->ReadInstrumentsSGIX) -#define glStartInstrumentsSGIX (_jit_gl_get_proctable()->StartInstrumentsSGIX) -#define glStopInstrumentsSGIX (_jit_gl_get_proctable()->StopInstrumentsSGIX) -#define glFrameZoomSGIX (_jit_gl_get_proctable()->FrameZoomSGIX) -#define glTagSampleBufferSGIX (_jit_gl_get_proctable()->TagSampleBufferSGIX) -#define glDeformationMap3dSGIX (_jit_gl_get_proctable()->DeformationMap3dSGIX) -#define glDeformationMap3fSGIX (_jit_gl_get_proctable()->DeformationMap3fSGIX) -#define glDeformSGIX (_jit_gl_get_proctable()->DeformSGIX) -#define glLoadIdentityDeformationMapSGIX (_jit_gl_get_proctable()->LoadIdentityDeformationMapSGIX) -#define glReferencePlaneSGIX (_jit_gl_get_proctable()->ReferencePlaneSGIX) -#define glFlushRasterSGIX (_jit_gl_get_proctable()->FlushRasterSGIX) -#define glFogFuncSGIS (_jit_gl_get_proctable()->FogFuncSGIS) -#define glGetFogFuncSGIS (_jit_gl_get_proctable()->GetFogFuncSGIS) -#define glImageTransformParameteriHP (_jit_gl_get_proctable()->ImageTransformParameteriHP) -#define glImageTransformParameterfHP (_jit_gl_get_proctable()->ImageTransformParameterfHP) -#define glImageTransformParameterivHP (_jit_gl_get_proctable()->ImageTransformParameterivHP) -#define glImageTransformParameterfvHP (_jit_gl_get_proctable()->ImageTransformParameterfvHP) -#define glGetImageTransformParameterivHP (_jit_gl_get_proctable()->GetImageTransformParameterivHP) -#define glGetImageTransformParameterfvHP (_jit_gl_get_proctable()->GetImageTransformParameterfvHP) -#define glColorSubTableEXT (_jit_gl_get_proctable()->ColorSubTableEXT) -#define glCopyColorSubTableEXT (_jit_gl_get_proctable()->CopyColorSubTableEXT) -#define glHintPGI (_jit_gl_get_proctable()->HintPGI) -#define glColorTableEXT (_jit_gl_get_proctable()->ColorTableEXT) -#define glGetColorTableEXT (_jit_gl_get_proctable()->GetColorTableEXT) -#define glGetColorTableParameterivEXT (_jit_gl_get_proctable()->GetColorTableParameterivEXT) -#define glGetColorTableParameterfvEXT (_jit_gl_get_proctable()->GetColorTableParameterfvEXT) -#define glGetListParameterfvSGIX (_jit_gl_get_proctable()->GetListParameterfvSGIX) -#define glGetListParameterivSGIX (_jit_gl_get_proctable()->GetListParameterivSGIX) -#define glListParameterfSGIX (_jit_gl_get_proctable()->ListParameterfSGIX) -#define glListParameterfvSGIX (_jit_gl_get_proctable()->ListParameterfvSGIX) -#define glListParameteriSGIX (_jit_gl_get_proctable()->ListParameteriSGIX) -#define glListParameterivSGIX (_jit_gl_get_proctable()->ListParameterivSGIX) -#define glIndexMaterialEXT (_jit_gl_get_proctable()->IndexMaterialEXT) -#define glIndexFuncEXT (_jit_gl_get_proctable()->IndexFuncEXT) -#define glLockArraysEXT (_jit_gl_get_proctable()->LockArraysEXT) -#define glUnlockArraysEXT (_jit_gl_get_proctable()->UnlockArraysEXT) -#define glCullParameterdvEXT (_jit_gl_get_proctable()->CullParameterdvEXT) -#define glCullParameterfvEXT (_jit_gl_get_proctable()->CullParameterfvEXT) -#define glFragmentColorMaterialSGIX (_jit_gl_get_proctable()->FragmentColorMaterialSGIX) -#define glFragmentLightfSGIX (_jit_gl_get_proctable()->FragmentLightfSGIX) -#define glFragmentLightfvSGIX (_jit_gl_get_proctable()->FragmentLightfvSGIX) -#define glFragmentLightiSGIX (_jit_gl_get_proctable()->FragmentLightiSGIX) -#define glFragmentLightivSGIX (_jit_gl_get_proctable()->FragmentLightivSGIX) -#define glFragmentLightModelfSGIX (_jit_gl_get_proctable()->FragmentLightModelfSGIX) -#define glFragmentLightModelfvSGIX (_jit_gl_get_proctable()->FragmentLightModelfvSGIX) -#define glFragmentLightModeliSGIX (_jit_gl_get_proctable()->FragmentLightModeliSGIX) -#define glFragmentLightModelivSGIX (_jit_gl_get_proctable()->FragmentLightModelivSGIX) -#define glFragmentMaterialfSGIX (_jit_gl_get_proctable()->FragmentMaterialfSGIX) -#define glFragmentMaterialfvSGIX (_jit_gl_get_proctable()->FragmentMaterialfvSGIX) -#define glFragmentMaterialiSGIX (_jit_gl_get_proctable()->FragmentMaterialiSGIX) -#define glFragmentMaterialivSGIX (_jit_gl_get_proctable()->FragmentMaterialivSGIX) -#define glGetFragmentLightfvSGIX (_jit_gl_get_proctable()->GetFragmentLightfvSGIX) -#define glGetFragmentLightivSGIX (_jit_gl_get_proctable()->GetFragmentLightivSGIX) -#define glGetFragmentMaterialfvSGIX (_jit_gl_get_proctable()->GetFragmentMaterialfvSGIX) -#define glGetFragmentMaterialivSGIX (_jit_gl_get_proctable()->GetFragmentMaterialivSGIX) -#define glLightEnviSGIX (_jit_gl_get_proctable()->LightEnviSGIX) -#define glDrawRangeElementsEXT (_jit_gl_get_proctable()->DrawRangeElementsEXT) -#define glApplyTextureEXT (_jit_gl_get_proctable()->ApplyTextureEXT) -#define glTextureLightEXT (_jit_gl_get_proctable()->TextureLightEXT) -#define glTextureMaterialEXT (_jit_gl_get_proctable()->TextureMaterialEXT) -#define glAsyncMarkerSGIX (_jit_gl_get_proctable()->AsyncMarkerSGIX) -#define glFinishAsyncSGIX (_jit_gl_get_proctable()->FinishAsyncSGIX) -#define glPollAsyncSGIX (_jit_gl_get_proctable()->PollAsyncSGIX) -#define glGenAsyncMarkersSGIX (_jit_gl_get_proctable()->GenAsyncMarkersSGIX) -#define glDeleteAsyncMarkersSGIX (_jit_gl_get_proctable()->DeleteAsyncMarkersSGIX) -#define glIsAsyncMarkerSGIX (_jit_gl_get_proctable()->IsAsyncMarkerSGIX) -#define glVertexPointervINTEL (_jit_gl_get_proctable()->VertexPointervINTEL) -#define glNormalPointervINTEL (_jit_gl_get_proctable()->NormalPointervINTEL) -#define glColorPointervINTEL (_jit_gl_get_proctable()->ColorPointervINTEL) -#define glTexCoordPointervINTEL (_jit_gl_get_proctable()->TexCoordPointervINTEL) -#define glPixelTransformParameteriEXT (_jit_gl_get_proctable()->PixelTransformParameteriEXT) -#define glPixelTransformParameterfEXT (_jit_gl_get_proctable()->PixelTransformParameterfEXT) -#define glPixelTransformParameterivEXT (_jit_gl_get_proctable()->PixelTransformParameterivEXT) -#define glPixelTransformParameterfvEXT (_jit_gl_get_proctable()->PixelTransformParameterfvEXT) -#define glSecondaryColor3bEXT (_jit_gl_get_proctable()->SecondaryColor3bEXT) -#define glSecondaryColor3bvEXT (_jit_gl_get_proctable()->SecondaryColor3bvEXT) -#define glSecondaryColor3dEXT (_jit_gl_get_proctable()->SecondaryColor3dEXT) -#define glSecondaryColor3dvEXT (_jit_gl_get_proctable()->SecondaryColor3dvEXT) -#define glSecondaryColor3fEXT (_jit_gl_get_proctable()->SecondaryColor3fEXT) -#define glSecondaryColor3fvEXT (_jit_gl_get_proctable()->SecondaryColor3fvEXT) -#define glSecondaryColor3iEXT (_jit_gl_get_proctable()->SecondaryColor3iEXT) -#define glSecondaryColor3ivEXT (_jit_gl_get_proctable()->SecondaryColor3ivEXT) -#define glSecondaryColor3sEXT (_jit_gl_get_proctable()->SecondaryColor3sEXT) -#define glSecondaryColor3svEXT (_jit_gl_get_proctable()->SecondaryColor3svEXT) -#define glSecondaryColor3ubEXT (_jit_gl_get_proctable()->SecondaryColor3ubEXT) -#define glSecondaryColor3ubvEXT (_jit_gl_get_proctable()->SecondaryColor3ubvEXT) -#define glSecondaryColor3uiEXT (_jit_gl_get_proctable()->SecondaryColor3uiEXT) -#define glSecondaryColor3uivEXT (_jit_gl_get_proctable()->SecondaryColor3uivEXT) -#define glSecondaryColor3usEXT (_jit_gl_get_proctable()->SecondaryColor3usEXT) -#define glSecondaryColor3usvEXT (_jit_gl_get_proctable()->SecondaryColor3usvEXT) -#define glSecondaryColorPointerEXT (_jit_gl_get_proctable()->SecondaryColorPointerEXT) -#define glTextureNormalEXT (_jit_gl_get_proctable()->TextureNormalEXT) -#define glMultiDrawArraysEXT (_jit_gl_get_proctable()->MultiDrawArraysEXT) -#define glMultiDrawElementsEXT (_jit_gl_get_proctable()->MultiDrawElementsEXT) -#define glFogCoordfEXT (_jit_gl_get_proctable()->FogCoordfEXT) -#define glFogCoordfvEXT (_jit_gl_get_proctable()->FogCoordfvEXT) -#define glFogCoorddEXT (_jit_gl_get_proctable()->FogCoorddEXT) -#define glFogCoorddvEXT (_jit_gl_get_proctable()->FogCoorddvEXT) -#define glFogCoordPointerEXT (_jit_gl_get_proctable()->FogCoordPointerEXT) -#define glTangent3bEXT (_jit_gl_get_proctable()->Tangent3bEXT) -#define glTangent3bvEXT (_jit_gl_get_proctable()->Tangent3bvEXT) -#define glTangent3dEXT (_jit_gl_get_proctable()->Tangent3dEXT) -#define glTangent3dvEXT (_jit_gl_get_proctable()->Tangent3dvEXT) -#define glTangent3fEXT (_jit_gl_get_proctable()->Tangent3fEXT) -#define glTangent3fvEXT (_jit_gl_get_proctable()->Tangent3fvEXT) -#define glTangent3iEXT (_jit_gl_get_proctable()->Tangent3iEXT) -#define glTangent3ivEXT (_jit_gl_get_proctable()->Tangent3ivEXT) -#define glTangent3sEXT (_jit_gl_get_proctable()->Tangent3sEXT) -#define glTangent3svEXT (_jit_gl_get_proctable()->Tangent3svEXT) -#define glBinormal3bEXT (_jit_gl_get_proctable()->Binormal3bEXT) -#define glBinormal3bvEXT (_jit_gl_get_proctable()->Binormal3bvEXT) -#define glBinormal3dEXT (_jit_gl_get_proctable()->Binormal3dEXT) -#define glBinormal3dvEXT (_jit_gl_get_proctable()->Binormal3dvEXT) -#define glBinormal3fEXT (_jit_gl_get_proctable()->Binormal3fEXT) -#define glBinormal3fvEXT (_jit_gl_get_proctable()->Binormal3fvEXT) -#define glBinormal3iEXT (_jit_gl_get_proctable()->Binormal3iEXT) -#define glBinormal3ivEXT (_jit_gl_get_proctable()->Binormal3ivEXT) -#define glBinormal3sEXT (_jit_gl_get_proctable()->Binormal3sEXT) -#define glBinormal3svEXT (_jit_gl_get_proctable()->Binormal3svEXT) -#define glTangentPointerEXT (_jit_gl_get_proctable()->TangentPointerEXT) -#define glBinormalPointerEXT (_jit_gl_get_proctable()->BinormalPointerEXT) -#define glFinishTextureSUNX (_jit_gl_get_proctable()->FinishTextureSUNX) -#define glGlobalAlphaFactorbSUN (_jit_gl_get_proctable()->GlobalAlphaFactorbSUN) -#define glGlobalAlphaFactorsSUN (_jit_gl_get_proctable()->GlobalAlphaFactorsSUN) -#define glGlobalAlphaFactoriSUN (_jit_gl_get_proctable()->GlobalAlphaFactoriSUN) -#define glGlobalAlphaFactorfSUN (_jit_gl_get_proctable()->GlobalAlphaFactorfSUN) -#define glGlobalAlphaFactordSUN (_jit_gl_get_proctable()->GlobalAlphaFactordSUN) -#define glGlobalAlphaFactorubSUN (_jit_gl_get_proctable()->GlobalAlphaFactorubSUN) -#define glGlobalAlphaFactorusSUN (_jit_gl_get_proctable()->GlobalAlphaFactorusSUN) -#define glGlobalAlphaFactoruiSUN (_jit_gl_get_proctable()->GlobalAlphaFactoruiSUN) -#define glReplacementCodeuiSUN (_jit_gl_get_proctable()->ReplacementCodeuiSUN) -#define glReplacementCodeusSUN (_jit_gl_get_proctable()->ReplacementCodeusSUN) -#define glReplacementCodeubSUN (_jit_gl_get_proctable()->ReplacementCodeubSUN) -#define glReplacementCodeuivSUN (_jit_gl_get_proctable()->ReplacementCodeuivSUN) -#define glReplacementCodeusvSUN (_jit_gl_get_proctable()->ReplacementCodeusvSUN) -#define glReplacementCodeubvSUN (_jit_gl_get_proctable()->ReplacementCodeubvSUN) -#define glReplacementCodePointerSUN (_jit_gl_get_proctable()->ReplacementCodePointerSUN) -#define glColor4ubVertex2fSUN (_jit_gl_get_proctable()->Color4ubVertex2fSUN) -#define glColor4ubVertex2fvSUN (_jit_gl_get_proctable()->Color4ubVertex2fvSUN) -#define glColor4ubVertex3fSUN (_jit_gl_get_proctable()->Color4ubVertex3fSUN) -#define glColor4ubVertex3fvSUN (_jit_gl_get_proctable()->Color4ubVertex3fvSUN) -#define glColor3fVertex3fSUN (_jit_gl_get_proctable()->Color3fVertex3fSUN) -#define glColor3fVertex3fvSUN (_jit_gl_get_proctable()->Color3fVertex3fvSUN) -#define glNormal3fVertex3fSUN (_jit_gl_get_proctable()->Normal3fVertex3fSUN) -#define glNormal3fVertex3fvSUN (_jit_gl_get_proctable()->Normal3fVertex3fvSUN) -#define glColor4fNormal3fVertex3fSUN (_jit_gl_get_proctable()->Color4fNormal3fVertex3fSUN) -#define glColor4fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->Color4fNormal3fVertex3fvSUN) -#define glTexCoord2fVertex3fSUN (_jit_gl_get_proctable()->TexCoord2fVertex3fSUN) -#define glTexCoord2fVertex3fvSUN (_jit_gl_get_proctable()->TexCoord2fVertex3fvSUN) -#define glTexCoord4fVertex4fSUN (_jit_gl_get_proctable()->TexCoord4fVertex4fSUN) -#define glTexCoord4fVertex4fvSUN (_jit_gl_get_proctable()->TexCoord4fVertex4fvSUN) -#define glTexCoord2fColor4ubVertex3fSUN (_jit_gl_get_proctable()->TexCoord2fColor4ubVertex3fSUN) -#define glTexCoord2fColor4ubVertex3fvSUN (_jit_gl_get_proctable()->TexCoord2fColor4ubVertex3fvSUN) -#define glTexCoord2fColor3fVertex3fSUN (_jit_gl_get_proctable()->TexCoord2fColor3fVertex3fSUN) -#define glTexCoord2fColor3fVertex3fvSUN (_jit_gl_get_proctable()->TexCoord2fColor3fVertex3fvSUN) -#define glTexCoord2fNormal3fVertex3fSUN (_jit_gl_get_proctable()->TexCoord2fNormal3fVertex3fSUN) -#define glTexCoord2fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->TexCoord2fNormal3fVertex3fvSUN) -#define glTexCoord2fColor4fNormal3fVertex3fSUN (_jit_gl_get_proctable()->TexCoord2fColor4fNormal3fVertex3fSUN) -#define glTexCoord2fColor4fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->TexCoord2fColor4fNormal3fVertex3fvSUN) -#define glTexCoord4fColor4fNormal3fVertex4fSUN (_jit_gl_get_proctable()->TexCoord4fColor4fNormal3fVertex4fSUN) -#define glTexCoord4fColor4fNormal3fVertex4fvSUN (_jit_gl_get_proctable()->TexCoord4fColor4fNormal3fVertex4fvSUN) -#define glReplacementCodeuiVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiVertex3fSUN) -#define glReplacementCodeuiVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiVertex3fvSUN) -#define glReplacementCodeuiColor4ubVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor4ubVertex3fSUN) -#define glReplacementCodeuiColor4ubVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor4ubVertex3fvSUN) -#define glReplacementCodeuiColor3fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor3fVertex3fSUN) -#define glReplacementCodeuiColor3fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor3fVertex3fvSUN) -#define glReplacementCodeuiNormal3fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiNormal3fVertex3fSUN) -#define glReplacementCodeuiNormal3fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiNormal3fVertex3fvSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiColor4fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) -#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (_jit_gl_get_proctable()->ReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) -#define glBlendFuncSeparateEXT (_jit_gl_get_proctable()->BlendFuncSeparateEXT) -#define glBlendFuncSeparateINGR (_jit_gl_get_proctable()->BlendFuncSeparateINGR) -#define glVertexWeightfEXT (_jit_gl_get_proctable()->VertexWeightfEXT) -#define glVertexWeightfvEXT (_jit_gl_get_proctable()->VertexWeightfvEXT) -#define glVertexWeightPointerEXT (_jit_gl_get_proctable()->VertexWeightPointerEXT) -#define glFlushVertexArrayRangeNV (_jit_gl_get_proctable()->FlushVertexArrayRangeNV) -#define glVertexArrayRangeNV (_jit_gl_get_proctable()->VertexArrayRangeNV) -#define glCombinerParameterfvNV (_jit_gl_get_proctable()->CombinerParameterfvNV) -#define glCombinerParameterfNV (_jit_gl_get_proctable()->CombinerParameterfNV) -#define glCombinerParameterivNV (_jit_gl_get_proctable()->CombinerParameterivNV) -#define glCombinerParameteriNV (_jit_gl_get_proctable()->CombinerParameteriNV) -#define glCombinerInputNV (_jit_gl_get_proctable()->CombinerInputNV) -#define glCombinerOutputNV (_jit_gl_get_proctable()->CombinerOutputNV) -#define glFinalCombinerInputNV (_jit_gl_get_proctable()->FinalCombinerInputNV) -#define glGetCombinerInputParameterfvNV (_jit_gl_get_proctable()->GetCombinerInputParameterfvNV) -#define glGetCombinerInputParameterivNV (_jit_gl_get_proctable()->GetCombinerInputParameterivNV) -#define glGetCombinerOutputParameterfvNV (_jit_gl_get_proctable()->GetCombinerOutputParameterfvNV) -#define glGetCombinerOutputParameterivNV (_jit_gl_get_proctable()->GetCombinerOutputParameterivNV) -#define glGetFinalCombinerInputParameterfvNV (_jit_gl_get_proctable()->GetFinalCombinerInputParameterfvNV) -#define glGetFinalCombinerInputParameterivNV (_jit_gl_get_proctable()->GetFinalCombinerInputParameterivNV) -#define glResizeBuffersMESA (_jit_gl_get_proctable()->ResizeBuffersMESA) -#define glWindowPos2dMESA (_jit_gl_get_proctable()->WindowPos2dMESA) -#define glWindowPos2dvMESA (_jit_gl_get_proctable()->WindowPos2dvMESA) -#define glWindowPos2fMESA (_jit_gl_get_proctable()->WindowPos2fMESA) -#define glWindowPos2fvMESA (_jit_gl_get_proctable()->WindowPos2fvMESA) -#define glWindowPos2iMESA (_jit_gl_get_proctable()->WindowPos2iMESA) -#define glWindowPos2ivMESA (_jit_gl_get_proctable()->WindowPos2ivMESA) -#define glWindowPos2sMESA (_jit_gl_get_proctable()->WindowPos2sMESA) -#define glWindowPos2svMESA (_jit_gl_get_proctable()->WindowPos2svMESA) -#define glWindowPos3dMESA (_jit_gl_get_proctable()->WindowPos3dMESA) -#define glWindowPos3dvMESA (_jit_gl_get_proctable()->WindowPos3dvMESA) -#define glWindowPos3fMESA (_jit_gl_get_proctable()->WindowPos3fMESA) -#define glWindowPos3fvMESA (_jit_gl_get_proctable()->WindowPos3fvMESA) -#define glWindowPos3iMESA (_jit_gl_get_proctable()->WindowPos3iMESA) -#define glWindowPos3ivMESA (_jit_gl_get_proctable()->WindowPos3ivMESA) -#define glWindowPos3sMESA (_jit_gl_get_proctable()->WindowPos3sMESA) -#define glWindowPos3svMESA (_jit_gl_get_proctable()->WindowPos3svMESA) -#define glWindowPos4dMESA (_jit_gl_get_proctable()->WindowPos4dMESA) -#define glWindowPos4dvMESA (_jit_gl_get_proctable()->WindowPos4dvMESA) -#define glWindowPos4fMESA (_jit_gl_get_proctable()->WindowPos4fMESA) -#define glWindowPos4fvMESA (_jit_gl_get_proctable()->WindowPos4fvMESA) -#define glWindowPos4iMESA (_jit_gl_get_proctable()->WindowPos4iMESA) -#define glWindowPos4ivMESA (_jit_gl_get_proctable()->WindowPos4ivMESA) -#define glWindowPos4sMESA (_jit_gl_get_proctable()->WindowPos4sMESA) -#define glWindowPos4svMESA (_jit_gl_get_proctable()->WindowPos4svMESA) -#define glMultiModeDrawArraysIBM (_jit_gl_get_proctable()->MultiModeDrawArraysIBM) -#define glMultiModeDrawElementsIBM (_jit_gl_get_proctable()->MultiModeDrawElementsIBM) -#define glColorPointerListIBM (_jit_gl_get_proctable()->ColorPointerListIBM) -#define glSecondaryColorPointerListIBM (_jit_gl_get_proctable()->SecondaryColorPointerListIBM) -#define glEdgeFlagPointerListIBM (_jit_gl_get_proctable()->EdgeFlagPointerListIBM) -#define glFogCoordPointerListIBM (_jit_gl_get_proctable()->FogCoordPointerListIBM) -#define glIndexPointerListIBM (_jit_gl_get_proctable()->IndexPointerListIBM) -#define glNormalPointerListIBM (_jit_gl_get_proctable()->NormalPointerListIBM) -#define glTexCoordPointerListIBM (_jit_gl_get_proctable()->TexCoordPointerListIBM) -#define glVertexPointerListIBM (_jit_gl_get_proctable()->VertexPointerListIBM) -#define glTbufferMask3DFX (_jit_gl_get_proctable()->TbufferMask3DFX) -#define glSampleMaskEXT (_jit_gl_get_proctable()->SampleMaskEXT) -#define glSamplePatternEXT (_jit_gl_get_proctable()->SamplePatternEXT) -#define glTextureColorMaskSGIS (_jit_gl_get_proctable()->TextureColorMaskSGIS) -#define glIglooInterfaceSGIX (_jit_gl_get_proctable()->IglooInterfaceSGIX) -#define glDeleteFencesNV (_jit_gl_get_proctable()->DeleteFencesNV) -#define glGenFencesNV (_jit_gl_get_proctable()->GenFencesNV) -#define glIsFenceNV (_jit_gl_get_proctable()->IsFenceNV) -#define glTestFenceNV (_jit_gl_get_proctable()->TestFenceNV) -#define glGetFenceivNV (_jit_gl_get_proctable()->GetFenceivNV) -#define glFinishFenceNV (_jit_gl_get_proctable()->FinishFenceNV) -#define glSetFenceNV (_jit_gl_get_proctable()->SetFenceNV) -#define glMapControlPointsNV (_jit_gl_get_proctable()->MapControlPointsNV) -#define glMapParameterivNV (_jit_gl_get_proctable()->MapParameterivNV) -#define glMapParameterfvNV (_jit_gl_get_proctable()->MapParameterfvNV) -#define glGetMapControlPointsNV (_jit_gl_get_proctable()->GetMapControlPointsNV) -#define glGetMapParameterivNV (_jit_gl_get_proctable()->GetMapParameterivNV) -#define glGetMapParameterfvNV (_jit_gl_get_proctable()->GetMapParameterfvNV) -#define glGetMapAttribParameterivNV (_jit_gl_get_proctable()->GetMapAttribParameterivNV) -#define glGetMapAttribParameterfvNV (_jit_gl_get_proctable()->GetMapAttribParameterfvNV) -#define glEvalMapsNV (_jit_gl_get_proctable()->EvalMapsNV) -#define glCombinerStageParameterfvNV (_jit_gl_get_proctable()->CombinerStageParameterfvNV) -#define glGetCombinerStageParameterfvNV (_jit_gl_get_proctable()->GetCombinerStageParameterfvNV) -#define glAreProgramsResidentNV (_jit_gl_get_proctable()->AreProgramsResidentNV) -#define glBindProgramNV (_jit_gl_get_proctable()->BindProgramNV) -#define glDeleteProgramsNV (_jit_gl_get_proctable()->DeleteProgramsNV) -#define glExecuteProgramNV (_jit_gl_get_proctable()->ExecuteProgramNV) -#define glGenProgramsNV (_jit_gl_get_proctable()->GenProgramsNV) -#define glGetProgramParameterdvNV (_jit_gl_get_proctable()->GetProgramParameterdvNV) -#define glGetProgramParameterfvNV (_jit_gl_get_proctable()->GetProgramParameterfvNV) -#define glGetProgramivNV (_jit_gl_get_proctable()->GetProgramivNV) -#define glGetProgramStringNV (_jit_gl_get_proctable()->GetProgramStringNV) -#define glGetTrackMatrixivNV (_jit_gl_get_proctable()->GetTrackMatrixivNV) -#define glGetVertexAttribdvNV (_jit_gl_get_proctable()->GetVertexAttribdvNV) -#define glGetVertexAttribfvNV (_jit_gl_get_proctable()->GetVertexAttribfvNV) -#define glGetVertexAttribivNV (_jit_gl_get_proctable()->GetVertexAttribivNV) -#define glGetVertexAttribPointervNV (_jit_gl_get_proctable()->GetVertexAttribPointervNV) -#define glIsProgramNV (_jit_gl_get_proctable()->IsProgramNV) -#define glLoadProgramNV (_jit_gl_get_proctable()->LoadProgramNV) -#define glProgramParameter4dNV (_jit_gl_get_proctable()->ProgramParameter4dNV) -#define glProgramParameter4dvNV (_jit_gl_get_proctable()->ProgramParameter4dvNV) -#define glProgramParameter4fNV (_jit_gl_get_proctable()->ProgramParameter4fNV) -#define glProgramParameter4fvNV (_jit_gl_get_proctable()->ProgramParameter4fvNV) -#define glProgramParameters4dvNV (_jit_gl_get_proctable()->ProgramParameters4dvNV) -#define glProgramParameters4fvNV (_jit_gl_get_proctable()->ProgramParameters4fvNV) -#define glRequestResidentProgramsNV (_jit_gl_get_proctable()->RequestResidentProgramsNV) -#define glTrackMatrixNV (_jit_gl_get_proctable()->TrackMatrixNV) -#define glVertexAttribPointerNV (_jit_gl_get_proctable()->VertexAttribPointerNV) -#define glVertexAttrib1dNV (_jit_gl_get_proctable()->VertexAttrib1dNV) -#define glVertexAttrib1dvNV (_jit_gl_get_proctable()->VertexAttrib1dvNV) -#define glVertexAttrib1fNV (_jit_gl_get_proctable()->VertexAttrib1fNV) -#define glVertexAttrib1fvNV (_jit_gl_get_proctable()->VertexAttrib1fvNV) -#define glVertexAttrib1sNV (_jit_gl_get_proctable()->VertexAttrib1sNV) -#define glVertexAttrib1svNV (_jit_gl_get_proctable()->VertexAttrib1svNV) -#define glVertexAttrib2dNV (_jit_gl_get_proctable()->VertexAttrib2dNV) -#define glVertexAttrib2dvNV (_jit_gl_get_proctable()->VertexAttrib2dvNV) -#define glVertexAttrib2fNV (_jit_gl_get_proctable()->VertexAttrib2fNV) -#define glVertexAttrib2fvNV (_jit_gl_get_proctable()->VertexAttrib2fvNV) -#define glVertexAttrib2sNV (_jit_gl_get_proctable()->VertexAttrib2sNV) -#define glVertexAttrib2svNV (_jit_gl_get_proctable()->VertexAttrib2svNV) -#define glVertexAttrib3dNV (_jit_gl_get_proctable()->VertexAttrib3dNV) -#define glVertexAttrib3dvNV (_jit_gl_get_proctable()->VertexAttrib3dvNV) -#define glVertexAttrib3fNV (_jit_gl_get_proctable()->VertexAttrib3fNV) -#define glVertexAttrib3fvNV (_jit_gl_get_proctable()->VertexAttrib3fvNV) -#define glVertexAttrib3sNV (_jit_gl_get_proctable()->VertexAttrib3sNV) -#define glVertexAttrib3svNV (_jit_gl_get_proctable()->VertexAttrib3svNV) -#define glVertexAttrib4dNV (_jit_gl_get_proctable()->VertexAttrib4dNV) -#define glVertexAttrib4dvNV (_jit_gl_get_proctable()->VertexAttrib4dvNV) -#define glVertexAttrib4fNV (_jit_gl_get_proctable()->VertexAttrib4fNV) -#define glVertexAttrib4fvNV (_jit_gl_get_proctable()->VertexAttrib4fvNV) -#define glVertexAttrib4sNV (_jit_gl_get_proctable()->VertexAttrib4sNV) -#define glVertexAttrib4svNV (_jit_gl_get_proctable()->VertexAttrib4svNV) -#define glVertexAttrib4ubNV (_jit_gl_get_proctable()->VertexAttrib4ubNV) -#define glVertexAttrib4ubvNV (_jit_gl_get_proctable()->VertexAttrib4ubvNV) -#define glVertexAttribs1dvNV (_jit_gl_get_proctable()->VertexAttribs1dvNV) -#define glVertexAttribs1fvNV (_jit_gl_get_proctable()->VertexAttribs1fvNV) -#define glVertexAttribs1svNV (_jit_gl_get_proctable()->VertexAttribs1svNV) -#define glVertexAttribs2dvNV (_jit_gl_get_proctable()->VertexAttribs2dvNV) -#define glVertexAttribs2fvNV (_jit_gl_get_proctable()->VertexAttribs2fvNV) -#define glVertexAttribs2svNV (_jit_gl_get_proctable()->VertexAttribs2svNV) -#define glVertexAttribs3dvNV (_jit_gl_get_proctable()->VertexAttribs3dvNV) -#define glVertexAttribs3fvNV (_jit_gl_get_proctable()->VertexAttribs3fvNV) -#define glVertexAttribs3svNV (_jit_gl_get_proctable()->VertexAttribs3svNV) -#define glVertexAttribs4dvNV (_jit_gl_get_proctable()->VertexAttribs4dvNV) -#define glVertexAttribs4fvNV (_jit_gl_get_proctable()->VertexAttribs4fvNV) -#define glVertexAttribs4svNV (_jit_gl_get_proctable()->VertexAttribs4svNV) -#define glVertexAttribs4ubvNV (_jit_gl_get_proctable()->VertexAttribs4ubvNV) -#define glTexBumpParameterivATI (_jit_gl_get_proctable()->TexBumpParameterivATI) -#define glTexBumpParameterfvATI (_jit_gl_get_proctable()->TexBumpParameterfvATI) -#define glGetTexBumpParameterivATI (_jit_gl_get_proctable()->GetTexBumpParameterivATI) -#define glGetTexBumpParameterfvATI (_jit_gl_get_proctable()->GetTexBumpParameterfvATI) -#define glGenFragmentShadersATI (_jit_gl_get_proctable()->GenFragmentShadersATI) -#define glBindFragmentShaderATI (_jit_gl_get_proctable()->BindFragmentShaderATI) -#define glDeleteFragmentShaderATI (_jit_gl_get_proctable()->DeleteFragmentShaderATI) -#define glBeginFragmentShaderATI (_jit_gl_get_proctable()->BeginFragmentShaderATI) -#define glEndFragmentShaderATI (_jit_gl_get_proctable()->EndFragmentShaderATI) -#define glPassTexCoordATI (_jit_gl_get_proctable()->PassTexCoordATI) -#define glSampleMapATI (_jit_gl_get_proctable()->SampleMapATI) -#define glColorFragmentOp1ATI (_jit_gl_get_proctable()->ColorFragmentOp1ATI) -#define glColorFragmentOp2ATI (_jit_gl_get_proctable()->ColorFragmentOp2ATI) -#define glColorFragmentOp3ATI (_jit_gl_get_proctable()->ColorFragmentOp3ATI) -#define glAlphaFragmentOp1ATI (_jit_gl_get_proctable()->AlphaFragmentOp1ATI) -#define glAlphaFragmentOp2ATI (_jit_gl_get_proctable()->AlphaFragmentOp2ATI) -#define glAlphaFragmentOp3ATI (_jit_gl_get_proctable()->AlphaFragmentOp3ATI) -#define glSetFragmentShaderConstantATI (_jit_gl_get_proctable()->SetFragmentShaderConstantATI) -#define glPNTrianglesiATI (_jit_gl_get_proctable()->PNTrianglesiATI) -#define glPNTrianglesfATI (_jit_gl_get_proctable()->PNTrianglesfATI) -#define glNewObjectBufferATI (_jit_gl_get_proctable()->NewObjectBufferATI) -#define glIsObjectBufferATI (_jit_gl_get_proctable()->IsObjectBufferATI) -#define glUpdateObjectBufferATI (_jit_gl_get_proctable()->UpdateObjectBufferATI) -#define glGetObjectBufferfvATI (_jit_gl_get_proctable()->GetObjectBufferfvATI) -#define glGetObjectBufferivATI (_jit_gl_get_proctable()->GetObjectBufferivATI) -#define glFreeObjectBufferATI (_jit_gl_get_proctable()->FreeObjectBufferATI) -#define glArrayObjectATI (_jit_gl_get_proctable()->ArrayObjectATI) -#define glGetArrayObjectfvATI (_jit_gl_get_proctable()->GetArrayObjectfvATI) -#define glGetArrayObjectivATI (_jit_gl_get_proctable()->GetArrayObjectivATI) -#define glVariantArrayObjectATI (_jit_gl_get_proctable()->VariantArrayObjectATI) -#define glGetVariantArrayObjectfvATI (_jit_gl_get_proctable()->GetVariantArrayObjectfvATI) -#define glGetVariantArrayObjectivATI (_jit_gl_get_proctable()->GetVariantArrayObjectivATI) -#define glBeginVertexShaderEXT (_jit_gl_get_proctable()->BeginVertexShaderEXT) -#define glEndVertexShaderEXT (_jit_gl_get_proctable()->EndVertexShaderEXT) -#define glBindVertexShaderEXT (_jit_gl_get_proctable()->BindVertexShaderEXT) -#define glGenVertexShadersEXT (_jit_gl_get_proctable()->GenVertexShadersEXT) -#define glDeleteVertexShaderEXT (_jit_gl_get_proctable()->DeleteVertexShaderEXT) -#define glShaderOp1EXT (_jit_gl_get_proctable()->ShaderOp1EXT) -#define glShaderOp2EXT (_jit_gl_get_proctable()->ShaderOp2EXT) -#define glShaderOp3EXT (_jit_gl_get_proctable()->ShaderOp3EXT) -#define glSwizzleEXT (_jit_gl_get_proctable()->SwizzleEXT) -#define glWriteMaskEXT (_jit_gl_get_proctable()->WriteMaskEXT) -#define glInsertComponentEXT (_jit_gl_get_proctable()->InsertComponentEXT) -#define glExtractComponentEXT (_jit_gl_get_proctable()->ExtractComponentEXT) -#define glGenSymbolsEXT (_jit_gl_get_proctable()->GenSymbolsEXT) -#define glSetInvariantEXT (_jit_gl_get_proctable()->SetInvariantEXT) -#define glSetLocalConstantEXT (_jit_gl_get_proctable()->SetLocalConstantEXT) -#define glVariantbvEXT (_jit_gl_get_proctable()->VariantbvEXT) -#define glVariantsvEXT (_jit_gl_get_proctable()->VariantsvEXT) -#define glVariantivEXT (_jit_gl_get_proctable()->VariantivEXT) -#define glVariantfvEXT (_jit_gl_get_proctable()->VariantfvEXT) -#define glVariantdvEXT (_jit_gl_get_proctable()->VariantdvEXT) -#define glVariantubvEXT (_jit_gl_get_proctable()->VariantubvEXT) -#define glVariantusvEXT (_jit_gl_get_proctable()->VariantusvEXT) -#define glVariantuivEXT (_jit_gl_get_proctable()->VariantuivEXT) -#define glVariantPointerEXT (_jit_gl_get_proctable()->VariantPointerEXT) -#define glEnableVariantClientStateEXT (_jit_gl_get_proctable()->EnableVariantClientStateEXT) -#define glDisableVariantClientStateEXT (_jit_gl_get_proctable()->DisableVariantClientStateEXT) -#define glBindLightParameterEXT (_jit_gl_get_proctable()->BindLightParameterEXT) -#define glBindMaterialParameterEXT (_jit_gl_get_proctable()->BindMaterialParameterEXT) -#define glBindTexGenParameterEXT (_jit_gl_get_proctable()->BindTexGenParameterEXT) -#define glBindTextureUnitParameterEXT (_jit_gl_get_proctable()->BindTextureUnitParameterEXT) -#define glBindParameterEXT (_jit_gl_get_proctable()->BindParameterEXT) -#define glIsVariantEnabledEXT (_jit_gl_get_proctable()->IsVariantEnabledEXT) -#define glGetVariantBooleanvEXT (_jit_gl_get_proctable()->GetVariantBooleanvEXT) -#define glGetVariantIntegervEXT (_jit_gl_get_proctable()->GetVariantIntegervEXT) -#define glGetVariantFloatvEXT (_jit_gl_get_proctable()->GetVariantFloatvEXT) -#define glGetVariantPointervEXT (_jit_gl_get_proctable()->GetVariantPointervEXT) -#define glGetInvariantBooleanvEXT (_jit_gl_get_proctable()->GetInvariantBooleanvEXT) -#define glGetInvariantIntegervEXT (_jit_gl_get_proctable()->GetInvariantIntegervEXT) -#define glGetInvariantFloatvEXT (_jit_gl_get_proctable()->GetInvariantFloatvEXT) -#define glGetLocalConstantBooleanvEXT (_jit_gl_get_proctable()->GetLocalConstantBooleanvEXT) -#define glGetLocalConstantIntegervEXT (_jit_gl_get_proctable()->GetLocalConstantIntegervEXT) -#define glGetLocalConstantFloatvEXT (_jit_gl_get_proctable()->GetLocalConstantFloatvEXT) -#define glVertexStream1sATI (_jit_gl_get_proctable()->VertexStream1sATI) -#define glVertexStream1svATI (_jit_gl_get_proctable()->VertexStream1svATI) -#define glVertexStream1iATI (_jit_gl_get_proctable()->VertexStream1iATI) -#define glVertexStream1ivATI (_jit_gl_get_proctable()->VertexStream1ivATI) -#define glVertexStream1fATI (_jit_gl_get_proctable()->VertexStream1fATI) -#define glVertexStream1fvATI (_jit_gl_get_proctable()->VertexStream1fvATI) -#define glVertexStream1dATI (_jit_gl_get_proctable()->VertexStream1dATI) -#define glVertexStream1dvATI (_jit_gl_get_proctable()->VertexStream1dvATI) -#define glVertexStream2sATI (_jit_gl_get_proctable()->VertexStream2sATI) -#define glVertexStream2svATI (_jit_gl_get_proctable()->VertexStream2svATI) -#define glVertexStream2iATI (_jit_gl_get_proctable()->VertexStream2iATI) -#define glVertexStream2ivATI (_jit_gl_get_proctable()->VertexStream2ivATI) -#define glVertexStream2fATI (_jit_gl_get_proctable()->VertexStream2fATI) -#define glVertexStream2fvATI (_jit_gl_get_proctable()->VertexStream2fvATI) -#define glVertexStream2dATI (_jit_gl_get_proctable()->VertexStream2dATI) -#define glVertexStream2dvATI (_jit_gl_get_proctable()->VertexStream2dvATI) -#define glVertexStream3sATI (_jit_gl_get_proctable()->VertexStream3sATI) -#define glVertexStream3svATI (_jit_gl_get_proctable()->VertexStream3svATI) -#define glVertexStream3iATI (_jit_gl_get_proctable()->VertexStream3iATI) -#define glVertexStream3ivATI (_jit_gl_get_proctable()->VertexStream3ivATI) -#define glVertexStream3fATI (_jit_gl_get_proctable()->VertexStream3fATI) -#define glVertexStream3fvATI (_jit_gl_get_proctable()->VertexStream3fvATI) -#define glVertexStream3dATI (_jit_gl_get_proctable()->VertexStream3dATI) -#define glVertexStream3dvATI (_jit_gl_get_proctable()->VertexStream3dvATI) -#define glVertexStream4sATI (_jit_gl_get_proctable()->VertexStream4sATI) -#define glVertexStream4svATI (_jit_gl_get_proctable()->VertexStream4svATI) -#define glVertexStream4iATI (_jit_gl_get_proctable()->VertexStream4iATI) -#define glVertexStream4ivATI (_jit_gl_get_proctable()->VertexStream4ivATI) -#define glVertexStream4fATI (_jit_gl_get_proctable()->VertexStream4fATI) -#define glVertexStream4fvATI (_jit_gl_get_proctable()->VertexStream4fvATI) -#define glVertexStream4dATI (_jit_gl_get_proctable()->VertexStream4dATI) -#define glVertexStream4dvATI (_jit_gl_get_proctable()->VertexStream4dvATI) -#define glNormalStream3bATI (_jit_gl_get_proctable()->NormalStream3bATI) -#define glNormalStream3bvATI (_jit_gl_get_proctable()->NormalStream3bvATI) -#define glNormalStream3sATI (_jit_gl_get_proctable()->NormalStream3sATI) -#define glNormalStream3svATI (_jit_gl_get_proctable()->NormalStream3svATI) -#define glNormalStream3iATI (_jit_gl_get_proctable()->NormalStream3iATI) -#define glNormalStream3ivATI (_jit_gl_get_proctable()->NormalStream3ivATI) -#define glNormalStream3fATI (_jit_gl_get_proctable()->NormalStream3fATI) -#define glNormalStream3fvATI (_jit_gl_get_proctable()->NormalStream3fvATI) -#define glNormalStream3dATI (_jit_gl_get_proctable()->NormalStream3dATI) -#define glNormalStream3dvATI (_jit_gl_get_proctable()->NormalStream3dvATI) -#define glClientActiveVertexStreamATI (_jit_gl_get_proctable()->ClientActiveVertexStreamATI) -#define glVertexBlendEnviATI (_jit_gl_get_proctable()->VertexBlendEnviATI) -#define glVertexBlendEnvfATI (_jit_gl_get_proctable()->VertexBlendEnvfATI) -#define glElementPointerATI (_jit_gl_get_proctable()->ElementPointerATI) -#define glDrawElementArrayATI (_jit_gl_get_proctable()->DrawElementArrayATI) -#define glDrawRangeElementArrayATI (_jit_gl_get_proctable()->DrawRangeElementArrayATI) -#define glDrawMeshArraysSUN (_jit_gl_get_proctable()->DrawMeshArraysSUN) -#define glGenOcclusionQueriesNV (_jit_gl_get_proctable()->GenOcclusionQueriesNV) -#define glDeleteOcclusionQueriesNV (_jit_gl_get_proctable()->DeleteOcclusionQueriesNV) -#define glIsOcclusionQueryNV (_jit_gl_get_proctable()->IsOcclusionQueryNV) -#define glBeginOcclusionQueryNV (_jit_gl_get_proctable()->BeginOcclusionQueryNV) -#define glEndOcclusionQueryNV (_jit_gl_get_proctable()->EndOcclusionQueryNV) -#define glGetOcclusionQueryivNV (_jit_gl_get_proctable()->GetOcclusionQueryivNV) -#define glGetOcclusionQueryuivNV (_jit_gl_get_proctable()->GetOcclusionQueryuivNV) -#define glPointParameteriNV (_jit_gl_get_proctable()->PointParameteriNV) -#define glPointParameterivNV (_jit_gl_get_proctable()->PointParameterivNV) -#define glActiveStencilFaceEXT (_jit_gl_get_proctable()->ActiveStencilFaceEXT) -#define glDrawBuffersATI (_jit_gl_get_proctable()->DrawBuffersATI) -#define glProgramNamedParameter4fNV (_jit_gl_get_proctable()->ProgramNamedParameter4fNV) -#define glProgramNamedParameter4dNV (_jit_gl_get_proctable()->ProgramNamedParameter4dNV) -#define glProgramNamedParameter4fvNV (_jit_gl_get_proctable()->ProgramNamedParameter4fvNV) -#define glProgramNamedParameter4dvNV (_jit_gl_get_proctable()->ProgramNamedParameter4dvNV) -#define glGetProgramNamedParameterfvNV (_jit_gl_get_proctable()->GetProgramNamedParameterfvNV) -#define glGetProgramNamedParameterdvNV (_jit_gl_get_proctable()->GetProgramNamedParameterdvNV) -#define glVertex2hNV (_jit_gl_get_proctable()->Vertex2hNV) -#define glVertex2hvNV (_jit_gl_get_proctable()->Vertex2hvNV) -#define glVertex3hNV (_jit_gl_get_proctable()->Vertex3hNV) -#define glVertex3hvNV (_jit_gl_get_proctable()->Vertex3hvNV) -#define glVertex4hNV (_jit_gl_get_proctable()->Vertex4hNV) -#define glVertex4hvNV (_jit_gl_get_proctable()->Vertex4hvNV) -#define glNormal3hNV (_jit_gl_get_proctable()->Normal3hNV) -#define glNormal3hvNV (_jit_gl_get_proctable()->Normal3hvNV) -#define glColor3hNV (_jit_gl_get_proctable()->Color3hNV) -#define glColor3hvNV (_jit_gl_get_proctable()->Color3hvNV) -#define glColor4hNV (_jit_gl_get_proctable()->Color4hNV) -#define glColor4hvNV (_jit_gl_get_proctable()->Color4hvNV) -#define glTexCoord1hNV (_jit_gl_get_proctable()->TexCoord1hNV) -#define glTexCoord1hvNV (_jit_gl_get_proctable()->TexCoord1hvNV) -#define glTexCoord2hNV (_jit_gl_get_proctable()->TexCoord2hNV) -#define glTexCoord2hvNV (_jit_gl_get_proctable()->TexCoord2hvNV) -#define glTexCoord3hNV (_jit_gl_get_proctable()->TexCoord3hNV) -#define glTexCoord3hvNV (_jit_gl_get_proctable()->TexCoord3hvNV) -#define glTexCoord4hNV (_jit_gl_get_proctable()->TexCoord4hNV) -#define glTexCoord4hvNV (_jit_gl_get_proctable()->TexCoord4hvNV) -#define glMultiTexCoord1hNV (_jit_gl_get_proctable()->MultiTexCoord1hNV) -#define glMultiTexCoord1hvNV (_jit_gl_get_proctable()->MultiTexCoord1hvNV) -#define glMultiTexCoord2hNV (_jit_gl_get_proctable()->MultiTexCoord2hNV) -#define glMultiTexCoord2hvNV (_jit_gl_get_proctable()->MultiTexCoord2hvNV) -#define glMultiTexCoord3hNV (_jit_gl_get_proctable()->MultiTexCoord3hNV) -#define glMultiTexCoord3hvNV (_jit_gl_get_proctable()->MultiTexCoord3hvNV) -#define glMultiTexCoord4hNV (_jit_gl_get_proctable()->MultiTexCoord4hNV) -#define glMultiTexCoord4hvNV (_jit_gl_get_proctable()->MultiTexCoord4hvNV) -#define glFogCoordhNV (_jit_gl_get_proctable()->FogCoordhNV) -#define glFogCoordhvNV (_jit_gl_get_proctable()->FogCoordhvNV) -#define glSecondaryColor3hNV (_jit_gl_get_proctable()->SecondaryColor3hNV) -#define glSecondaryColor3hvNV (_jit_gl_get_proctable()->SecondaryColor3hvNV) -#define glVertexWeighthNV (_jit_gl_get_proctable()->VertexWeighthNV) -#define glVertexWeighthvNV (_jit_gl_get_proctable()->VertexWeighthvNV) -#define glVertexAttrib1hNV (_jit_gl_get_proctable()->VertexAttrib1hNV) -#define glVertexAttrib1hvNV (_jit_gl_get_proctable()->VertexAttrib1hvNV) -#define glVertexAttrib2hNV (_jit_gl_get_proctable()->VertexAttrib2hNV) -#define glVertexAttrib2hvNV (_jit_gl_get_proctable()->VertexAttrib2hvNV) -#define glVertexAttrib3hNV (_jit_gl_get_proctable()->VertexAttrib3hNV) -#define glVertexAttrib3hvNV (_jit_gl_get_proctable()->VertexAttrib3hvNV) -#define glVertexAttrib4hNV (_jit_gl_get_proctable()->VertexAttrib4hNV) -#define glVertexAttrib4hvNV (_jit_gl_get_proctable()->VertexAttrib4hvNV) -#define glVertexAttribs1hvNV (_jit_gl_get_proctable()->VertexAttribs1hvNV) -#define glVertexAttribs2hvNV (_jit_gl_get_proctable()->VertexAttribs2hvNV) -#define glVertexAttribs3hvNV (_jit_gl_get_proctable()->VertexAttribs3hvNV) -#define glVertexAttribs4hvNV (_jit_gl_get_proctable()->VertexAttribs4hvNV) -#define glPixelDataRangeNV (_jit_gl_get_proctable()->PixelDataRangeNV) -#define glFlushPixelDataRangeNV (_jit_gl_get_proctable()->FlushPixelDataRangeNV) -#define glPrimitiveRestartNV (_jit_gl_get_proctable()->PrimitiveRestartNV) -#define glPrimitiveRestartIndexNV (_jit_gl_get_proctable()->PrimitiveRestartIndexNV) -#define glMapObjectBufferATI (_jit_gl_get_proctable()->MapObjectBufferATI) -#define glUnmapObjectBufferATI (_jit_gl_get_proctable()->UnmapObjectBufferATI) -#define glStencilOpSeparateATI (_jit_gl_get_proctable()->StencilOpSeparateATI) -#define glStencilFuncSeparateATI (_jit_gl_get_proctable()->StencilFuncSeparateATI) -#define glVertexAttribArrayObjectATI (_jit_gl_get_proctable()->VertexAttribArrayObjectATI) -#define glGetVertexAttribArrayObjectfvATI (_jit_gl_get_proctable()->GetVertexAttribArrayObjectfvATI) -#define glGetVertexAttribArrayObjectivATI (_jit_gl_get_proctable()->GetVertexAttribArrayObjectivATI) -#define glDepthBoundsEXT (_jit_gl_get_proctable()->DepthBoundsEXT) -#define glBlendEquationSeparateEXT (_jit_gl_get_proctable()->BlendEquationSeparateEXT) -#define glAddSwapHintRectWIN (_jit_gl_get_proctable()->AddSwapHintRectWIN) -#define glBindFramebufferEXT (_jit_gl_get_proctable()->BindFramebufferEXT) -#define glBindRenderbufferEXT (_jit_gl_get_proctable()->BindRenderbufferEXT) -#define glCheckFramebufferStatusEXT (_jit_gl_get_proctable()->CheckFramebufferStatusEXT) -#define glDeleteFramebuffersEXT (_jit_gl_get_proctable()->DeleteFramebuffersEXT) -#define glDeleteRenderbuffersEXT (_jit_gl_get_proctable()->DeleteRenderbuffersEXT) -#define glFramebufferRenderbufferEXT (_jit_gl_get_proctable()->FramebufferRenderbufferEXT) -#define glFramebufferTexture1DEXT (_jit_gl_get_proctable()->FramebufferTexture1DEXT) -#define glFramebufferTexture2DEXT (_jit_gl_get_proctable()->FramebufferTexture2DEXT) -#define glFramebufferTexture3DEXT (_jit_gl_get_proctable()->FramebufferTexture3DEXT) -#define glGenFramebuffersEXT (_jit_gl_get_proctable()->GenFramebuffersEXT) -#define glGenRenderbuffersEXT (_jit_gl_get_proctable()->GenRenderbuffersEXT) -#define glGenerateMipmapEXT (_jit_gl_get_proctable()->GenerateMipmapEXT) -#define glGetFramebufferAttachmentParameterivEXT (_jit_gl_get_proctable()->GetFramebufferAttachmentParameterivEXT) -#define glGetRenderbufferParameterivEXT (_jit_gl_get_proctable()->GetRenderbufferParameterivEXT) -#define glIsFramebufferEXT (_jit_gl_get_proctable()->IsFramebufferEXT) -#define glIsRenderbufferEXT (_jit_gl_get_proctable()->IsRenderbufferEXT) -#define glRenderbufferStorageEXT (_jit_gl_get_proctable()->RenderbufferStorageEXT) - - -#define glProgramParameteriEXT (_jit_gl_get_proctable()->ProgramParameteriEXT) -#define glFramebufferTextureEXT (_jit_gl_get_proctable()->FramebufferTextureEXT) -#define glFramebufferTextureLayerEXT (_jit_gl_get_proctable()->FramebufferTextureLayerEXT) -#define glFramebufferTextureFaceEXT (_jit_gl_get_proctable()->FramebufferTextureFaceEXT) - -#define glDrawBuffersARB (_jit_gl_get_proctable()->DrawBuffersARB) - - - - - -#ifdef MAC_VERSION -#define glElementPointerAPPLE (_jit_gl_get_proctable()->ElementPointerAPPLE) -#define glDrawElementArrayAPPLE (_jit_gl_get_proctable()->DrawElementArrayAPPLE) -#define glDrawRangeElementArrayAPPLE (_jit_gl_get_proctable()->DrawRangeElementArrayAPPLE) -#define glMultiDrawElementArrayAPPLE (_jit_gl_get_proctable()->MultiDrawElementArrayAPPLE) -#define glMultiDrawRangeElementArrayAPPLE (_jit_gl_get_proctable()->MultiDrawRangeElementArrayAPPLE) -#define glGenFencesAPPLE (_jit_gl_get_proctable()->GenFencesAPPLE) -#define glDeleteFencesAPPLE (_jit_gl_get_proctable()->DeleteFencesAPPLE) -#define glSetFenceAPPLE (_jit_gl_get_proctable()->SetFenceAPPLE) -#define glIsFenceAPPLE (_jit_gl_get_proctable()->IsFenceAPPLE) -#define glTestFenceAPPLE (_jit_gl_get_proctable()->TestFenceAPPLE) -#define glFinishFenceAPPLE (_jit_gl_get_proctable()->FinishFenceAPPLE) -#define glTestObjectAPPLE (_jit_gl_get_proctable()->TestObjectAPPLE) -#define glFinishObjectAPPLE (_jit_gl_get_proctable()->FinishObjectAPPLE) -#define glBindVertexArrayAPPLE (_jit_gl_get_proctable()->BindVertexArrayAPPLE) -#define glDeleteVertexArraysAPPLE (_jit_gl_get_proctable()->DeleteVertexArraysAPPLE) -#define glGenVertexArraysAPPLE (_jit_gl_get_proctable()->GenVertexArraysAPPLE) -#define glIsVertexArrayAPPLE (_jit_gl_get_proctable()->IsVertexArrayAPPLE) -#define glVertexArrayRangeAPPLE (_jit_gl_get_proctable()->VertexArrayRangeAPPLE) -#define glFlushVertexArrayRangeAPPLE (_jit_gl_get_proctable()->FlushVertexArrayRangeAPPLE) -#define glVertexArrayParameteriAPPLE (_jit_gl_get_proctable()->VertexArrayParameteriAPPLE) -#define glTextureRangeAPPLE (_jit_gl_get_proctable()->TextureRangeAPPLE) -#define glGetTexParameterPointervAPPLE (_jit_gl_get_proctable()->GetTexParameterPointervAPPLE) -#endif -#ifdef _WIN32 -#define wglCreateBufferRegionARB (_jit_gl_get_proctable()->CreateBufferRegionARB) -#define wglDeleteBufferRegionARB (_jit_gl_get_proctable()->DeleteBufferRegionARB) -#define wglSaveBufferRegionARB (_jit_gl_get_proctable()->SaveBufferRegionARB) -#define wglRestoreBufferRegionARB (_jit_gl_get_proctable()->RestoreBufferRegionARB) -#define wglGetExtensionsStringARB (_jit_gl_get_proctable()->GetExtensionsStringARB) -#define wglGetPixelFormatAttribivARB (_jit_gl_get_proctable()->GetPixelFormatAttribivARB) -#define wglGetPixelFormatAttribfvARB (_jit_gl_get_proctable()->GetPixelFormatAttribfvARB) -#define wglChoosePixelFormatARB (_jit_gl_get_proctable()->ChoosePixelFormatARB) -#define wglMakeContextCurrentARB (_jit_gl_get_proctable()->MakeContextCurrentARB) -#define wglGetCurrentReadDCARB (_jit_gl_get_proctable()->GetCurrentReadDCARB) -#define wglCreatePbufferARB (_jit_gl_get_proctable()->CreatePbufferARB) -#define wglGetPbufferDCARB (_jit_gl_get_proctable()->GetPbufferDCARB) -#define wglReleasePbufferDCARB (_jit_gl_get_proctable()->ReleasePbufferDCARB) -#define wglDestroyPbufferARB (_jit_gl_get_proctable()->DestroyPbufferARB) -#define wglQueryPbufferARB (_jit_gl_get_proctable()->QueryPbufferARB) -#define wglBindTexImageARB (_jit_gl_get_proctable()->BindTexImageARB) -#define wglReleaseTexImageARB (_jit_gl_get_proctable()->ReleaseTexImageARB) -#define wglSetPbufferAttribARB (_jit_gl_get_proctable()->SetPbufferAttribARB) -#define wglCreateDisplayColorTableEXT (_jit_gl_get_proctable()->CreateDisplayColorTableEXT) -#define wglLoadDisplayColorTableEXT (_jit_gl_get_proctable()->LoadDisplayColorTableEXT) -#define wglBindDisplayColorTableEXT (_jit_gl_get_proctable()->BindDisplayColorTableEXT) -#define wglDestroyDisplayColorTableEXT (_jit_gl_get_proctable()->DestroyDisplayColorTableEXT) -#define wglGetExtensionsStringEXT (_jit_gl_get_proctable()->GetExtensionsStringEXT) -#define wglMakeContextCurrentEXT (_jit_gl_get_proctable()->MakeContextCurrentEXT) -#define wglGetCurrentReadDCEXT (_jit_gl_get_proctable()->GetCurrentReadDCEXT) -#define wglCreatePbufferEXT (_jit_gl_get_proctable()->CreatePbufferEXT) -#define wglGetPbufferDCEXT (_jit_gl_get_proctable()->GetPbufferDCEXT) -#define wglReleasePbufferDCEXT (_jit_gl_get_proctable()->ReleasePbufferDCEXT) -#define wglDestroyPbufferEXT (_jit_gl_get_proctable()->DestroyPbufferEXT) -#define wglQueryPbufferEXT (_jit_gl_get_proctable()->QueryPbufferEXT) -#define wglGetPixelFormatAttribivEXT (_jit_gl_get_proctable()->GetPixelFormatAttribivEXT) -#define wglGetPixelFormatAttribfvEXT (_jit_gl_get_proctable()->GetPixelFormatAttribfvEXT) -#define wglChoosePixelFormatEXT (_jit_gl_get_proctable()->ChoosePixelFormatEXT) -#define wglSwapIntervalEXT (_jit_gl_get_proctable()->SwapIntervalEXT) -#define wglGetSwapIntervalEXT (_jit_gl_get_proctable()->GetSwapIntervalEXT) -#define wglAllocateMemoryNV (_jit_gl_get_proctable()->AllocateMemoryNV) -#define wglFreeMemoryNV (_jit_gl_get_proctable()->FreeMemoryNV) -#define wglGetSyncValuesOML (_jit_gl_get_proctable()->GetSyncValuesOML) -#define wglGetMscRateOML (_jit_gl_get_proctable()->GetMscRateOML) -#define wglSwapBuffersMscOML (_jit_gl_get_proctable()->SwapBuffersMscOML) -#define wglSwapLayerBuffersMscOML (_jit_gl_get_proctable()->SwapLayerBuffersMscOML) -#define wglWaitForMscOML (_jit_gl_get_proctable()->WaitForMscOML) -#define wglWaitForSbcOML (_jit_gl_get_proctable()->WaitForSbcOML) -#define wglGetDigitalVideoParametersI3D (_jit_gl_get_proctable()->GetDigitalVideoParametersI3D) -#define wglSetDigitalVideoParametersI3D (_jit_gl_get_proctable()->SetDigitalVideoParametersI3D) -#define wglGetGammaTableParametersI3D (_jit_gl_get_proctable()->GetGammaTableParametersI3D) -#define wglSetGammaTableParametersI3D (_jit_gl_get_proctable()->SetGammaTableParametersI3D) -#define wglGetGammaTableI3D (_jit_gl_get_proctable()->GetGammaTableI3D) -#define wglSetGammaTableI3D (_jit_gl_get_proctable()->SetGammaTableI3D) -#define wglEnableGenlockI3D (_jit_gl_get_proctable()->EnableGenlockI3D) -#define wglDisableGenlockI3D (_jit_gl_get_proctable()->DisableGenlockI3D) -#define wglIsEnabledGenlockI3D (_jit_gl_get_proctable()->IsEnabledGenlockI3D) -#define wglGenlockSourceI3D (_jit_gl_get_proctable()->GenlockSourceI3D) -#define wglGetGenlockSourceI3D (_jit_gl_get_proctable()->GetGenlockSourceI3D) -#define wglGenlockSourceEdgeI3D (_jit_gl_get_proctable()->GenlockSourceEdgeI3D) -#define wglGetGenlockSourceEdgeI3D (_jit_gl_get_proctable()->GetGenlockSourceEdgeI3D) -#define wglGenlockSampleRateI3D (_jit_gl_get_proctable()->GenlockSampleRateI3D) -#define wglGetGenlockSampleRateI3D (_jit_gl_get_proctable()->GetGenlockSampleRateI3D) -#define wglGenlockSourceDelayI3D (_jit_gl_get_proctable()->GenlockSourceDelayI3D) -#define wglGetGenlockSourceDelayI3D (_jit_gl_get_proctable()->GetGenlockSourceDelayI3D) -#define wglQueryGenlockMaxSourceDelayI3D (_jit_gl_get_proctable()->QueryGenlockMaxSourceDelayI3D) -#define wglCreateImageBufferI3D (_jit_gl_get_proctable()->CreateImageBufferI3D) -#define wglDestroyImageBufferI3D (_jit_gl_get_proctable()->DestroyImageBufferI3D) -#define wglAssociateImageBufferEventsI3D (_jit_gl_get_proctable()->AssociateImageBufferEventsI3D) -#define wglReleaseImageBufferEventsI3D (_jit_gl_get_proctable()->ReleaseImageBufferEventsI3D) -#define wglEnableFrameLockI3D (_jit_gl_get_proctable()->EnableFrameLockI3D) -#define wglDisableFrameLockI3D (_jit_gl_get_proctable()->DisableFrameLockI3D) -#define wglIsEnabledFrameLockI3D (_jit_gl_get_proctable()->IsEnabledFrameLockI3D) -#define wglQueryFrameLockMasterI3D (_jit_gl_get_proctable()->QueryFrameLockMasterI3D) -#define wglGetFrameUsageI3D (_jit_gl_get_proctable()->GetFrameUsageI3D) -#define wglBeginFrameTrackingI3D (_jit_gl_get_proctable()->BeginFrameTrackingI3D) -#define wglEndFrameTrackingI3D (_jit_gl_get_proctable()->EndFrameTrackingI3D) -#define wglQueryFrameTrackingI3D (_jit_gl_get_proctable()->QueryFrameTrackingI3D) -#endif /* _WIN32 */ - -/* - * Retrieval function for getting the current proc table from - * the global context. - * - * TODO: thread local proc/context dependent proc table? - */ -t_jit_gl_extprocs *_jit_gl_get_proctable(void); -//static _inline t_jit_gl_extprocs *_jit_gl_get_proctable(void); - -/* - * Initialization function for the proc table in case the application - * needs to use multiple proc tables (one per opengl context and/or thread). - */ -static _inline void jit_gl_init_extension_procs(t_jit_gl_extprocs *procs) -{ - extern t_jit_gl_extprocs _jit_gl_extension_procs; - *procs = _jit_gl_extension_procs; -} - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif /* _GLPROCS_H_ */ diff --git a/source/c74support/jit-includes/jit.gl.support.h b/source/c74support/jit-includes/jit.gl.support.h deleted file mode 100644 index 07c32412..00000000 --- a/source/c74support/jit-includes/jit.gl.support.h +++ /dev/null @@ -1,426 +0,0 @@ -#ifndef JIT_GL_SUPPORT_H -#define JIT_GL_SUPPORT_H - -/* - * Copyright 2001-2005 - Cycling '74 - * Derek Gerstmann - derek@cycling74.com - * - * Struct and associated methods for checking feature support - * for various OpenGL extensions. - * - */ - -/****************************************************************************/ - -#include "jit.common.h" - -/****************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/****************************************************************************/ - -typedef struct _jit_gl_support { - long initialized; // flag for support initialization - long color_buffer_float; // flag if float pixels are supported for creating a color buffer pixelformat - long color_float_pixels; // flag if float pixels are enabled in current context - long color_red_bits; // number of color red bit planes in current context - long color_green_bits; // number of color green bit planes in current context - long color_blue_bits; // number of color blue bit planes in current context - long color_alpha_bits; // number of color alpha bit planes in current context - long color_index_bits; // number of color index bit planes in current context - long accum_red_bits; // number of accum red bit planes in current context - long accum_green_bits; // number of accum green bit planes in current context - long accum_blue_bits; // number of accum blue bit planes in current context - long accum_alpha_bits; // number of accum alpha bit planes in current context - long stencil_bits; // number of stencil bit planes in current context - long depth_bits; // number of depth bit planes in current context - long aux_buffers; // number of auxiliary buffers in current context - long multitexture; // flag for multi-texturing support - long multisample; // flag for multi-sample support - long multisample_buffers; // number of available multisample buffers - long multisample_samples; // number of samples available in multisampling mode - long light_count; // number of lights available - long texture_units; // number of texture units available - long texture_image_units; // number of texture image units available - long texture_max_size; // maximum texture width or height - long texture_3d; // flag for 3d texture support - long texture_cubemap; // flag for cubemap support - long texture_depth; // flag for depth texture support - long texture_shadow; // flag for shadow texture support - long texture_float; // flag for floating point texture support - long texture_env; // flag for env support - long texture_env_add; // flag for env add support - long texture_env_combine; // flag for env combine support - long texture_env_crossbar; // flag for env crossbar support - long texture_env_dot3; // flag for env dot3 support - long texture_env_target; // target for all env features - long texture_border_clamp; // flag for clamp to border support - long texture_mirrored_repeat; // flag for mirrored repeat support - long texture_anisotropic; // flag for anisotropic support - long texture_max_anisotropy; // max anisotropic filter size - long texture_rect; // flag for rectangular textures support - long texture_rect_target; // backend for rect support (ARB, EXT) - long texture_rect_uniform; // flag for uniform texture coords - long texture_compression; // flag for texture compression support - long texture_compression_s3tc; // flag for s3tc compression - long texture_compression_vtc; // flag for vtc compression - long texture_range; // flag for texture range support (APPLE only) - long client_storage; // flag for client storage support (APPLE only) - long pixel_float16; // flag for 16bit float pixel support - long pixel_float32; // flag for 32bit float pixel support - long pixel_float_target; // backend for float support (APPLE, ATI, NV) - long pbo; // flag for pixel buffer objects support - long fbo; // flag for frame buffer object support - long vbo; // flag for vertex buffer object support - long pbuffer; // flag for hardware assisted pbuffer support - long pbuffer_float; // flag for float pbuffer support - long pbuffer_float_target; // backend for float support (APPLE, ATI, NV) - long pbuffer_rtt; // flag for render to texture support - long pbuffer_rtt_rect; // flag for rectangular render to texture support - long pbuffer_rtt_rect_target; // target for rectangular render to texture support - long pbuffer_rtt_depth; // flag for render to depth texture support - long shader_objects_glsl_arb; // flag for glsl shader objects - long vertex_shader_glsl_arb; // flag for glsl vertex shader programs - long fragment_shader_glsl_arb; // flag for glsl fragment shader programs - long shading_language_support_glsl_arb; // flag for native glsl compiler support - long vertex_program_arb; // flag for arb vertex program support - long fragment_program_arb; // flag for arb fragment program support - long vertex_program_nv; // flag for nv vertex program support - long vertex_program_nv_version; // version for nv vertex program support - long fragment_program_nv; // flag for nv fragment program support - long fragment_program_nv_version;// version for nv fragment program support - long fragment_program_shadow; // flag for frament shader depth comparison capability - long geometry_shader; // flag for geometry shader support - long gpu_program4_nv; // flag for nvidia geometry shader support (for Cg) - long transform_feedback; // flag for transform feedback support - long gpu_program_parameters; // flag for shader parameter environment support - long gpu_shader4; // flag for shader model 4 support - long version_major; // major version number - long version_minor; // minor version number - long version_release; // release version number - long glsl_version_major; // glsl major version - long glsl_version_minor; // glsl minor version - -} t_jit_gl_support; - -/****************************************************************************/ - -t_jit_gl_support *jit_gl_support_new(void); -t_jit_err jit_gl_support_init(t_jit_gl_support *x, const char *extensions); -long jit_gl_support_field_value(t_jit_gl_support *x, t_symbol *name); -void jit_gl_support_free(t_jit_gl_support *x); - -/****************************************************************************/ - -// backend targets -#define JIT_GL_ARB (5) -#define JIT_GL_NV (6) -#define JIT_GL_APPLE (7) -#define JIT_GL_EXT (8) -#define JIT_GL_FBO (9) -#define JIT_GL_PBUFFER (10) -#define JIT_GL_NONE (-1) - -// float targets -#define JIT_GL_FLOAT_NONE (0) -#define JIT_GL_FLOAT_ARB (1) -#define JIT_GL_FLOAT_ATI (2) -#define JIT_GL_FLOAT_NV (3) -#define JIT_GL_FLOAT_APPLE (4) - -// format flags -#define JIT_GL_LUMINANCE (1 << 0) -#define JIT_GL_INTENSITY (1 << 1) -#define JIT_GL_ALPHA (1 << 2) -#define JIT_GL_LUMINANCE_ALPHA (1 << 3) -#define JIT_GL_RGB (1 << 4) -#define JIT_GL_RGBA (1 << 5) -#define JIT_GL_DEPTH (1 << 6) -#define JIT_GL_UYVY (1 << 7) - -// float flags -#define JIT_GL_FLOAT16 (1 << 8) -#define JIT_GL_FLOAT32 (1 << 9) - -// compression flags -#define JIT_GL_DXT1 (1 << 10) -#define JIT_GL_DXT3 (1 << 11) -#define JIT_GL_DXT5 (1 << 12) - -// clamp flags -#define JIT_GL_CLAMP (1 << 13) -#define JIT_GL_CLAMP_TO_EDGE (1 << 14) - -// filter flags -#define JIT_GL_NEAREST (1 << 15) -#define JIT_GL_LINEAR (1 << 16) -#define JIT_GL_NEAREST_MIPMAP_NEAREST (1 << 17) -#define JIT_GL_LINEAR_MIPMAP_NEAREST (1 << 18) -#define JIT_GL_LINEAR_MIPMAP_LINEAR (1 << 19) - -// anisotropy flags -#define JIT_GL_ANISOTROPY1 (1 << 20) -#define JIT_GL_ANISOTROPY2 (1 << 21) -#define JIT_GL_ANISOTROPY4 (1 << 22) -#define JIT_GL_ANISOTROPY8 (1 << 23) -#define JIT_GL_ANISOTROPY16 (1 << 24) - - -/****************************************************************************/ - -// ARB texture rectangle -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle (1) -#define GL_TEXTURE_RECTANGLE_ARB (0x84F5) -#define GL_TEXTURE_BINDING_RECTANGLE_ARB (0x84F6) -#define GL_PROXY_TEXTURE_RECTANGLE_ARB (0x84F7) -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB (0x84F8) -#endif - -// ARB float16 -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel (1) -#define GL_HALF_FLOAT_ARB (0x140B) -#endif - -// ARB float32 -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float (1) -#define GL_TEXTURE_RED_TYPE_ARB (0x8C10) -#define GL_TEXTURE_GREEN_TYPE_ARB (0x8C11) -#define GL_TEXTURE_BLUE_TYPE_ARB (0x8C12) -#define GL_TEXTURE_ALPHA_TYPE_ARB (0x8C13) -#define GL_TEXTURE_LUMINANCE_TYPE_ARB (0x8C14) -#define GL_TEXTURE_INTENSITY_TYPE_ARB (0x8C15) -#define GL_TEXTURE_DEPTH_TYPE_ARB (0x8C16) -#define GL_UNSIGNED_NORMALIZED_ARB (0x8C17) -#define GL_RGBA32F_ARB (0x8814) -#define GL_RGB32F_ARB (0x8815) -#define GL_ALPHA32F_ARB (0x8816) -#define GL_INTENSITY32F_ARB (0x8817) -#define GL_LUMINANCE32F_ARB (0x8818) -#define GL_LUMINANCE_ALPHA32F_ARB (0x8819) -#define GL_RGBA16F_ARB (0x881A) -#define GL_RGB16F_ARB (0x881B) -#define GL_ALPHA16F_ARB (0x881C) -#define GL_INTENSITY16F_ARB (0x881D) -#define GL_LUMINANCE16F_ARB (0x881E) -#define GL_LUMINANCE_ALPHA16F_ARB (0x881F) -#endif - -// ARB color buffer float -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float (1) -#define GL_RGBA_FLOAT_MODE_ARB (0x8820) -#define GL_CLAMP_VERTEX_COLOR_ARB (0x891A) -#define GL_CLAMP_FRAGMENT_COLOR_ARB (0x891B) -#define GL_CLAMP_READ_COLOR_ARB (0x891C) -#define GL_FIXED_ONLY_ARB (0x891D) -#define WGL_TYPE_RGBA_FLOAT_ARB (0x21A0) -#endif - -// ATI pixel format float -#ifndef WGL_ATI_pixel_format_float -#define WGL_ATI_pixel_format_float (1) -#define WGL_TYPE_RGBA_FLOAT_ATI (0x21A0) -#ifndef GL_RGBA_FLOAT_MODE_ATI -#define GL_RGBA_FLOAT_MODE_ATI (0x8820) -#endif -#ifndef GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI (0x8835) -#endif -#endif - -// APPLE float32 & float16 -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels (1) -#define GL_HALF_APPLE (0x140B) -#define GL_RGBA_FLOAT32_APPLE (0x8814) -#define GL_RGB_FLOAT32_APPLE (0x8815) -#define GL_ALPHA_FLOAT32_APPLE (0x8816) -#define GL_INTENSITY_FLOAT32_APPLE (0x8817) -#define GL_LUMINANCE_FLOAT32_APPLE (0x8818) -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE (0x8819) -#define GL_RGBA_FLOAT16_APPLE (0x881A) -#define GL_RGB_FLOAT16_APPLE (0x881B) -#define GL_ALPHA_FLOAT16_APPLE (0x881C) -#define GL_INTENSITY_FLOAT16_APPLE (0x881D) -#define GL_LUMINANCE_FLOAT16_APPLE (0x881E) -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE (0x881F) -#define GL_COLOR_FLOAT_APPLE (0x8A0F) -#endif - -// APPLE texture range -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range (1) -#define GL_TEXTURE_STORAGE_HINT_APPLE (0x85BC) -#define GL_STORAGE_PRIVATE_APPLE (0x85BD) -#define GL_STORAGE_CACHED_APPLE (0x85BE) -#define GL_STORAGE_SHARED_APPLE (0x85BF) -#define GL_TEXTURE_RANGE_LENGTH_APPLE (0x85B7) -#define GL_TEXTURE_RANGE_POINTER_APPLE (0x85B8) -#endif - -// EXT texture rectangle -#ifndef GL_EXT_texture_rectangle -#define GL_EXT_texture_rectangle (1) -#define GL_TEXTURE_RECTANGLE_EXT (0x84F5) -#define GL_TEXTURE_BINDING_RECTANGLE_EXT (0x84F6) -#define GL_PROXY_TEXTURE_RECTANGLE_EXT (0x84F7) -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT (0x84F8) -#endif - -// ATI render texture rectangle -#ifndef WGL_TEXTURE_RECTANGLE_ATI -#define WGL_TEXTURE_RECTANGLE_ATI (0x21A5) -#endif - -// FBO framebuffer object -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object (1) -#define GL_FRAMEBUFFER_EXT (0x8D40) -#define GL_RENDERBUFFER_EXT (0x8D41) -#define GL_STENCIL_INDEX1_EXT (0x8D46) -#define GL_STENCIL_INDEX4_EXT (0x8D47) -#define GL_STENCIL_INDEX8_EXT (0x8D48) -#define GL_STENCIL_INDEX16_EXT (0x8D49) -#define GL_RENDERBUFFER_WIDTH_EXT (0x8D42) -#define GL_RENDERBUFFER_HEIGHT_EXT (0x8D43) -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT (0x8D44) -#define GL_RENDERBUFFER_RED_SIZE_EXT (0x8D50) -#define GL_RENDERBUFFER_GREEN_SIZE_EXT (0x8D51) -#define GL_RENDERBUFFER_BLUE_SIZE_EXT (0x8D52) -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT (0x8D53) -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT (0x8D54) -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT (0x8D55) -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT (0x8CD0) -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT (0x8CD1) -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT (0x8CD2) -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT (0x8CD3) -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT (0x8CD4) -#define GL_COLOR_ATTACHMENT0_EXT (0x8CE0) -#define GL_COLOR_ATTACHMENT1_EXT (0x8CE1) -#define GL_COLOR_ATTACHMENT2_EXT (0x8CE2) -#define GL_COLOR_ATTACHMENT3_EXT (0x8CE3) -#define GL_COLOR_ATTACHMENT4_EXT (0x8CE4) -#define GL_COLOR_ATTACHMENT5_EXT (0x8CE5) -#define GL_COLOR_ATTACHMENT6_EXT (0x8CE6) -#define GL_COLOR_ATTACHMENT7_EXT (0x8CE7) -#define GL_COLOR_ATTACHMENT8_EXT (0x8CE8) -#define GL_COLOR_ATTACHMENT9_EXT (0x8CE9) -#define GL_COLOR_ATTACHMENT10_EXT (0x8CEA) -#define GL_COLOR_ATTACHMENT11_EXT (0x8CEB) -#define GL_COLOR_ATTACHMENT12_EXT (0x8CEC) -#define GL_COLOR_ATTACHMENT13_EXT (0x8CED) -#define GL_COLOR_ATTACHMENT14_EXT (0x8CEE) -#define GL_COLOR_ATTACHMENT15_EXT (0x8CEF) -#define GL_DEPTH_ATTACHMENT_EXT (0x8D00) -#define GL_STENCIL_ATTACHMENT_EXT (0x8D20) -#define GL_FRAMEBUFFER_COMPLETE_EXT (0x8CD5) -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT (0x8CD6) -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT (0x8CD7) -#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT (0x8CD8) -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT (0x8CD9) -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT (0x8CDA) -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT (0x8CDB) -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT (0x8CDC) -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT (0x8CDD) -#define GL_FRAMEBUFFER_BINDING_EXT (0x8CA6) -#define GL_RENDERBUFFER_BINDING_EXT (0x8CA7) -#define GL_MAX_COLOR_ATTACHMENTS_EXT (0x8CDF) -#define GL_MAX_RENDERBUFFER_SIZE_EXT (0x84E8) -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT (0x0506) -//#define GL_MAX_DRAW_BUFFERS_ARB (0x8824) -#endif - -//geometry shaders -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -#define GL_LINES_ADJACENCY_EXT 0xA -#define GL_LINE_STRIP_ADJACENCY_EXT 0xB -#define GL_TRIANGLES_ADJACENCY_EXT 0xC -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -//transform feedback -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - -// draw buffer for MRT FBO -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - - -/****************************************************************************/ - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -/****************************************************************************/ - -#endif // JIT_GL_SUPPORT_H diff --git a/source/c74support/jit-includes/jit.glext.h b/source/c74support/jit-includes/jit.glext.h deleted file mode 100644 index 00a18ae8..00000000 --- a/source/c74support/jit-includes/jit.glext.h +++ /dev/null @@ -1,5987 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ - - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#include "jit.gl.h" - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated 2004/6/22 */ -/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */ -#ifndef GL_GLEXT_VERSION - #define GL_GLEXT_VERSION 23 -#endif - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_RESCALE_NORMAL 0x803A -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_FOG_COORD_SOURCE GL_FOG_COORDINATE_SOURCE -#define GL_FOG_COORD GL_FOG_COORDINATE -#define GL_CURRENT_FOG_COORD GL_CURRENT_FOG_COORDINATE -#define GL_FOG_COORD_ARRAY_TYPE GL_FOG_COORDINATE_ARRAY_TYPE -#define GL_FOG_COORD_ARRAY_STRIDE GL_FOG_COORDINATE_ARRAY_STRIDE -#define GL_FOG_COORD_ARRAY_POINTER GL_FOG_COORDINATE_ARRAY_POINTER -#define GL_FOG_COORD_ARRAY GL_FOG_COORDINATE_ARRAY -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING -#define GL_SRC0_RGB GL_SOURCE0_RGB -#define GL_SRC1_RGB GL_SOURCE1_RGB -#define GL_SRC2_RGB GL_SOURCE2_RGB -#define GL_SRC0_ALPHA GL_SOURCE0_ALPHA -#define GL_SRC1_ALPHA GL_SOURCE1_ALPHA -#define GL_SRC2_ALPHA GL_SOURCE2_ALPHA -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT GL_BLEND_EQUATION -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - - -/*************************************************************/ - -#include -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL3_VERSION - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for handling shader object handles and characters */ -typedef char GLcharARB; /* native character */ -typedef void* GLhandleARB; /* shader object handle */ -#endif - -#endif - -#ifndef GL_NV_half_float -/* GL type for representing NVIDIA "half" floating point type in host memory */ -typedef unsigned short GLhalfNV; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor (GLclampf, GLclampf, GLclampf, GLclampf); -GLAPI void APIENTRY glBlendEquation (GLenum); -GLAPI void APIENTRY glDrawRangeElements (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTable (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTable (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTable (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glColorSubTable (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTable (GLenum, GLsizei, GLint, GLint, GLsizei); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterf (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteri (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilter (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2D (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -GLAPI void APIENTRY glGetHistogram (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmax (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogram (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmax (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogram (GLenum); -GLAPI void APIENTRY glResetMinmax (GLenum); -GLAPI void APIENTRY glTexImage3D (GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum); -GLAPI void APIENTRY glClientActiveTexture (GLenum); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum, const GLshort *); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *); -GLAPI void APIENTRY glSampleCoverage (GLclampf, GLboolean); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glFogCoordf (GLfloat); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *); -GLAPI void APIENTRY glFogCoordd (GLdouble); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointer (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glMultiDrawArrays (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElements (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -GLAPI void APIENTRY glPointParameterf (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfv (GLenum, const GLfloat *); -GLAPI void APIENTRY glPointParameteri (GLenum, GLint); -GLAPI void APIENTRY glPointParameteriv (GLenum, const GLint *); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3i (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *); -GLAPI void APIENTRY glSecondaryColor3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3us (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointer (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glWindowPos2d (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos2f (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos2i (GLint, GLint); -GLAPI void APIENTRY glWindowPos2iv (const GLint *); -GLAPI void APIENTRY glWindowPos2s (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *); -GLAPI void APIENTRY glWindowPos3d (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *); -GLAPI void APIENTRY glWindowPos3f (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *); -GLAPI void APIENTRY glWindowPos3i (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3iv (const GLint *); -GLAPI void APIENTRY glWindowPos3s (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueries (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQuery (GLuint); -GLAPI void APIENTRY glBeginQuery (GLenum, GLuint); -GLAPI void APIENTRY glEndQuery (GLenum); -GLAPI void APIENTRY glGetQueryiv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint, GLenum, GLuint *); -GLAPI void APIENTRY glBindBuffer (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffers (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffers (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint); -GLAPI void APIENTRY glBufferData (GLenum, GLsizeiptr, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubData (GLenum, GLintptr, GLsizeiptr, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubData (GLenum, GLintptr, GLsizeiptr, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBuffer (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointerv (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum, GLint); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLclampf, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum, GLint, GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvARB (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint, const GLbyte *); -GLAPI void APIENTRY glWeightsvARB (GLint, const GLshort *); -GLAPI void APIENTRY glWeightivARB (GLint, const GLint *); -GLAPI void APIENTRY glWeightfvARB (GLint, const GLfloat *); -GLAPI void APIENTRY glWeightdvARB (GLint, const GLdouble *); -GLAPI void APIENTRY glWeightubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glWeightusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glWeightuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glWeightPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexBlendARB (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint, const GLubyte *); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint, const GLushort *); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint, const GLuint *); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iARB (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos2sARB (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *); -GLAPI void APIENTRY glWindowPos3sARB (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint, const GLushort *); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid *); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint); -GLAPI void APIENTRY glProgramStringARB (GLenum, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBindProgramARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenProgramsARB (GLsizei, GLuint *); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum, GLuint, GLdouble *); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum, GLuint, GLfloat *); -GLAPI void APIENTRY glGetProgramivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringARB (GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum, GLuint); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenBuffersARB (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint); -GLAPI void APIENTRY glBufferDataARB (GLenum, GLsizeiptrARB, const GLvoid *, GLenum); -GLAPI void APIENTRY glBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, const GLvoid *); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum, GLintptrARB, GLsizeiptrARB, GLvoid *); -GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum, GLenum); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum, GLenum, GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint); -GLAPI void APIENTRY glBeginQueryARB (GLenum, GLuint); -GLAPI void APIENTRY glEndQueryARB (GLenum); -GLAPI void APIENTRY glGetQueryivARB (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB, GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB, GLhandleARB); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB); -GLAPI void APIENTRY glUniform1fARB (GLint, GLfloat); -GLAPI void APIENTRY glUniform2fARB (GLint, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform3fARB (GLint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform4fARB (GLint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glUniform1iARB (GLint, GLint); -GLAPI void APIENTRY glUniform2iARB (GLint, GLint, GLint); -GLAPI void APIENTRY glUniform3iARB (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform4iARB (GLint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glUniform1fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform2fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform3fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform4fvARB (GLint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glUniform1ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform2ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform3ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniform4ivARB (GLint, GLsizei, const GLint *); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint, GLsizei, GLboolean, const GLfloat *); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB, GLenum, GLint *); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB, GLsizei, GLsizei *, GLhandleARB *); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB, const GLcharARB *); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB, GLint, GLfloat *); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB, GLint, GLint *); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB, GLsizei, GLsizei *, GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB, GLuint, const GLcharARB *); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB, GLuint, GLsizei, GLsizei *, GLint *, GLenum *, GLcharARB *); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB, const GLcharARB *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLclampf, GLclampf, GLclampf, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum, GLenum, GLsizei, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum, GLint, GLint, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum, GLboolean, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glHistogramEXT (GLenum, GLsizei, GLenum, GLboolean); -GLAPI void APIENTRY glMinmaxEXT (GLenum, GLenum, GLboolean); -GLAPI void APIENTRY glResetHistogramEXT (GLenum); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_EXT_color_matrix -#define GL_EXT_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); -GLAPI void APIENTRY glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum, GLint); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum, const GLint *); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum, GLint *); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindTextureEXT (GLenum, GLuint); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei, const GLuint *, const GLclampf *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum, GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint); -GLAPI void APIENTRY glColorPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glDrawArraysEXT (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei, GLsizei, const GLboolean *); -GLAPI void APIENTRY glGetPointervEXT (GLenum, GLvoid* *); -GLAPI void APIENTRY glIndexPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glNormalPointerEXT (GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexPointerEXT (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum, GLint); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum, GLfloat); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei, GLint *); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); -GLAPI void APIENTRY glDeformSGIX (GLbitfield); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei, const GLfloat *); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum, GLenum, GLint); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum, GLsizei, GLint, GLint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); -GLAPI void APIENTRY glGetColorTableEXT (GLenum, GLenum, GLenum, GLvoid *); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glListParameterfSGIX (GLuint, GLenum, GLfloat); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint, GLenum, const GLfloat *); -GLAPI void APIENTRY glListParameteriSGIX (GLuint, GLenum, GLint); -GLAPI void APIENTRY glListParameterivSGIX (GLuint, GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum, GLclampf); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint, GLsizei); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum, GLdouble *); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum, GLenum); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum, GLfloat); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum, GLint); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum, const GLint *); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum, GLenum, GLint); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glLightEnviSGIX (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum); -GLAPI void APIENTRY glTextureLightEXT (GLenum); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint, GLsizei); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum, const GLvoid* *); -GLAPI void APIENTRY glColorPointervINTEL (GLint, GLenum, const GLvoid* *); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint, GLenum, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum, GLenum, GLint); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum, GLenum, GLfloat); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum, GLenum, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort, GLushort, GLushort); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *); -GLAPI void APIENTRY glTangent3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *); -GLAPI void APIENTRY glTangent3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *); -GLAPI void APIENTRY glTangent3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *); -GLAPI void APIENTRY glTangent3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *); -GLAPI void APIENTRY glBinormal3iEXT (GLint, GLint, GLint); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *); -GLAPI void APIENTRY glBinormal3sEXT (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *); -GLAPI void APIENTRY glTangentPointerEXT (GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum, GLsizei, const GLvoid* *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat, GLfloat, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint, GLubyte, GLubyte, GLubyte, GLubyte, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *, const GLfloat *, const GLfloat *, const GLfloat *, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum, GLenum, GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei, GLenum, GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum, const GLfloat *); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum, GLfloat); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum, const GLint *); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos2iMESA (GLint, GLint); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort, GLshort); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos3iMESA (GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *); -GLAPI void APIENTRY glWindowPos4iMESA (GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *, const GLint *, const GLsizei *, GLsizei, GLint); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *, const GLsizei *, GLenum, const GLvoid* const *, GLsizei, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint, const GLboolean* *, GLint); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -GLAPI void APIENTRY glVertexPointerListIBM (GLint, GLenum, GLint, const GLvoid* *, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf, GLboolean); -GLAPI void APIENTRY glSamplePatternEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean, GLboolean, GLboolean, GLboolean); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum, const GLvoid *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenFencesNV (GLsizei, GLuint *); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint); -GLAPI void APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFinishFenceNV (GLuint); -GLAPI void APIENTRY glSetFenceNV (GLuint, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLint, GLint, GLboolean, const GLvoid *); -GLAPI void APIENTRY glMapParameterivNV (GLenum, GLenum, const GLint *); -GLAPI void APIENTRY glMapParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum, GLuint, GLenum, GLsizei, GLsizei, GLboolean, GLvoid *); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glEvalMapsNV (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei, const GLuint *, GLboolean *); -GLAPI void APIENTRY glBindProgramNV (GLenum, GLuint); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glExecuteProgramNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glGenProgramsNV (GLsizei, GLuint *); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum, GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum, GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetProgramivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetProgramStringNV (GLuint, GLenum, GLubyte *); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum, GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint, GLenum, GLdouble *); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint, GLenum, GLvoid* *); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint); -GLAPI void APIENTRY glLoadProgramNV (GLenum, GLuint, GLsizei, const GLubyte *); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum, GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum, GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum, GLuint, const GLfloat *); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum, GLuint, GLuint, const GLdouble *); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum, GLuint, GLuint, const GLfloat *); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei, const GLuint *); -GLAPI void APIENTRY glTrackMatrixNV (GLenum, GLuint, GLenum, GLenum); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint, GLint, GLenum, GLsizei, const GLvoid *); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint, GLdouble); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint, GLfloat); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint, GLshort); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint, const GLdouble *); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint, const GLfloat *); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint, GLubyte, GLubyte, GLubyte, GLubyte); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint, GLsizei, const GLdouble *); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint, GLsizei, const GLfloat *); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint, GLsizei, const GLshort *); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint, GLsizei, const GLubyte *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum, const GLint *); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum, GLint *); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glSampleMapATI (GLuint, GLuint, GLenum); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint, const GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum, GLint); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei, const GLvoid *, GLenum); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint, GLuint, GLsizei, const GLvoid *, GLenum); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint); -GLAPI void APIENTRY glArrayObjectATI (GLenum, GLint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum, GLenum, GLfloat *); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum, GLenum, GLint *); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint, GLenum, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint); -GLAPI void APIENTRY glShaderOp1EXT (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp2EXT (GLenum, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glShaderOp3EXT (GLenum, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glSwizzleEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glWriteMaskEXT (GLuint, GLuint, GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glInsertComponentEXT (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glExtractComponentEXT (GLuint, GLuint, GLuint); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum, GLenum, GLenum, GLuint); -GLAPI void APIENTRY glSetInvariantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint, GLenum, const GLvoid *); -GLAPI void APIENTRY glVariantbvEXT (GLuint, const GLbyte *); -GLAPI void APIENTRY glVariantsvEXT (GLuint, const GLshort *); -GLAPI void APIENTRY glVariantivEXT (GLuint, const GLint *); -GLAPI void APIENTRY glVariantfvEXT (GLuint, const GLfloat *); -GLAPI void APIENTRY glVariantdvEXT (GLuint, const GLdouble *); -GLAPI void APIENTRY glVariantubvEXT (GLuint, const GLubyte *); -GLAPI void APIENTRY glVariantusvEXT (GLuint, const GLushort *); -GLAPI void APIENTRY glVariantuivEXT (GLuint, const GLuint *); -GLAPI void APIENTRY glVariantPointerEXT (GLuint, GLenum, GLuint, const GLvoid *); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum, GLenum, GLenum); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum, GLenum); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint, GLenum); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint, GLenum, GLvoid* *); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint, GLenum, GLboolean *); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint, GLenum, GLfloat *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum, GLshort); -GLAPI void APIENTRY glVertexStream1svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream1iATI (GLenum, GLint); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream1fATI (GLenum, GLfloat); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream1dATI (GLenum, GLdouble); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream2sATI (GLenum, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream2svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream2iATI (GLenum, GLint, GLint); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream2fATI (GLenum, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream2dATI (GLenum, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glVertexStream4sATI (GLenum, GLshort, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glVertexStream4svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glVertexStream4iATI (GLenum, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glVertexStream4fATI (GLenum, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glVertexStream4dATI (GLenum, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glNormalStream3bATI (GLenum, GLbyte, GLbyte, GLbyte); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum, const GLbyte *); -GLAPI void APIENTRY glNormalStream3sATI (GLenum, GLshort, GLshort, GLshort); -GLAPI void APIENTRY glNormalStream3svATI (GLenum, const GLshort *); -GLAPI void APIENTRY glNormalStream3iATI (GLenum, GLint, GLint, GLint); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum, const GLint *); -GLAPI void APIENTRY glNormalStream3fATI (GLenum, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum, const GLfloat *); -GLAPI void APIENTRY glNormalStream3dATI (GLenum, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum, const GLdouble *); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum, GLint); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum, GLfloat); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum, GLuint, GLuint, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum, GLint, GLsizei, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint, GLenum, GLint *); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint, GLenum, GLuint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum, GLint); -GLAPI void APIENTRY glPointParameterivNV (GLenum, const GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum, const GLvoid *); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum, GLint, GLsizei); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, GLint, GLsizei); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum, const GLint *, const GLsizei *, GLsizei); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum, GLuint, GLuint, const GLint *, const GLsizei *, GLsizei); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei, GLuint *); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum, GLuint); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei, const GLuint *); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei, const GLuint *); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei, GLvoid *); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum, GLint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei, const GLenum *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint, GLsizei, const GLubyte *, GLfloat, GLfloat, GLfloat, GLfloat); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint, GLsizei, const GLubyte *, GLdouble, GLdouble, GLdouble, GLdouble); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint, GLsizei, const GLubyte *, const GLfloat *); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint, GLsizei, const GLubyte *, const GLdouble *); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint, GLsizei, const GLubyte *, GLfloat *); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint, GLsizei, const GLubyte *, GLdouble *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glColor4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum, const GLhalfNV *); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint, GLhalfNV, GLhalfNV, GLhalfNV, GLhalfNV); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint, GLsizei, const GLhalfNV *); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint, GLsizei, const GLhalfNV *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum, GLsizei, GLvoid *); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum, GLenum, GLenum, GLenum); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum, GLenum, GLint, GLuint); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint, GLuint); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint, GLenum, GLfloat *); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint, GLenum, GLint *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd, GLclampd); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum, GLenum); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.glext_nv.h b/source/c74support/jit-includes/jit.glext_nv.h deleted file mode 100644 index 9874305c..00000000 --- a/source/c74support/jit-includes/jit.glext_nv.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef __glext_nv_h_ -#define __glext_nv_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float -#endif -typedef unsigned short GLhalfNV; - -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC - -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 - -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B - -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 - -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 - -#define GL_HALF_FLOAT_NV 0x140B - -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.gworld.h b/source/c74support/jit-includes/jit.gworld.h deleted file mode 100755 index af098454..00000000 --- a/source/c74support/jit-includes/jit.gworld.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __JIT_GWORLD_H__ -#define __JIT_GWORLD_H__ - -// nothing to see here - -#endif //__JIT_GWORLD_H__ diff --git a/source/c74support/jit-includes/jit.half.h b/source/c74support/jit-includes/jit.half.h deleted file mode 100644 index 4a5d7a6d..00000000 --- a/source/c74support/jit-includes/jit.half.h +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright 2001-2005 - Cycling '74 - * Derek Gerstmann - derek@cycling74.com - * - * Support for 16 bit floating point evaluation. - * - */ - -#ifndef JIT_HALF_H -#define JIT_HALF_H - -// -------------------------------------------------------------------------- - -#ifdef __cplusplus -extern "C" { -#endif - -// -------------------------------------------------------------------------- - -// 16 bit "half" floating point -typedef unsigned short half; - -// init half datatype -void jit_half_init(); - -// convert float-to-half -half jit_float_to_half(float i); - -// convert half-to-float -float jit_half_to_float(half y); - -// round to n-bits of precision -half jit_half_round(half h, unsigned int n); - -// returns -h -half jit_half_negate(half h); - -// returns h + a -half jit_half_add(half h, half a); - -// returns h + a -half jit_half_add_float(half h, float a); - -// returns h - a -half jit_half_sub(half h, half a); - -// returns h - a -half jit_half_sub_float(half h, float a); - -// returns h * a -half jit_half_mul(half h, half a); - -// returns h * a -half jit_half_mul_float(half h, float a); - -// returns h / a -half jit_half_div(half h, half a); - -// returns h / a -half jit_half_div_float(half h, float a); - -// returns 1 if h is a proper real -long jit_half_is_finite(half h); - -// returns 1 if h is normalized -long jit_half_is_normalized(half h); - -// returns 1 if h is denormalized -long jit_half_is_denormalized(half h); - -// returns 1 if h == 0 -long jit_half_is_zero(half h); - -// returns 1 if h is < 0 -long jit_half_is_negative(half h); - -// returns 1 if h is a nan -long jit_half_is_nan(half h); - -// returns 1 if h is an infinity -long jit_half_is_inf(half h); - -// -------------------------------------------------------------------------- - -#ifdef WIN_VERSION - -#define JIT_HALF_MIN 5.96046448e-08f // smallest positive half -#define JIT_HALF_NRM_MIN 6.10351562e-05f // smallest positive normalized half -#define JIT_HALF_MAX 65504.0f // largest positive half -#define JIT_HALF_EPSILON 0.00097656f // smallest positive e for which half (1.0 + e) != half (1.0) - -#else - -#define JIT_HALF_MIN 5.96046448e-08 // smallest positive half -#define JIT_HALF_NRM_MIN 6.10351562e-05 // smallest positive normalized half -#define JIT_HALF_MAX 65504.0 // largest positive half -#define JIT_HALF_EPSILON 0.00097656 // smallest positive e for which half (1.0 + e) != half (1.0) - -#endif // WIN_VERSION - -#define JIT_HALF_MANT_DIG 11 // number of digits in mantissa (significand + hidden leading 1) -#define JIT_HALF_DIG 2 // number of base 10 digits that can be represented without change -#define JIT_HALF_RADIX 2 // base of the exponent -#define JIT_HALF_MIN_EXP -13 // minimum negative exponent -#define JIT_HALF_MAX_EXP 16 // maximum positive exponent -#define JIT_HALF_MIN_10_EXP -4 // minimum positive 10^exponent -#define JIT_HALF_MAX_10_EXP 4 // maximum positive 10^exponent -#define JIT_HALF_POSINF (0x7c00) // positive infinity -#define JIT_HALF_NEGINF (0xfc00) // negative infinity -#define JIT_HALF_QNAN (0x7fff) // qnan -#define JIT_HALF_SNAN (0x7dff) // signed nan - -// -------------------------------------------------------------------------- - -#ifdef __cplusplus -} -#endif - -// -------------------------------------------------------------------------- - -#endif // JIT_HALF_H diff --git a/source/c74support/jit-includes/jit.linklist.h b/source/c74support/jit-includes/jit.linklist.h deleted file mode 100755 index e6331f50..00000000 --- a/source/c74support/jit-includes/jit.linklist.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - jit.linklist.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef _JIT_LINKLIST_H_ -#define _JIT_LINKLIST_H_ - -#include "ext_linklist.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -typedef t_llelem t_jit_llelem; -typedef t_linklist t_jit_linklist; -void jit_linklist_init(void); //manual class registration - - -// as of Max 6.1, we use the Max linklist from ext_linklist.h for jit_linklist. -// jit_linklist is aliased to the linklist class, and we leave the following exports -// for compatibility purposes of older compiled externs. they simply call their -// max linklist counterparts - - -#ifdef JIT_LINKLIST_DECLARE_PROTOTYPES - -void *jit_linklist_new(void); -void jit_linklist_free(t_jit_linklist *x); -void jit_linklist_chuck(t_jit_linklist *x); //like free, but don't free the objects -t_atom_long jit_linklist_getsize(t_jit_linklist *x); -void *jit_linklist_getindex(t_jit_linklist *x, long index); -t_jit_llelem *jit_linklist_index2ptr(t_jit_linklist *x, long index); -long jit_linklist_ptr2index(t_jit_linklist *x, t_jit_llelem *p); -t_atom_long jit_linklist_objptr2index(t_jit_linklist *x, void *p); -t_atom_long jit_linklist_append(t_jit_linklist *x, void *o); -t_atom_long jit_linklist_insertindex(t_jit_linklist *x, void *o, long index); // inserts at index(0 is head) -t_jit_llelem *jit_linklist_insertptr(t_jit_linklist *x, void *o, t_jit_llelem *p); //inserts before ptr -t_atom_long jit_linklist_deleteindex(t_jit_linklist *x, long index); -t_atom_long jit_linklist_chuckindex(t_jit_linklist *x, long index); -long jit_linklist_deleteptr(t_jit_linklist *x, t_jit_llelem *p); -long jit_linklist_chuckptr(t_jit_linklist *x, t_jit_llelem *p); //like delete, but don't free it -void jit_linklist_clear(t_jit_linklist *x); - -long jit_linklist_insertnodeindex(t_jit_linklist *x, t_jit_llelem *p, long index); -t_jit_llelem *jit_linklist_insertnodeptr(t_jit_linklist *x, t_jit_llelem *p1, t_jit_llelem *p2); -long jit_linklist_appendnode(t_jit_linklist *x, t_jit_llelem *p); - -t_jit_llelem *jit_linklistelem_new(void); -void jit_linklistelem_free(t_jit_llelem *x); - -t_atom_long jit_linklist_makearray(t_jit_linklist *x, void **a, long max); - -void jit_linklist_reverse(t_jit_linklist *x); -void jit_linklist_rotate(t_jit_linklist *x, long i); -void jit_linklist_shuffle(t_jit_linklist *x); -void jit_linklist_swap(t_jit_linklist *x, long a, long b); -void jit_linklist_findfirst(t_jit_linklist *x, void **o, long cmpfn(void *, void *), void *cmpdata); -void jit_linklist_findall(t_jit_linklist *x, t_jit_linklist **out, long cmpfn(void *, void *), void *cmpdata); -t_atom_long jit_linklist_findcount(t_jit_linklist *x, long cmpfn(void *, void *), void *cmpdata); -void jit_linklist_methodall(t_jit_linklist *x, t_symbol *s, ...); -void *jit_linklist_methodindex(t_jit_linklist *x, long i, t_symbol *s, ...); -void jit_linklist_sort(t_jit_linklist *x, long cmpfn(void *, void *)); -void jit_linklist_funall(t_jit_linklist *x, method fun, void *arg); -void jit_linklist_funallsafe(t_jit_linklist *x, method fun, void *arg); -void *jit_linklist_funindex(t_jit_linklist *x, long i, method fun, void *arg); - -#else - -#define jit_linklist_new linklist_new -//#define jit_linklist_free linklist_free (private/deprecated) should never be called directly -#define jit_linklist_chuck linklist_chuck -#define jit_linklist_getsize linklist_getsize -#define jit_linklist_getindex linklist_getindex -//#define jit_linklist_index2ptr linklist_index2ptr (private/deprecated) -//#define jit_linklist_ptr2index linklist_ptr2index (private/deprecated) -#define jit_linklist_objptr2index linklist_objptr2index -#define jit_linklist_append linklist_append -#define jit_linklist_insertindex linklist_insertindex -//#define jit_linklist_insertptr linklist_insertptr (private/deprecated) -#define jit_linklist_deleteindex linklist_deleteindex -#define jit_linklist_chuckindex linklist_chuckindex -//#define jit_linklist_deleteptr linklist_deleteptr (private/deprecated) -//#define jit_linklist_chuckptr linklist_chuckptr (private/deprecated) -#define jit_linklist_clear linklist_clear -//#define jit_linklist_insertnodeindex linklist_insertnodeindex(private/deprecated) -//#define jit_linklist_insertnodeptr linklist_insertnodeptr (private/deprecated) -//#define jit_linklist_appendnode linklist_appendnode (private/deprecated) -//#define jit_linklistelem_new linklistelem_new (private/deprecated) -//#define jit_linklistelem_free linklistelem_free (private/deprecated) -#define jit_linklist_makearray linklist_makearray -#define jit_linklist_reverse linklist_reverse -#define jit_linklist_rotate linklist_rotate -#define jit_linklist_shuffle linklist_shuffle -#define jit_linklist_swap linklist_swap -#define jit_linklist_findfirst linklist_findfirst -#define jit_linklist_findall linklist_findall -//#define jit_linklist_findcount linklist_findcount // no linklist counterpart. use findall and count linklist size -#define jit_linklist_methodall linklist_methodall -#define jit_linklist_methodindex linklist_methodindex -#define jit_linklist_sort linklist_sort -#define jit_linklist_funall linklist_funall -#define jit_linklist_funallsafe linklist_funall // no linklist counterpart. funall should be safe -#define jit_linklist_funindex linklist_funindex - -#endif // JIT_LINKLIST_DECLARE_PROTOTYPES - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif // _JIT_LINKLIST_H_ - diff --git a/source/c74support/jit-includes/jit.mac.h b/source/c74support/jit-includes/jit.mac.h deleted file mode 100755 index 8e480c2b..00000000 --- a/source/c74support/jit-includes/jit.mac.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __JIT_MAC_H__ -#define __JIT_MAC_H__ - -#include "ext_prefix.h" - -#if MAC_VERSION - -#ifndef TRUE -#define TRUE 1 -#endif -#ifndef FALSE -#define FALSE 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -OSErr jit_mac_gestalt(OSType selector, long *response); - -#ifdef __cplusplus -} -#endif - -#endif // MAC_VERSION -#endif //__JIT_MAC_H__ diff --git a/source/c74support/jit-includes/jit.math.h b/source/c74support/jit-includes/jit.math.h deleted file mode 100644 index 7f345ad3..00000000 --- a/source/c74support/jit-includes/jit.math.h +++ /dev/null @@ -1,194 +0,0 @@ - -/* - jit.math.h - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - - - platform independent mathlib calls -*/ - -#ifndef _JIT_MATH_H_ -#define _JIT_MATH_H_ - -// -------------------------------------------------------------------------- - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -double jit_math_cos (double x); -double jit_math_sin (double x); -double jit_math_tan (double x); -double jit_math_acos (double x); -double jit_math_asin (double x); -double jit_math_atan (double x); -double jit_math_atan2 (double y, double x); -double jit_math_cosh (double x); -double jit_math_sinh (double x); -double jit_math_tanh (double x); -double jit_math_acosh (double x); -double jit_math_asinh (double x); -double jit_math_atanh (double x); -double jit_math_exp (double x); -double jit_math_expm1 (double x); -double jit_math_exp2 (double x); -double jit_math_log (double x); -double jit_math_log2 (double x); -double jit_math_log10 (double x); -double jit_math_hypot (double x, double y); -double jit_math_pow (double x, double y); -double jit_math_sqrt (double x); -double jit_math_ceil (double x); -double jit_math_floor (double x); -double jit_math_round (double x); -double jit_math_trunc (double x); -double jit_math_fmod (double x, double y); -double jit_math_wrap (double x, double lo, double hi); -double jit_math_fold (double x, double lo, double hi); -double jit_math_j1 (double x); - -long jit_math_is_valid(float x); -unsigned long jit_math_roundup_poweroftwo(unsigned long x); -long jit_math_is_poweroftwo(long x); -long jit_math_is_finite(float x); -long jit_math_is_nan(float x); - - -float jit_math_project_to_sphere(float r, float x, float y); - -// -------------------------------------------------------------------------- - -float jit_math_fast_sqrt(float x); -float jit_math_fast_invsqrt(float x); - -float jit_math_fast_sin(float x); // absolute error of 1.7e-04 for [0, PI/2] -float jit_math_fast_cos(float x); // absolute error of 1.2e-03 for [0, PI/2] -float jit_math_fast_tan(float x); // absolute error of 1.9e-08 for [0, PI/4] -float jit_math_fast_asin(float x); // absolute error of 6.8e-05 for [0, 1] -float jit_math_fast_acos(float x); // absolute error of 6.8e-05 for [0, 1] -float jit_math_fast_atan(float x); // absolute error of 1.43-08 for [-1, 1] - -// -------------------------------------------------------------------------- - -// constants (compiler will collapse these) -#define JIT_MATH_F32_PI (3.14159265358979323846f) -#define JIT_MATH_F32_TWO_PI (2.0f * JIT_MATH_F32_PI) -#define JIT_MATH_F32_HALF_PI (0.5f * JIT_MATH_F32_PI) -#define JIT_MATH_F32_INV_PI (1.0f / JIT_MATH_F32_PI) -#define JIT_MATH_F32_DEGTORAD (JIT_MATH_F32_PI / 180.0f) -#define JIT_MATH_F32_RADTODEG (180.0f/JIT_MATH_F32_PI) -#define JIT_MATH_F32_EPS (10e-6f) -#define JIT_MATH_F32_MAXVAL (3.402823466e+38F) - -#define JIT_MATH_F64_PI (3.14159265358979323846) -#define JIT_MATH_F64_TWO_PI (2.0 * JIT_MATH_F64_PI) -#define JIT_MATH_F64_HALF_PI (0.5 * JIT_MATH_F64_PI) -#define JIT_MATH_F64_INV_PI (1.0 / JIT_MATH_F64_PI) -#define JIT_MATH_F64_DEGTORAD (JIT_MATH_F64_PI / 180.0) -#define JIT_MATH_F64_RADTODEG (180.0 / JIT_MATH_F64_PI) -#define JIT_MATH_F64_EPS (10e-6f) -#define JIT_MATH_F64_MAXVAL (1.7976931348623158e+308) - -#define JIT_MATH_FIXED_PI (DoubleToFixed(JIT_MATH_F64_PI)) -#define JIT_MATH_FIXED_TWO_PI (DoubleToFixed(JIT_MATH_F64_TWO_PI)) -#define JIT_MATH_FIXED_HALF_PI (DoubleToFixed(JIT_MATH_F64_HALF_PI)) -#define JIT_MATH_FIXED_INV_PI (DoubleToFixed(JIT_MATH_F64_INV_PI)) -#define JIT_MATH_FIXED_DEGTORAD (DoubleToFixed(JIT_MATH_F64_DEGTORAD)) -#define JIT_MATH_FIXED_RADTODEG (DoubleToFixed(JIT_MATH_F64_RADTODEG)) -#define JIT_MATH_FIXED_EPS (DoubleToFixed(JIT_MATH_F64_EPS)) -#define JIT_MATH_FIXED_MAXVAL (2147483647L) - -// -------------------------------------------------------------------------- - -// squared and cubed -#define JIT_MATH_SQR(x) ((x) * (x)) -#define JIT_MATH_CUBE(x) ((x) * (x) * (x)) - -// clamp value x between a and b -#define JIT_MATH_CLAMP(x,a,b) (x)<(a)?(a):(x)>(b)?(b):(x) - -// clip value x between a and b -#define JIT_MATH_CLIP(x,a,b) (x)=(x)<(a)?(a):(x)>(b)?(b):(x) - -// max and min -#define JIT_MATH_MAX(x,y) ((x)>(y)?(x):(y)) -#define JIT_MATH_MIN(x,y) ((x)<(y)?(x):(y)) - -// step or threshold -#define JIT_MATH_STEP(x,a) (((x) >= (a)) ? 1 : 0) - -// linear interpolation of x between a and b -#define JIT_MATH_LERP(x,a,b) ((a) + (x) * ((b) - (a))) -#define JIT_MATH_FIXED_LERP(x,a,b) ((a) + FixMul4((x), ((b) - (a)))) - -// absolute value -#define JIT_MATH_F32_ABS(x) ((x)<0.0f?-(x):(x)) -#define JIT_MATH_F64_ABS(x) ((x)<0.0?-(x):(x)) -#define JIT_MATH_FIXED_ABS(x) ((x) 0.0f ) && ( (x) != (long) (x) ) ) ? 1 + (x) : (x) ) -#define JIT_MATH_F64_CEIL(x) ( ( ( (x) > 0.0 ) && ( (x) != (long) (x) ) ) ? 1 + (x) : (x) ) - -// fractional component extraction -#define JIT_MATH_F32_FRAC2(x) (((x) >= 0.0f) ? (x) - (long)(x) : 0.0f) -#define JIT_MATH_F32_FRAC(x) (((x) >= 0.0f) ? (x) - (long)(x) : JIT_MATH_F32_FRAC2((-(x)))) -#define JIT_MATH_F64_FRAC2(x) (((x) >= 0.0) ? (x) - (long)(x) : 0.0) -#define JIT_MATH_F64_FRAC(x) (((x) >= 0.0) ? (x) - (long)(x) : JIT_MATH_F64_FRAC2((-(x)))) - -// fast lcg rand (seed is ulong) -#define JIT_RAND_ULONG_LCG(seed) (1402024253 * seed + 586950981) - -// fast uniform rand [0, 1] -#define JIT_RAND_F32_UNIFORM_LCG(seed) ((seed + 0.5f) * (1.0f / 4294967296.0f)) -#define JIT_RAND_F64_UNIFORM_LCG(seed) ((seed + 0.5) * (1.0 / 4294967296.0)) - -// float32 bit extraction -#define JIT_MATH_F32_BITS(x) (*(t_int32 *)&(x)) -#define JIT_MATH_F32_ABS_BITS(x) (JIT_MATH_F32_BITS(x)&0x7FFFFFFF) -#define JIT_MATH_F32_SIGN_BIT(x) (JIT_MATH_F32_BITS(x)&0x80000000) -#define JIT_MATH_F32_ONE_BITS 0x3F800000 - -// float32 inversion (r = 1/p) -#define JIT_MATH_F32_INV(r,p) \ -{ \ - int _i = 2 * JIT_MATH_F32_BITS - *(int *)&(p); \ - r = *(float *)&_i; \ - r = r * (2.0f - (p) * r); \ -} - -// float32 exp (e = exp(p)) -#define JIT_MATH_F32_EXP(e,p) \ -{ \ - int _i; \ - e = -1.44269504f * (float)0x00800000 * (p); \ - _i = (int)e + 0x3F800000; \ - e = *(float *)&_i; \ -} - -// determinant calculation -#define JIT_MATH_DET2x2(a1, a2, b1, b2) ((a1) * (b2) - (b1) * (a2)) -#define JIT_MATH_DET3x3(a1, a2, a3, b1, b2, b3, c1, c2, c3) \ - ((a1) * JIT_MATH_DET2x2(b2, b3, c2, c3) - (b1) * JIT_MATH_DET2x2(a2, a3, c2, c3) + (c1) * JIT_MATH_DET2x2(a2, a3, b2, b3)) - -// -------------------------------------------------------------------------- - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _JIT_MATH_H_ */ diff --git a/source/c74support/jit-includes/jit.matrix.util.h b/source/c74support/jit-includes/jit.matrix.util.h deleted file mode 100644 index d2ae37c5..00000000 --- a/source/c74support/jit-includes/jit.matrix.util.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _JIT_MATRIX_UTIL_H_ -#define _JIT_MATRIX_UTIL_H_ - -#include "jit.common.h" - - -#ifdef __cplusplus -extern "C" { -#endif - -t_jit_err jit_matrix_list_get_matrices(void *list, long n, void **matrices); -t_jit_err jit_matrix_array_lock(void **matrices, long n, long *savelock); -t_jit_err jit_matrix_array_unlock(void **matrices, long n, long *savelock); -t_jit_err jit_matrix_array_get_matrix_info(void **matrices, long n, t_jit_matrix_info *matrix_info); -t_jit_err jit_matrix_array_get_data(void **matrices, long n, char **data); -t_jit_err jit_matrix_info_equal_matrix_structure(t_jit_matrix_info *minfo1, t_jit_matrix_info *minfo2); -t_jit_err jit_matrix_info_uniform_planecount(t_jit_matrix_info *matrix_info, long n, t_jit_matrix_info *info_list); -t_jit_err jit_matrix_info_uniform_type(t_jit_matrix_info *matrix_info, long n, t_jit_matrix_info *info_list); -t_jit_err jit_matrix_info_uniform_dim(t_jit_matrix_info *matrix_info, long n, t_jit_matrix_info *info_list); - - -#ifdef __cplusplus -} -#endif - -#endif // _JIT_MATRIX_UTIL_H_ \ No newline at end of file diff --git a/source/c74support/jit-includes/jit.max.h b/source/c74support/jit-includes/jit.max.h deleted file mode 100755 index bd4b2989..00000000 --- a/source/c74support/jit-includes/jit.max.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - jit.max.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_MAX_H__ -#define __JIT_MAX_H__ - - -#include "ext.h" -#include "ext_proto.h" -#include "ext_strings.h" -#include "ext_critical.h" -#include "jit.error.h" - - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -//atom,symbol,method shared with max -typedef t_object t_jit_object; ///< object header @ingroup jitter -typedef t_class t_max_class; -typedef t_object t_max_object; -typedef t_messlist t_max_messlist; - -#define A_DEFER 0x41 -#define A_USURP 0x42 -#define A_DEFER_LOW 0x43 -#define A_USURP_LOW 0x44 - -#define MAX_JIT_CLASS_FLAGS_GIMMEBACK_WRAP 0x00000001L // uses standard dumpout A_DEFER_LOW method - -// BEGIN LEGACY API FOR MAX WRAPPER OBJECTS USING setup() -C74_DEPRECATED( void *max_jit_obex_new(void *mc, t_symbol *classname) ); -C74_DEPRECATED( void max_jit_obex_free(void *x) ); -C74_DEPRECATED( void *max_jit_classex_setup(long oboffset) ); -C74_DEPRECATED( t_jit_err max_jit_classex_addattr(void *x, void *attr) ); -C74_DEPRECATED( void max_jit_classex_standard_wrap(void *mclass, void *jclass, long flags) ); -C74_DEPRECATED( void max_jit_class_addmethods(void *x) ); -C74_DEPRECATED( void max_jit_class_addmethods_flags(void *x, long flags) ); -C74_DEPRECATED( void max_jit_class_attrlist2methods(void *x) ); -C74_DEPRECATED( void max_addmethod_defer(method m, char *s) ); -C74_DEPRECATED( void max_addmethod_defer_low(method m, char *s) ); -C74_DEPRECATED( void max_addmethod_usurp(method m, char *s) ); -C74_DEPRECATED( void max_addmethod_usurp_low(method m, char *s) ); -// END LEGACY API FOR MAX WRAPPER OBJECTS USING setup() - -// new t_class API for constructing max wrapper objects using class_new() -void *max_jit_object_alloc(t_class *mclass, t_symbol *jitter_classname); -void max_jit_object_free(void *x); -void max_jit_class_obex_setup(t_class *mclass, long oboffset); -t_jit_err max_jit_class_addattr(t_class *mclass, void *attr); -void max_jit_class_wrap_standard(t_class *mclass, t_class *jclass, long flags); -void max_jit_class_wrap_addmethods(t_class *mclass, t_class *jclass); -void max_jit_class_wrap_addmethods_flags(t_class *mclass, t_class *jclass, long flags); -void max_jit_class_wrap_attrlist2methods(t_class *mclass, t_class *jclass); -void max_jit_class_addmethod_defer(t_class *mclass, method m, char *s); -void max_jit_class_addmethod_defer_low(t_class *mclass, method m, char *s); -void max_jit_class_addmethod_usurp(t_class *mclass, method m, char *s); -void max_jit_class_addmethod_usurp_low(t_class *mclass, method m, char *s); - -// instance specific wrapping -t_jit_err max_jit_object_addattr(t_object *x, void *attr); -void max_jit_object_wrap_standard(t_object *mob, t_object *job, long flags); -void max_jit_object_wrap_complete(t_object *mob, t_object *job, long flags); -void max_jit_object_wrap_addmethods(t_object *mob, t_object *job); -void max_jit_object_wrap_addmethods_flags(t_object *mob, t_object *job, long flags); -void max_jit_object_wrap_attrlist2methods(t_object *mob, t_object *job); -void max_jit_object_addmethod_defer(t_object *x, method m, char *s); -void max_jit_object_addmethod_defer_low(t_object *x, method m, char *s); -void max_jit_object_addmethod_usurp(t_object *x, method m, char *s); -void max_jit_object_addmethod_usurp_low(t_object *x, method m, char *s); - -void max_jit_object_attr_dump(void *x); -long max_jit_attr_args_offset(short ac, t_atom *av); -void max_jit_attr_args(void *x, short ac, t_atom *av); -void max_jit_attr_set(void *x, t_symbol *s, short ac, t_atom *av); - -void *max_jit_obex_attrlist_get(void *x); -t_jit_err max_jit_obex_attr_set(void *x, t_symbol *s, long ac, t_atom *av); -t_jit_err max_jit_obex_attr_get(void *x, t_symbol *s, long *ac, t_atom **av); -void max_jit_obex_attr_getdump(void *x, t_symbol *s, short argc, t_atom *argv); -t_jit_err max_jit_obex_set(void *x, void *p); -void *max_jit_obex_get(void *x); -void *max_jit_obex_jitob_get(void *x); -void max_jit_obex_jitob_set(void *x, void *jitob); -void *max_jit_obex_usurplist_get(void *x); -void max_jit_obex_usurplist_set(void *x, void *usurplist); -void *max_jit_obex_proxylist_get(void *x); -void max_jit_obex_proxylist_set(void *x, void *proxylist); -long max_jit_obex_inletnumber_get(void *x); -void max_jit_obex_inletnumber_set(void *x, long inletnumber); -t_jit_err max_jit_obex_proxy_new(void *x, long c); -t_jit_err max_jit_obex_proxy_resize(void *x, long count); -t_jit_err max_jit_obex_proxy_deletetail(void *x); -t_jit_err max_jit_obex_proxy_append(void *x, long c); -void max_jit_obex_dumpout_set(void *x, void *outlet); -void *max_jit_obex_dumpout_get(void *x); -void max_jit_obex_dumpout(void *x, t_symbol *s, short argc, t_atom *argv); -void *max_jit_obex_adornmentlist_get(void *x); -void max_jit_obex_adornmentlist_set(void *x, void *adornmentlist); -void *max_jit_obex_adornment_get(void *x, t_symbol *classname); -t_jit_err max_jit_obex_addadornment(void *x,void *adornment); -void max_jit_obex_gimmeback(void *x, t_symbol *s, long ac, t_atom *av); -void max_jit_obex_gimmeback_dumpout(void *x, t_symbol *s, long ac, t_atom *av); - -t_atom_long max_jit_method_is_attr(void *x, t_symbol *s); -t_atom_long max_jit_method_is_undocumented(void *x, t_symbol *s); -t_atom_long max_jit_method_is_groupreference(void *x, t_symbol *s); - -long max_jit_getqueuestate(void); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif //__JIT_MAX_H__ diff --git a/source/c74support/jit-includes/jit.namespace.h b/source/c74support/jit-includes/jit.namespace.h deleted file mode 100644 index db551902..00000000 --- a/source/c74support/jit-includes/jit.namespace.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef __JIT_NAMESPACE_H__ -#define __JIT_NAMESPACE_H__ - -#include "jit.common.h" - -// object structs -typedef struct _jit_namespace_data -{ - t_jit_object ob; - t_symbol *name; - void *data; -} t_jit_namespace_data; - -typedef struct _jit_namespace -{ - t_jit_object ob; - void *reference; - t_jit_linklist *list; -} t_jit_namespace; - -void jit_namespace_init(void); -void *jit_namespace_lookup(void *reference); -void *jit_namespace_attach(void *reference, t_symbol *name, void *data); -void *jit_namespace_attach_decorated(void *reference, t_symbol *name, void *data, t_symbol **out_name); - -/* - -////// available methods - -t_jit_namespace *jit_namespace_lookup(void *reference); - returns the namespace associated with a particular reference, or NULL if one doesn't exist. - -t_jit_namespace *jit_namespace_attach(void *reference, t_symbol *name, void *data); - attaches a name and data to the namespace associated with a particular reference, creating - a new namespace for that reference if one doesn't yet exist. returns the namespace, or NULL - if the method fails. - - -////// object messages (t_jit_namespace) - -long jit_object_method(t_jit_namespace *ns, gensym("getsize")); - returns the size of the namespace - -long jit_object_method(t_jit_namespace *ns, gensym("findsize"), long cmpfn(void *, void *), void *cmpdata); - returns the number of namespace elements matching the comparison criteria - -void *jit_namespace_iterate(t_jit_namespace *x, long *index); - returns the t_jit_namespace_data object associated with a particular index. to use, pass a - long pointer to 0 in index. the index will be incremented automatically, so a while() loop - can be used to iterate every member. - -void jit_object_method(t_jit_namespace *ns, gensym("findfirst"), t_jit_namespace_data **out, long cmpfn(void *, void *), void *cmpdata); - returns (in the out field) a pointer to the first t_jit_namespace_data object matching the - comparison criteria. - -void jit_object_method(t_jit_namespace *ns, gensym("findall"), t_jit_linklist **out, long cmpfn(void *, void *), void *cmpdata); - returns (in the out field) a pointer to a t_jit_linklist object containing pointers to - all of the t_jit_namespace_data objects matching the comparison criteria. the user must - dispose of the linklist using "chuck", or the t_jit_namespace_data objects will be freed, - and havok will be unleashed upon the earth. - -void jit_namespace_sort(t_jit_namespace *x, long cmpfn(void *, void *)); - sorts the namespace members based on the comparison function. - -void *jit_object_method(t_jit_namespace *ns, gensym("detach"), t_symbol *name); - detaches a name from the namespace. (detaching a name doesn't affect the associated - data, although it's no longer attached to the namespace. if the data contains objects - which must be freed, the user must manually do this). returns the namespace pointer, or NULL - if the namespace was freed in the detach. - -void *jit_namespace_detachall(t_jit_namespace *x); - detaches all names from the namespace. returns the namespace pointer, or NULL - if the namespace was freed in the detach. - -void *jit_namespace_finddetach(t_jit_namespace *x, long cmpfn(void *, void *), void *cmpdata) - detaches all names from the namespace matching the comparison criteria. returns the - namespace pointer, or NULL if the namespace was freed in the detach. - -void *jit_object_method(t_jit_namespace *ns, gensym("add"), t_symbol *name, void *data); - attaches a name and data to a known namespace, and returns the namespace pointer if successful, - or NULL if not. - -void *jit_object_method(t_jit_namespace *ns, gensym("replace"), t_symbol *name, void *data); - replaces the data associated with a name within a known namespace, and returns the namespace - pointer if successful, or NULL if not. - -t_symbol *jit_object_method(t_jit_namespace *ns, gensym("gettype"), t_symbol *name); - returns a symbol describing the type of data associated with a name. if the data - is a t_jit_attribute (or compatible), this method will return the type of data stored in - the attribute (char, long, float, etc.). otherwise, if the data points to an object, - this method returns the object's class name, or an empty symbol if the data can't be typed. - the method will resolve any namespace hierarchies. - -t_symbol *jit_object_method(t_jit_namespace *ns, gensym("ob_sym"), t_symbol *name); - if the data associated with a name points to an object, this method returns the object's - class name. otherwise, it returns an empty symbol. the method will resolve any - namespace hierarchies. - -t_jit_namespace_data *jit_object_method(t_jit_namespace *ns, gensym("resolve_name"), t_symbol *name); - returns a pointer to the t_jit_namespace_data object associated with a particular name, - resolving any namespace hierarchies ("foo::bar"). - -void *jit_object_method(t_jit_namespace *x, gensym("resolve_raw"), t_symbol *name); - returns a pointer to the data stored with a name, resolving any namespace hierarchies. - -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_char"), t_symbol *name, long *size, uchar **data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_long"), t_symbol *name, long *size, long **data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_float"), t_symbol *name, long *size, float **data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_double"), t_symbol *name, long *size, double **data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_symbol"), t_symbol *name, long *size, t_symbol ***data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_atom"), t_symbol *name, long *size, t_atom **data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_object"), t_symbol *name, long *size, t_object ***data); -t_jit_err jit_object_method(t_jit_namespace *x, gensym("resolve_pointer"), t_symbol *name, long *size, void ***data); - when used with attribute-compatible data, returns a vector of typed data (data), - and the vector's size (size) stored with a name, resolving any namespace hierarchies. - -////// object messages (t_jit_namespace_data) - -t_symbol *jit_object_method(t_jit_namespace_data *nsd, gensym("getname")); - returns the data's name - -void *jit_object_method(t_jit_namespace_data *nsd, gensym("getdata")); - returns the data pointer - -t_symbol *jit_object_method(t_jit_namespace_data *nsd, gensym("gettype")); - returns a symbol describing the type of the data. if the data - is a t_jit_attribute (or compatible), this method will return the type of data stored in - the attribute (char, long, float, etc.). otherwise, if the data points to an object, - this method returns the object's class name, or an empty symbol if the data can't be typed. - -t_symbol *jit_object_method(t_jit_namespace_data *nsd, gensym("ob_sym")); - if the data points to an object, this method returns the object's - class name. otherwise, it returns an empty symbol. - -*/ - -#endif // __JIT_NAMESPACE_H__ diff --git a/source/c74support/jit-includes/jit.op.h b/source/c74support/jit-includes/jit.op.h deleted file mode 100755 index 37adbfb9..00000000 --- a/source/c74support/jit-includes/jit.op.h +++ /dev/null @@ -1,366 +0,0 @@ -/* - jit.op.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com -*/ - -#ifndef _JIT_OP_H_ -#define _JIT_OP_H_ - -#include "jit.common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** - * Provides base pointer and stride for vector operator functions - */ -typedef struct _jit_op_info -{ - void *p; ///< base pointer (coerced to appropriate type) - long stride; ///< stride between elements (in type, not bytes) -} t_jit_op_info; - -typedef void (*t_jit_op_fn)(long); // NO LONGER VAR ARG TO PREVENT ISSUES UNDER APPLE SILICON. MUST TYPES BELOW TO CALL -typedef void (*t_jit_op_fn_unary)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *out); -typedef void (*t_jit_op_fn_binary)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -typedef void (*t_jit_op_fn_ternary)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *in2, t_jit_op_info *out); -typedef void *(*t_jit_op_fn_rv)(long); // NO LONGER VAR ARG TO PREVENT ISSUES UNDER APPLE SILICON. MUST TYPES BELOW TO CALL -typedef void *(*t_jit_op_fn_unary_rv)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *out); -typedef void *(*t_jit_op_fn_binary_rv)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -typedef void *(*t_jit_op_fn_ternary_rv)(long, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *in2, t_jit_op_info *out); - -typedef struct _jit_op_fn_object -{ - t_object ob; - t_symbol *name; - long argcount; - t_jit_op_fn charfn; - t_jit_op_fn longfn; - t_jit_op_fn float32fn; - t_jit_op_fn float64fn; -} t_jit_op_fn_object; - -t_jit_err jit_op_init(void); -t_jit_op_fn jit_op_sym2fn(t_symbol *opsym, t_symbol *type); -t_jit_op_fn_object *jit_op_fn_lookup(t_symbol *opsym); -t_jit_err jit_op_fn_store(t_symbol *opsym, t_jit_op_fn_object *x); - -//note vecdata is unused by the following functions. - -//arith -void jit_op_vector_pass_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mult_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_div_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mod_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_add_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_adds_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sub_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_subs_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_min_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_max_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_avg_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_absdiff_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_pass_char_altivec (long n, void *vecdata, uchar *ip1, uchar *op); -void jit_op_vector_mult_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_div_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); //unimplemented -void jit_op_vector_mod_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); //unimplemented -void jit_op_vector_add_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_adds_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_sub_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_subs_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_min_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_max_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_avg_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); - -void jit_op_vector_pass_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mult_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_div_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mod_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_add_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sub_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_min_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_max_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_abs_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_avg_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_absdiff_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_pass_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *op); -void jit_op_vector_mult_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_div_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); //unimplemented -void jit_op_vector_mod_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); //unimplemented -void jit_op_vector_add_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_sub_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_min_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_max_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_abs_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *op); -void jit_op_vector_avg_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); - -void jit_op_vector_pass_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mult_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_div_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_add_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sub_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_min_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_max_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_abs_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_avg_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_absdiff_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mod_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_fold_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_wrap_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_pass_float32_altivec (long n, void *vecdata, float *ip1, float *op); -void jit_op_vector_mult_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_div_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); //unimplemented -void jit_op_vector_add_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_sub_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_min_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_max_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_abs_float32_altivec (long n, void *vecdata, float *ip1, float *op); -void jit_op_vector_avg_float32_altivec (long n, void *vecdata, float *ip1, float *ip2, float *op); -void jit_op_vector_absdiff_float32_altivec(long n, void *vecdata, float *ip1, float *ip2, float *op); - -void jit_op_vector_pass_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mult_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_div_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_add_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sub_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_min_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_max_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_abs_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_avg_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_absdiff_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_mod_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_fold_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_wrap_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -//fliparith(calls corresponding arith function) -void jit_op_vector_flippass_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipdiv_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipmod_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipsub_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_flippass_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipdiv_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipmod_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipsub_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_flippass_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipdiv_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipmod_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipsub_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_flippass_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipdiv_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipmod_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_flipsub_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -//bitwise -void jit_op_vector_bitand_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitor_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitxor_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitnot_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lshift_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_rshift_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_bitand_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_bitor_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_bitxor_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_bitnot_char_altivec (long n, void *vecdata, uchar *ip1, uchar *op); -void jit_op_vector_lshift_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_rshift_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); - -void jit_op_vector_bitand_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitor_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitxor_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_bitnot_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lshift_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_rshift_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_bitand_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_bitor_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_bitxor_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_bitnot_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *op); -void jit_op_vector_lshift_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); -void jit_op_vector_rshift_long_altivec (long n, void *vecdata, t_int32 *ip1, t_int32 *ip2, t_int32 *op); - -//logical -void jit_op_vector_and_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_or_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_not_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gt_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gte_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lt_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lte_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eq_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neq_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_and_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_or_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_not_char_altivec (long n, void *vecdata, uchar *ip1, uchar *op); -void jit_op_vector_gt_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_gte_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_lt_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_lte_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_eq_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); -void jit_op_vector_neq_char_altivec (long n, void *vecdata, uchar *ip1, uchar *ip2, uchar *op); - -void jit_op_vector_and_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_or_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_not_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gt_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gte_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lt_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lte_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eq_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neq_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_and_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_or_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_not_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gt_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gte_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lt_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lte_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eq_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neq_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_and_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_or_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_not_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gt_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gte_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lt_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_lte_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eq_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neq_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -//logical pass -void jit_op_vector_gtp_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gtep_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltp_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltep_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eqp_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neqp_char (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_gtp_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gtep_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltp_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltep_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eqp_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neqp_long (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_gtp_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gtep_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltp_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltep_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eqp_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neqp_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_gtp_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_gtep_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltp_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ltep_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_eqp_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_neqp_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -//transcendental(float32/float64 only) -void jit_op_vector_sin_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_cos_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_tan_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_asin_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_acos_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atan_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atan2_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sinh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_cosh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_tanh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_asinh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_acosh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atanh_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_exp_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_exp2_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log2_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log10_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_hypot_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_pow_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sqrt_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_ceil_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_floor_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_round_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_trunc_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_sin_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_cos_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_tan_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_asin_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_acos_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atan_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atan2_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sinh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_cosh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_tanh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_asinh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_acosh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_atanh_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_exp_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_exp2_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log2_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_log10_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_hypot_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_pow_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_sqrt_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_ceil_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_floor_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_round_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_trunc_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -//linear algebra -void jit_op_vector_ax_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ax_float32_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ax_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_ax_float64_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_axpy_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_axpy_float32_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_axpy_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_axpy_float64_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_dotprod_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_dotprod_float32_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_dotprod_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_dotprod_float64_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -void jit_op_vector_swap_float32 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_swap_float32_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_swap_float64 (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); -void jit_op_vector_swap_float64_complex (long n, void *vecdata, t_jit_op_info *in0, t_jit_op_info *in1, t_jit_op_info *out); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif //_JIT_OP_H_ - diff --git a/source/c74support/jit-includes/jit.parallel.utils.h b/source/c74support/jit-includes/jit.parallel.utils.h deleted file mode 100644 index bbfaa9f1..00000000 --- a/source/c74support/jit-includes/jit.parallel.utils.h +++ /dev/null @@ -1,70 +0,0 @@ - -#ifndef _JIT_PARALLEL_UTILS_H_ -#define _JIT_PARALLEL_UTILS_H_ - -#define JIT_PARALLEL_NDIM_MAX_IO 32 -#define JIT_PARALLEL_NDIM_FLAGS_FULL_MATRIX 0x00000001 - -#include "jit.common.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -typedef struct _jit_parallel_ndim_io -{ - long flags; - t_jit_matrix_info *minfo; - char *bp; -} t_jit_parallel_ndim_io; - -typedef struct _jit_parallel_ndim -{ - long flags; - void *data; - long dimcount; - long *dim; - long planecount; - long iocount; - t_jit_parallel_ndim_io io[JIT_PARALLEL_NDIM_MAX_IO]; - method fn; -} t_jit_parallel_ndim; - -typedef struct _jit_parallel_ndim_worker -{ - t_jit_parallel_ndim *paralleldata; - long workercount; - long workerid; - long offset[2]; - long extent[2]; -} t_jit_parallel_ndim_worker; - - -void jit_parallel_utils_init(void); -void jit_parallel_ndim_calc(t_jit_parallel_ndim *p); -void jit_parallel_ndim_simplecalc1(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, long flags1); -void jit_parallel_ndim_simplecalc2(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, - t_jit_matrix_info *minfo2, char *bp2, long flags1, long flags2); -void jit_parallel_ndim_simplecalc3(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, - t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, long flags1, long flags2, long flags3); -void jit_parallel_ndim_simplecalc4(method fn, void *data, long dimcount, long *dim, long planecount, t_jit_matrix_info *minfo1, char *bp1, - t_jit_matrix_info *minfo2, char *bp2, t_jit_matrix_info *minfo3, char *bp3, t_jit_matrix_info *minfo4, char *bp4, - long flags1, long flags2, long flags3, long flags4); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} -#endif - -#endif //_JIT_PARALLEL_UTILS_H_ diff --git a/source/c74support/jit-includes/jit.platform.h b/source/c74support/jit-includes/jit.platform.h deleted file mode 100755 index a8e4e22f..00000000 --- a/source/c74support/jit-includes/jit.platform.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - jit.platform.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_PLATFORM_H__ -#define __JIT_PLATFORM_H__ - -#include "ext_infer_system.h" - -#ifdef WIN_VERSION - -#define JIT_EX_DATA_DECL __declspec(dllexport) -#ifdef WIN_JITLIB -#define JIT_EX_DATA extern __declspec(dllexport) -#else -#define JIT_EX_DATA extern __declspec(dllimport) -#endif //WIN_JITLIB -#else -#define JIT_EX_DATA_DECL -#define JIT_EX_DATA extern - -#endif // WIN_VERSION - -#define C74_MAX - -// weak link macros -#ifdef __APPLE_CC__ -#define JIT_WEAKLINK __attribute((weak_import)) -#else -#define JIT_WEAKLINK -#endif - -#ifdef C74_MAX -#include "jit.max.h" -#endif - - -//endian issues -#include "jit.byteorder.h" - -//thread related -#include "jit.critical.h" - -// rbs: altivec is never true now, we should clean this stuff up -#define JIT_CAN_ALTIVEC 0 -JIT_EX_DATA long _jit_altivec; - -//speed macros -- we currently always use post inc - -#define PREFER_POST_INC -#ifdef PREFER_POST_INC -#define FAST_INC_SETUP(x) // nothing -#define FAST_INC(x) ((x)++) -#define FAST_INC_DEREF(x) (*((x)++)) -#define FAST_DEC_SETUP(x) // nothing -#define FAST_DEC(x) ((x)--) -#define FAST_DEC_DEREF(x) (*((x)--)) -#else -#define FAST_INC_SETUP(x) (--(x)) // predec -#define FAST_INC(x) (++(x)) -#define FAST_INC_DEREF(x) (*(++(x))) -#define FAST_DEC_SETUP(x) (++(x)) // preinc -#define FAST_DEC(x) (--(x)) -#define FAST_DEC_DEREF(x) (*(--(x))) -#endif - -//utils -#ifndef calcoffset -#define calcoffset(x,y) ((long)(&(((x *)0L)->y))) -#endif - -#ifdef WIN_VERSION -#define hypot _hypot -#endif - -#ifdef MAC_VERSION - -#include - -#endif // #ifdef MAC_VERSION - -#endif // #ifndef __JIT_PLATFORM_H__ diff --git a/source/c74support/jit-includes/jit.symbols.h b/source/c74support/jit-includes/jit.symbols.h deleted file mode 100755 index 687bfc55..00000000 --- a/source/c74support/jit-includes/jit.symbols.h +++ /dev/null @@ -1,158 +0,0 @@ -/* - jit.symbols.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#ifndef __JIT_SYMBOLS_H__ -#define __JIT_SYMBOLS_H__ - -#include "jit.common.h" -#include "jit.platform.h" - - -JIT_EX_DATA t_symbol *_jit_sym_nothing; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_new; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_free; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_classname; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getname; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getmethod; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_get; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_set; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_register; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_char; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_long; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_float32; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_float64; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_symbol; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_pointer; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_object; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_atom; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_list; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_type; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_dim; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_planecount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_val; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_plane; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_cell; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_matrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_class_jit_matrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_togworld; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_fromgworld; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_frommatrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_class_jit_attribute; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_attribute; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_attr_offset; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_attr_offset_array; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_rebuilding; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_modified; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_lock; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_setinfo; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_setinfo_ex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getinfo; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_data; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getdata; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_outputmatrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_clear; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_clear_custom; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_err_calculate; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_max_jit_classex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_setall; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_chuck; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getsize; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getindex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_objptr2index; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_append; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_insertindex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_deleteindex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_chuckindex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_makearray; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_reverse; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_rotate; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_shuffle; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_swap; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_findfirst; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_findall; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_methodall; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_methodindex; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_sort; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_matrix_calc; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_genframe; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_filter; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_mop; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_newcopy; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_linklist; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_inputcount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_outputcount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getinput; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getoutput; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getinputlist; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getoutputlist; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_ioname; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_matrixname; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_outputmode; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_matrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getmatrix; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_typelink; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_dimlink; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_planelink; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_restrict_type; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_restrict_planecount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_restrict_dim; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_special; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getspecial; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_adapt; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_decorator; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_frommatrix_trunc; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_ioproc; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_getioproc; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_name; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_types; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_minplanecount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_maxplanecount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_mindimcount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_maxdimcount; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_mindim; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_maxdim; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_points; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_point_sprite; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_lines; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_line_strip; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_line_loop; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_triangles; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_tri_strip; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_tri_fan; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_quads; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_quad_strip; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_polygon; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_tri_grid; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gl_quad_grid; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_err_lockout_stack; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_class_jit_namespace; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_jit_namespace; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_findsize; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_attach; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_detach; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_add; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_replace; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_gettype; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_ob_sym; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_resolve_name; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_resolve_raw; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_notifyall; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_block; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_unblock; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_position; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_rotatexyz; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_scale; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_quat; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_direction; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_lookat; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_anim; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_bounds; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_boundcalc; ///< cached #t_symbol @ingroup jitter -JIT_EX_DATA t_symbol *_jit_sym_calcbounds; ///< cached #t_symbol @ingroup jitter - -#endif // __JIT_SYMBOLS_H__ diff --git a/source/c74support/jit-includes/jit.vecmath.h b/source/c74support/jit-includes/jit.vecmath.h deleted file mode 100644 index 2b80a1de..00000000 --- a/source/c74support/jit-includes/jit.vecmath.h +++ /dev/null @@ -1,514 +0,0 @@ -#ifndef JIT_VECMATH_H -#define JIT_VECMATH_H - -/* - * jit.vecmath.h - * - * Copyright 2001-2005 - Cycling '74 - * Derek Gerstmann - derek@cycling74.com - * - * Basic vector math operations for floating point datatypes. - * - * All functions were designed to use the first function parameter - * as the assigned/return value (eg): - * - * // C = A + B - * jit_vec3_add(c, a, b); - * - * With the notable exception of all "_to_array" & "_to_coord" methods: - * - * // matrix -> array - * jit_mat4_to_array(m, a); - * - * and jit_quat_to_axes and jit_quat_to_angleaxis - * - */ - -#include "jit.common.h" -#include "jit.math.h" -#include "float.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -// ---------------------------------------------------------------------------- - -// vector math macros for untyped evaluation -#define JIT_VEC2_ADD(c,a,b) { (c)[0] = (a)[0] + (b)[0]; (c)[1] = (a)[1] + (b)[1]; } -#define JIT_VEC2_SUB(c,a,b) { (c)[0] = (a)[0] - (b)[0]; (c)[1] = (a)[1] - (b)[1]; } -#define JIT_VEC2_MULT(c,a,b) { (c)[0] = (a)[0] * (b)[0]; (c)[1] = (a)[1] * (b)[1]; } -#define JIT_VEC2_DIV(c,a,b) { (c)[0] = (a)[0] / (b)[0]; (c)[1] = (a)[1] / (b)[1]; } -#define JIT_VEC2_INC(c,a) { (c)[0] += (a)[0]; (c)[1] += (a)[1]; } -#define JIT_VEC2_DEC(c,a) { (c)[0] -= (a)[0]; (c)[1] -= (a)[1]; } -#define JIT_VEC2_ADDC(c,a,b) { (c)[0] = (a)[0] + (b); (c)[1] = (a)[1] + (b); } -#define JIT_VEC2_SUBC(c,a,b) { (c)[0] = (a)[0] - (b); (c)[1] = (a)[1] - (b); } -#define JIT_VEC2_MULTC(c,a,b) { (c)[0] = (a)[0] * (b); (c)[1] = (a)[1] * (b); } -#define JIT_VEC2_DIVC(c,a,b) { (c)[0] = (a)[0] / (b); (c)[1] = (a)[1] / (b); } -#define JIT_VEC2_COPY(b,a) { (b)[0] = (a)[0]; (b)[1] = (a)[1]; } -#define JIT_VEC2_COPYC(b,a) { (b)[0] = (a); (b)[1] = (a); } -#define JIT_VEC2_DOT(p1, p2) ((p1)[0] * (p2)[0] + (p1)[1] * (p2)[1]) - -#define JIT_VEC2_NORMALIZE(v) { \ - double s = JIT_MATH_F64_EPS; \ - double m = (v)[0]*(v)[0] + (v)[1]*(v)[1]; \ - if (m > JIT_MATH_F64_EPS) \ - { \ - s = jit_math_sqrt(m); \ - (v)[0] /= s; \ - (v)[1] /= s; \ - } \ - else \ - { \ - (v)[0] = s; \ - (v)[1] = s; \ - } \ -} - -#define JIT_VEC3_ADD(c,a,b) { (c)[0] = (a)[0] + (b)[0]; (c)[1] = (a)[1] + (b)[1];\ - (c)[2] = (a)[2] + (b)[2];} -#define JIT_VEC3_SUB(c,a,b) { (c)[0] = (a)[0] - (b)[0]; (c)[1] = (a)[1] - (b)[1]; \ - (c)[2] = (a)[2] - (b)[2];} -#define JIT_VEC3_MULT(c,a,b) { (c)[0] = (a)[0] * (b)[0]; (c)[1] = (a)[1] * (b)[1]; \ - (c)[2] = (a)[2] * (b)[2];} -#define JIT_VEC3_DIV(c,a,b) { (c)[0] = (a)[0] / (b)[0]; (c)[1] = (a)[1] / (b)[1]; \ - (c)[2] = (a)[2] / (b)[2];} -#define JIT_VEC3_INC(c,a) { (c)[0] += (a)[0]; (c)[1] += (a)[1];\ - (c)[2] += (a)[2];} -#define JIT_VEC3_DEC(c,a) { (c)[0] -= (a)[0]; (c)[1] -= (a)[1];\ - (c)[2] -= (a)[2];} -#define JIT_VEC3_ADDC(c,a,b) { (c)[0] = (a)[0] + (b); (c)[1] = (a)[1] + (b);\ - (c)[2] = (a)[2] + (b);} -#define JIT_VEC3_SUBC(c,a,b) { (c)[0] = (a)[0] - (b); (c)[1] = (a)[1] - (b); \ - (c)[2] = (a)[2] - (b);} -#define JIT_VEC3_MULTC(c,a,b) { (c)[0] = (a)[0] * (b); (c)[1] = (a)[1] * (b);\ - (c)[2] = (a)[2] * (b);} -#define JIT_VEC3_DIVC(c,a,b) { (c)[0] = (a)[0] / (b); (c)[1] = (a)[1] / (b);\ - (c)[2] = (a)[2] / (b);} -#define JIT_VEC3_COPY(b,a) { (b)[0] = (a)[0]; (b)[1] = (a)[1]; (b)[2] = (a)[2]; } - -#define JIT_VEC3_COPYC(b,a) { (b)[0] = (a); (b)[1] = (a); (b)[2] = (a); } - -#define JIT_VEC3_DOT(p1, p2) ((p1)[0] * (p2)[0] + (p1)[1] * (p2)[1] + (p1)[2] * (p2)[2]) - -#define JIT_VEC3_CROSS(c,a,b) { (c)[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ - (c)[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ - (c)[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; } - -#define JIT_VEC3_NORMALIZE(v) { \ - double s = JIT_MATH_F64_EPS; \ - double m = (v)[0]*(v)[0] + (v)[1]*(v)[1] + (v)[2]*(v)[2]; \ - if (m > JIT_MATH_F64_EPS) \ - { \ - s = jit_math_sqrt(m); \ - (v)[0] /= s; \ - (v)[1] /= s; \ - (v)[2] /= s; \ - } \ - else \ - { \ - (v)[0] = s; \ - (v)[1] = s; \ - (v)[2] = s; \ - } \ -} - -// ---------------------------------------------------------------------------- - -// vector math typedefs -typedef union _jit_vec2 -{ - struct { - float x,y; - }; - struct { - float s,t; - }; - float vals[2]; - -} t_jit_vec2; - -typedef union _jit_vec3 -{ - struct { - float x,y,z; - }; - struct { - float s,t,r; - }; - float vals[3]; - -} t_jit_vec3; - -typedef union _jit_vec4 -{ - struct { - float x,y,z,w; - }; - struct { - float s,t,r,q; - }; - float vals[4]; - -} t_jit_vec4; - -typedef union _jit_quat -{ - struct { - float x,y,z,w; - }; - float vals[4]; - -} t_jit_quat; - -typedef union _jit_mat3 -{ - struct { - float v00, v10, v20; - float v01, v11, v21; - float v02, v12, v22; - }; - float vals[9]; - -} t_jit_mat3; - -typedef union _jit_mat4 { - struct { - float v00, v10, v20, v30; - float v01, v11, v21, v31; - float v02, v12, v22, v32; - float v03, v13, v23, v33; - }; - union { - struct { - float b00, b10, b20, p; - float b01, b11, b21, q; - float b02, b12, b22, r; - float x, y, z, w; - }; - }; - float vals[16]; - -} t_jit_mat4; - -typedef struct _jit_line { - t_jit_vec3 start; - t_jit_vec3 end; -} t_jit_line; - -typedef struct _jit_ray { - t_jit_vec3 origin; - t_jit_vec3 direction; -} t_jit_ray; - -typedef struct _jit_plane { - t_jit_vec3 origin; - t_jit_vec3 normal; - //float distance; -} t_jit_plane; - -typedef struct _jit_sphere { - t_jit_vec3 center; - float radius; -} t_jit_sphere; - -typedef struct _jit_aabb { - t_jit_vec3 min; - t_jit_vec3 max; -} t_jit_aabb; - -JIT_EX_DATA t_jit_vec3 vec3_zero; -JIT_EX_DATA t_jit_vec3 vec3_identity; -JIT_EX_DATA t_jit_vec3 vec3_unit_x; -JIT_EX_DATA t_jit_vec3 vec3_unit_y; -JIT_EX_DATA t_jit_vec3 vec3_unit_z; -JIT_EX_DATA t_jit_vec3 vec3_neg_unit_x; -JIT_EX_DATA t_jit_vec3 vec3_neg_unit_y; -JIT_EX_DATA t_jit_vec3 vec3_neg_unit_z; - -t_jit_err jit_vecmath_init(void); - -// ---------------------------------------------------------------------------- - -void jit_vec2_fill(t_jit_vec2 *u, float x); -void jit_vec2_assign(t_jit_vec2 *u, t_jit_vec2 *v); -void jit_vec2_from_array(t_jit_vec2 *u, float *xy); -void jit_vec2_from_coords(t_jit_vec2 *u, float x, float y); -void jit_vec2_to_array(t_jit_vec2 *u, float *xy); -void jit_vec2_to_coords(t_jit_vec2 *u, float *x, float *y); -long jit_vec2_equal(t_jit_vec2 *u, t_jit_vec2 *v); -long jit_vec2_not_equal(t_jit_vec2 *u, t_jit_vec2 *v); -void jit_vec2_mult( t_jit_vec2 *u, t_jit_vec2 *a, t_jit_vec2 *b); -void jit_vec2_scale( t_jit_vec2 *u, t_jit_vec2 *a, float s); -void jit_vec2_accum_scale( t_jit_vec2 *u, float s); -void jit_vec2_div( t_jit_vec2 *u, t_jit_vec2 *a, float s); -void jit_vec2_sub( t_jit_vec2 *u, t_jit_vec2 *a, t_jit_vec2 *b); -void jit_vec2_accum_sub(t_jit_vec2 *u, t_jit_vec2 *v); -void jit_vec2_add( t_jit_vec2 *u, t_jit_vec2 *a, t_jit_vec2 *b); -void jit_vec2_accum_add(t_jit_vec2 *u, t_jit_vec2 *v); -float jit_vec2_get_coord(t_jit_vec2 *u, long i); -float jit_vec2_mag_sqr(t_jit_vec2 *u); -float jit_vec2_mag(t_jit_vec2 *u); -void jit_vec2_negate(t_jit_vec2 *u); -void jit_vec2_max(t_jit_vec2 *r, t_jit_vec2 *a, t_jit_vec2 *b); -void jit_vec2_min(t_jit_vec2 *r, t_jit_vec2 *a, t_jit_vec2 *b); -void jit_vec2_lerp(t_jit_vec2 *w, float t, t_jit_vec2 *u, t_jit_vec2 *v); -long jit_vec2_is_valid( t_jit_vec2 *v); - -// ---------------------------------------------------------------------------- - -void jit_vec3_fill(t_jit_vec3 *u, float x); -void jit_vec3_assign(t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_from_array(t_jit_vec3 *u, float *xyz); -void jit_vec3_from_coords(t_jit_vec3 *u, float x, float y, float z); -void jit_vec3_to_array(t_jit_vec3 *u, float *xyz); -void jit_vec3_to_coords(t_jit_vec3 *u, float *x, float *y, float *z); -long jit_vec3_equal(t_jit_vec3 *u, t_jit_vec3 *v); -long jit_vec3_not_equal(t_jit_vec3 *u, t_jit_vec3 *v); -long jit_vec3_less(t_jit_vec3 *u, t_jit_vec3 *v); -long jit_vec3_greater(t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_mult( t_jit_vec3 *u, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_vec3_scale( t_jit_vec3 *u, t_jit_vec3 *a, float s); -void jit_vec3_accum_scale( t_jit_vec3 *u, float s); -void jit_vec3_div( t_jit_vec3 *u, t_jit_vec3 *a, float s); -void jit_vec3_sub( t_jit_vec3 *u, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_vec3_accum_sub(t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_add( t_jit_vec3 *u, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_vec3_accum_add(t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_madd(t_jit_vec3 *u, t_jit_vec3 *v, float s); -float jit_vec3_get_coord( t_jit_vec3 *u, long i); -float jit_vec3_mag_sqr(t_jit_vec3 *u); -float jit_vec3_mag(t_jit_vec3 *u); -void jit_vec3_negate(t_jit_vec3 *u); -void jit_vec3_cross(t_jit_vec3 *u, t_jit_vec3 *a, t_jit_vec3 *b); -float jit_vec3_dot(t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_reflect(t_jit_vec3 *r, t_jit_vec3 *n, t_jit_vec3 *l); -float jit_vec3_normalize( t_jit_vec3 *u ); -void jit_vec3_orthogonalize( t_jit_vec3 *u, t_jit_vec3 *v ); -void jit_vec3_orthonormalize( t_jit_vec3 *u, t_jit_vec3 *v ); -void jit_vec3_max(t_jit_vec3 *r, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_vec3_min(t_jit_vec3 *r, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_vec3_lerp(t_jit_vec3 *w, float t, t_jit_vec3 *u, t_jit_vec3 *v); -void jit_vec3_cubemap_normal(t_jit_vec3 *v, int i, int x, int y, int cubesize); -long jit_vec3_is_valid( t_jit_vec3 *v); - -// ---------------------------------------------------------------------------- - -void jit_vec4_fill(t_jit_vec4 *u, float x); -void jit_vec4_assign(t_jit_vec4 *u, t_jit_vec4 *v); -void jit_vec4_from_array(t_jit_vec4 *u, float *xyzw); -void jit_vec4_from_coords(t_jit_vec4 *u, float x, float y, float z, float w); -void jit_vec4_to_array(t_jit_vec4 *u, float *xyzw); -void jit_vec4_to_coords(t_jit_vec4 *u, float *x, float *y, float *z, float *w); -long jit_vec4_equal(t_jit_vec4 *u, t_jit_vec4 *v); -long jit_vec4_not_equal(t_jit_vec4 *u, t_jit_vec4 *v); -void jit_vec4_mult( t_jit_vec4 *u, t_jit_vec4 *a, t_jit_vec4 *b); -void jit_vec4_scale( t_jit_vec4 *u, t_jit_vec4 *a, float s); -void jit_vec4_accum_scale( t_jit_vec4 *u, float s); -void jit_vec4_div( t_jit_vec4 *u, t_jit_vec4 *a, float s); -void jit_vec4_sub( t_jit_vec4 *u, t_jit_vec4 *a, t_jit_vec4 *b); -void jit_vec4_accum_sub(t_jit_vec4 *u, t_jit_vec4 *v); -void jit_vec4_add( t_jit_vec4 *u, t_jit_vec4 *a, t_jit_vec4 *b); -void jit_vec4_accum_add(t_jit_vec4 *u, t_jit_vec4 *v); -float jit_vec4_get_coord(t_jit_vec4 *u, long i); -float jit_vec4_mag_sqr(t_jit_vec4 *u); -float jit_vec4_mag(t_jit_vec4 *u); -void jit_vec4_negate(t_jit_vec4 *u); -float jit_vec4_dot(t_jit_vec4 *u, t_jit_vec4 *w); -float jit_vec4_normalize( t_jit_vec4 *u ); -void jit_vec4_max(t_jit_vec4 *r, t_jit_vec4 *a, t_jit_vec4 *b); -void jit_vec4_min(t_jit_vec4 *r, t_jit_vec4 *a, t_jit_vec4 *b); -void jit_vec4_lerp(t_jit_vec4 *w, float t, t_jit_vec4 *u, t_jit_vec4 *v); -long jit_vec4_is_valid( t_jit_vec4 *v); - -// ---------------------------------------------------------------------------- - -void jit_quat_fill(t_jit_quat *u, float x); -void jit_quat_assign(t_jit_quat *u, t_jit_quat *v); -void jit_quat_from_array(t_jit_quat *u, float *xyzw); -void jit_quat_from_coords(t_jit_quat *u, float x, float y, float z, float w); -void jit_quat_to_array(t_jit_quat *u, float *xyzw); -void jit_quat_to_coords(t_jit_quat *u, float *x, float *y, float *z, float *w); -long jit_quat_equal(t_jit_quat *u, t_jit_quat *v); -long jit_quat_not_equal(t_jit_quat *u, t_jit_quat *v); -void jit_quat_scale( t_jit_quat *u, t_jit_quat *a, float s); -void jit_quat_accum_scale( t_jit_quat *u, float s); -void jit_quat_div( t_jit_quat *u, t_jit_quat *a, float s); -void jit_quat_add(t_jit_quat * r, t_jit_quat * q1, t_jit_quat * q2); -void jit_quat_sub(t_jit_quat * r, t_jit_quat * q1, t_jit_quat * q2); -void jit_quat_mult( t_jit_quat *r, t_jit_quat * p, t_jit_quat * q); -void jit_quat_inverse( t_jit_quat * r, t_jit_quat * p); -void jit_quat_log( t_jit_quat * r, t_jit_quat * p); -void jit_quat_exp( t_jit_quat * r, t_jit_quat * p); -float jit_quat_dot(t_jit_quat * q1, t_jit_quat * q2); -float jit_quat_get_coord( t_jit_quat *u, long i); -float jit_quat_mag_sqr( t_jit_quat *u); -float jit_quat_mag( t_jit_quat *u); -void jit_quat_negate(t_jit_quat *u); -float jit_quat_normalize( t_jit_quat *u ); -void jit_quat_max(t_jit_quat *r, t_jit_quat *a, t_jit_quat *b); -void jit_quat_min(t_jit_quat *r, t_jit_quat *a, t_jit_quat *b); -void jit_quat_from_mat3( t_jit_quat *q, t_jit_mat3 *m); -void jit_mat3_from_quat(t_jit_mat3 *mat, t_jit_quat *q); -void jit_quat_from_mat4(t_jit_quat * q, t_jit_mat4 *m); -void jit_quat_from_axisangle(t_jit_quat * q, t_jit_vec3 *a, float angle); -void jit_quat_to_axisangle(t_jit_quat *q, t_jit_vec3 *a, float *angle); -void jit_quat_from_xyz(t_jit_quat *q, float *xyz); -void jit_quat_to_xyz(t_jit_quat *q, float *xyz); -void jit_quat_mult_vec3(t_jit_vec3 *r, t_jit_quat *q, t_jit_vec3 *v); -void jit_quat_from_axes(t_jit_quat *q, t_jit_vec3 *x, t_jit_vec3 *y, t_jit_vec3 *z); -void jit_quat_to_axes(t_jit_quat *q, t_jit_vec3 *x, t_jit_vec3 *y, t_jit_vec3 *z); -void jit_quat_shortest_arc(t_jit_quat *q, t_jit_vec3 *a, t_jit_vec3 *b); -void jit_quat_conj(t_jit_quat * p); -void jit_quat_get_conj(t_jit_quat * p, t_jit_quat * q); -void jit_quat_lerp(t_jit_quat *r, float s, t_jit_quat * q1, t_jit_quat * q2, long shortest); -void jit_quat_slerp(t_jit_quat *r, float s, t_jit_quat * q1, t_jit_quat * q2); -void jit_quat_slerp_shortest(t_jit_quat *r, float s, t_jit_quat * q1, t_jit_quat * q2); -void jit_quat_squad(t_jit_quat *r, float s, t_jit_quat * p, t_jit_quat * a, - t_jit_quat * b, t_jit_quat * q, int shortestpath); -void jit_quat_trackball(t_jit_quat * q, t_jit_vec2 *p1, t_jit_vec2 *p2, float radius); -long jit_quat_is_valid( t_jit_quat *v); - -// ---------------------------------------------------------------------------- - -void jit_mat3_assign( t_jit_mat3 *m, t_jit_mat3 *a ); -void jit_mat3_from_array( t_jit_mat3 *m, float *v ); -void jit_mat3_from_array3x3( t_jit_mat3 *m, float **v ); -void jit_mat3_from_coords( t_jit_mat3 *m, - float f0, float f1, float f2, - float f3, float f4, float f5, - float f6, float f7, float f8 ); -void jit_mat3_to_array( t_jit_mat3 *m, float *v ); -void jit_mat3_to_array3x3( t_jit_mat3 *m, float **v ); -void jit_mat3_to_coords( t_jit_mat3 *m, - float *f0, float *f1, float *f2, - float *f3, float *f4, float *f5, - float *f6, float *f7, float *f8 ); -void jit_mat3_get_row( t_jit_vec3 *v, long i, t_jit_mat3 *m ); -void jit_mat3_set_row( t_jit_mat3 *m, long i, t_jit_vec3 *v ); -void jit_mat3_get_col( t_jit_vec3 *v, long i, t_jit_mat3 *m ); -void jit_mat3_set_col( t_jit_mat3 *m, long i, t_jit_vec3 *v); -float jit_mat3_get_coord(t_jit_mat3 *m, long r, long c ); -void jit_mat3_add(t_jit_mat3 *c, t_jit_mat3 *a, t_jit_mat3 *b); -void jit_mat3_accum_add(t_jit_mat3 *a, t_jit_mat3 *b); -void jit_mat3_accum_scale( t_jit_mat3 *m, float s); -void jit_mat3_accum_sub( t_jit_mat3 *m, t_jit_mat3 *a ); -void jit_mat3_mult(t_jit_mat3 *c, t_jit_mat3 *a, t_jit_mat3 *b); -void jit_mat3_get_transpose(t_jit_mat3 *b, t_jit_mat3 *a); -void jit_mat3_transpose(t_jit_mat3 *a); -void jit_mat3_mult_vec3( t_jit_vec3 *r, t_jit_mat3 *m, t_jit_vec3 *v ); -void jit_vec3_mult_mat3( t_jit_vec3 *r, t_jit_vec3 *v, t_jit_mat3 *m ); -void jit_mat3_from_axisangle( t_jit_mat3 *m, t_jit_vec3 *v, float theta ); -void jit_mat3_from_uv( t_jit_mat3 *m, t_jit_vec3 *u, t_jit_vec3 *v ); -float jit_mat3_determinant( t_jit_mat3 *m); -void jit_mat3_get_inverse(t_jit_mat3 *b, t_jit_mat3 *a); -void jit_mat3_negate( t_jit_mat3 *m ); -void jit_mat3_tangent_basis(t_jit_mat3 *basis, - t_jit_vec3 *v0, t_jit_vec3 *v1, t_jit_vec3 *v2, - t_jit_vec2 *t0, t_jit_vec2 *t1, t_jit_vec2 *t2, - t_jit_vec3 *n); - -t_bool jit_mat3_to_eulerxyz(t_jit_mat3 *m, float *xyz); -t_bool jit_mat3_to_eulerxzy(t_jit_mat3 *m, float *xyz); -t_bool jit_mat3_to_euleryxz(t_jit_mat3 *m, float *xyz); -t_bool jit_mat3_to_euleryzx(t_jit_mat3 *m, float *xyz); -t_bool jit_mat3_to_eulerzxy(t_jit_mat3 *m, float *xyz); -t_bool jit_mat3_to_eulerzyx(t_jit_mat3 *m, float *xyz); -void jit_mat3_from_eulerxyz(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); -void jit_mat3_from_eulerxzy(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); -void jit_mat3_from_euleryxz(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); -void jit_mat3_from_euleryzx(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); -void jit_mat3_from_eulerzxy(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); -void jit_mat3_from_eulerzyx(t_jit_mat3 *m, double fYAngle, double fPAngle, double fRAngle); - -void jit_vec3_mult_mat4_pos(t_jit_vec3 *u, t_jit_vec3 *v, t_jit_mat4 *m); -void jit_mat4_mult_vec3_pos(t_jit_vec3 *u, t_jit_mat4 *m, t_jit_vec3 *v); -void jit_vec3_mult_mat4_dir(t_jit_vec3 *u, t_jit_vec3 *v, t_jit_mat4 *m); -void jit_mat4_mult_vec3_dir(t_jit_vec3 *u, t_jit_mat4 *m, t_jit_vec3 *v); -void jit_vec3_mult_mat4(t_jit_vec3 *u, t_jit_vec3 *v, t_jit_mat4 *m); -void jit_mat4_mult_vec3(t_jit_vec3 *u, t_jit_mat4 *m, t_jit_vec3 *v); - -// ---------------------------------------------------------------------------- - -void jit_mat4_assign( t_jit_mat4 *m, t_jit_mat4 *a ); -void jit_mat4_from_array( t_jit_mat4 *m, float *v ); -void jit_mat4_from_array4x4( t_jit_mat4 *m, float **v ); -void jit_mat4_from_coords( t_jit_mat4 *m, - float f0, float f1, float f2, float f3, - float f4, float f5, float f6, float f7, - float f8, float f9, float f10, float f11, - float f12, float f13, float f14, float f15 ); -void jit_mat4_to_array( t_jit_mat4 *m, float *v ); -void jit_mat4_to_array4x4( t_jit_mat4 *m, float **v ); -void jit_mat4_to_coords( t_jit_mat4 *m, - float *f0, float *f1, float *f2, float *f3, - float *f4, float *f5, float *f6, float *f7, - float *f8, float *f9, float *f10, float *f11, - float *f12, float *f13, float *f14, float *f15 ); -void jit_mat4_get_row( t_jit_vec4 *v, long i, t_jit_mat4 *m ); -void jit_mat4_set_row( t_jit_mat4 *m, long i, t_jit_vec4 *v ); -void jit_mat4_get_col( t_jit_vec4 *v, long i, t_jit_mat4 *m ); -void jit_mat4_set_col( t_jit_mat4 *m, long i, t_jit_vec4 *v); -float jit_mat4_get_coord(t_jit_mat4 *m, long r, long c ); -void jit_mat4_mult_vec4(t_jit_vec4 *u, t_jit_mat4 *m, t_jit_vec4 *v); -void jit_vec4_mult_mat4(t_jit_vec4 *u, t_jit_vec4 *v, t_jit_mat4 *m); -void jit_mat4_accum_add(t_jit_mat4 *a, t_jit_mat4 *b); -void jit_mat4_add(t_jit_mat4 *c, t_jit_mat4 *a, t_jit_mat4 *b); -void jit_mat4_mult(t_jit_mat4 *c, t_jit_mat4 *a, t_jit_mat4 *b); -void jit_mat4_transpose(t_jit_mat4 *m); -void jit_mat4_get_transpose(t_jit_mat4 *b, t_jit_mat4 *a); -void jit_mat4_get_inverse(t_jit_mat4 *b, t_jit_mat4 *a); -void jit_mat4_get_inverse_rot_trans(t_jit_mat4 *b, t_jit_mat4 *a); -void jit_mat4_identity(t_jit_mat4 *m); -void jit_mat4_look_at(t_jit_mat4 *m, t_jit_vec3 *eye, t_jit_vec3 *center, t_jit_vec3 *up); -void jit_mat4_frustum(t_jit_mat4 *m, float left, float right, float bottom, float top, float near, float far); -void jit_mat4_perspective(t_jit_mat4 *m, float fovy, float aspect, float near, float far); -void jit_mat4_ortho(t_jit_mat4 *m, float left, float right, float bottom, float top, float near, float far); -void jit_mat4_ortho_view(t_jit_mat4 *m, float lens_angle, float aspect, float n, float f); -void jit_mat4_from_quat( t_jit_mat4 *m, t_jit_quat * q); -void jit_mat4_from_axisangle( t_jit_mat4 *m, t_jit_vec3 *v, float theta); -void jit_mat4_from_uv( t_jit_mat4 *m, t_jit_vec3 *u, t_jit_vec3 *v); -void jit_mat4_from_mat3( t_jit_mat4 *m, t_jit_mat3 *r); -void jit_mat3_from_mat4(t_jit_mat3 *r, t_jit_mat4 *m); -void jit_mat4_set_scale( t_jit_mat4 *m, t_jit_vec3 *s); -void jit_mat4_get_scale(t_jit_vec3 *s, t_jit_mat4 *m); -void jit_mat4_set_translation(t_jit_mat4 *m, t_jit_vec3 *t); -void jit_mat4_get_translation(t_jit_vec3 *t, t_jit_mat4 *m); -void jit_mat4_negate(t_jit_mat4 *m); - -// ---------------------------------------------------------------------------- - -float jit_tri_area( t_jit_vec3 *v1, t_jit_vec3 *v2, t_jit_vec3 *v3); -float jit_tri_perimeter( t_jit_vec3 *v1, t_jit_vec3 *v2, t_jit_vec3 *v3); -float jit_tri_find_in_circle(t_jit_vec3 *center, t_jit_vec3 *v1, t_jit_vec3 *v2, t_jit_vec3 *v3); -float jit_tri_find_circ_circle( t_jit_vec3 *center, t_jit_vec3 *v1, t_jit_vec3 *v2, t_jit_vec3 *v3); - -// ---------------------------------------------------------------------------- - -void jit_ray_get_point(t_jit_vec3 *p, t_jit_ray *ray, float t); -long jit_ray_intersects_plane(float *d, t_jit_ray *ray, t_jit_plane *plane); -long jit_ray_intersects_sphere(float *d, t_jit_ray *ray, t_jit_sphere *sphere, long discard_inside); -long jit_ray_intersects_box(float *d, t_jit_ray *ray, t_jit_aabb *box); -long jit_line_intersects_sphere(t_jit_vec3 *p1, t_jit_line *line, t_jit_sphere *sphere); -void jit_line_closest_sphere(t_jit_vec3 *p1, t_jit_line *line, t_jit_sphere *sphere); - -// ---------------------------------------------------------------------------- - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#ifdef __cplusplus -} - -#endif - -#endif diff --git a/source/c74support/jit-includes/jit.wglext.h b/source/c74support/jit-includes/jit.wglext.h deleted file mode 100644 index 9ae06196..00000000 --- a/source/c74support/jit-includes/jit.wglext.h +++ /dev/null @@ -1,615 +0,0 @@ -#ifndef __wglext_h_ -#define __wglext_h_ - -#ifdef _WIN32 - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: -** -** http://oss.sgi.com/projects/FreeB -** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. -** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2002 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. -*/ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -/* Header file version number */ -/* wglext.h last updated 2002/03/22 */ -/* Current version at http://oss.sgi.com/projects/ogl-sample/registry/ */ -#define WGL_WGLEXT_VERSION 4 - -#ifndef WGL_ARB_buffer_region -#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 -#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 -#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 -#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 -#endif - -#ifndef WGL_ARB_multisample -#define WGL_SAMPLE_BUFFERS_ARB 0x2041 -#define WGL_SAMPLES_ARB 0x2042 -#endif - -#ifndef WGL_ARB_extensions_string -#endif - -#ifndef WGL_ARB_pixel_format -#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 -#define WGL_DRAW_TO_WINDOW_ARB 0x2001 -#define WGL_DRAW_TO_BITMAP_ARB 0x2002 -#define WGL_ACCELERATION_ARB 0x2003 -#define WGL_NEED_PALETTE_ARB 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 -#define WGL_SWAP_METHOD_ARB 0x2007 -#define WGL_NUMBER_OVERLAYS_ARB 0x2008 -#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 -#define WGL_TRANSPARENT_ARB 0x200A -#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 -#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 -#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 -#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A -#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B -#define WGL_SHARE_DEPTH_ARB 0x200C -#define WGL_SHARE_STENCIL_ARB 0x200D -#define WGL_SHARE_ACCUM_ARB 0x200E -#define WGL_SUPPORT_GDI_ARB 0x200F -#define WGL_SUPPORT_OPENGL_ARB 0x2010 -#define WGL_DOUBLE_BUFFER_ARB 0x2011 -#define WGL_STEREO_ARB 0x2012 -#define WGL_PIXEL_TYPE_ARB 0x2013 -#define WGL_COLOR_BITS_ARB 0x2014 -#define WGL_RED_BITS_ARB 0x2015 -#define WGL_RED_SHIFT_ARB 0x2016 -#define WGL_GREEN_BITS_ARB 0x2017 -#define WGL_GREEN_SHIFT_ARB 0x2018 -#define WGL_BLUE_BITS_ARB 0x2019 -#define WGL_BLUE_SHIFT_ARB 0x201A -#define WGL_ALPHA_BITS_ARB 0x201B -#define WGL_ALPHA_SHIFT_ARB 0x201C -#define WGL_ACCUM_BITS_ARB 0x201D -#define WGL_ACCUM_RED_BITS_ARB 0x201E -#define WGL_ACCUM_GREEN_BITS_ARB 0x201F -#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 -#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 -#define WGL_DEPTH_BITS_ARB 0x2022 -#define WGL_STENCIL_BITS_ARB 0x2023 -#define WGL_AUX_BUFFERS_ARB 0x2024 -#define WGL_NO_ACCELERATION_ARB 0x2025 -#define WGL_GENERIC_ACCELERATION_ARB 0x2026 -#define WGL_FULL_ACCELERATION_ARB 0x2027 -#define WGL_SWAP_EXCHANGE_ARB 0x2028 -#define WGL_SWAP_COPY_ARB 0x2029 -#define WGL_SWAP_UNDEFINED_ARB 0x202A -#define WGL_TYPE_RGBA_ARB 0x202B -#define WGL_TYPE_COLORINDEX_ARB 0x202C -#endif - -#ifndef WGL_ARB_make_current_read -#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 -#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 -#endif - -#ifndef WGL_ARB_pbuffer -#define WGL_DRAW_TO_PBUFFER_ARB 0x202D -#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E -#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 -#define WGL_PBUFFER_LARGEST_ARB 0x2033 -#define WGL_PBUFFER_WIDTH_ARB 0x2034 -#define WGL_PBUFFER_HEIGHT_ARB 0x2035 -#define WGL_PBUFFER_LOST_ARB 0x2036 -#endif - -#ifndef WGL_ARB_render_texture -#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 -#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 -#define WGL_TEXTURE_FORMAT_ARB 0x2072 -#define WGL_TEXTURE_TARGET_ARB 0x2073 -#define WGL_MIPMAP_TEXTURE_ARB 0x2074 -#define WGL_TEXTURE_RGB_ARB 0x2075 -#define WGL_TEXTURE_RGBA_ARB 0x2076 -#define WGL_NO_TEXTURE_ARB 0x2077 -#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 -#define WGL_TEXTURE_1D_ARB 0x2079 -#define WGL_TEXTURE_2D_ARB 0x207A -#define WGL_MIPMAP_LEVEL_ARB 0x207B -#define WGL_CUBE_MAP_FACE_ARB 0x207C -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 -#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 -#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 -#define WGL_FRONT_LEFT_ARB 0x2083 -#define WGL_FRONT_RIGHT_ARB 0x2084 -#define WGL_BACK_LEFT_ARB 0x2085 -#define WGL_BACK_RIGHT_ARB 0x2086 -#define WGL_AUX0_ARB 0x2087 -#define WGL_AUX1_ARB 0x2088 -#define WGL_AUX2_ARB 0x2089 -#define WGL_AUX3_ARB 0x208A -#define WGL_AUX4_ARB 0x208B -#define WGL_AUX5_ARB 0x208C -#define WGL_AUX6_ARB 0x208D -#define WGL_AUX7_ARB 0x208E -#define WGL_AUX8_ARB 0x208F -#define WGL_AUX9_ARB 0x2090 -#endif - -#ifndef WGL_EXT_make_current_read -#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 -#endif - -#ifndef WGL_EXT_pixel_format -#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000 -#define WGL_DRAW_TO_WINDOW_EXT 0x2001 -#define WGL_DRAW_TO_BITMAP_EXT 0x2002 -#define WGL_ACCELERATION_EXT 0x2003 -#define WGL_NEED_PALETTE_EXT 0x2004 -#define WGL_NEED_SYSTEM_PALETTE_EXT 0x2005 -#define WGL_SWAP_LAYER_BUFFERS_EXT 0x2006 -#define WGL_SWAP_METHOD_EXT 0x2007 -#define WGL_NUMBER_OVERLAYS_EXT 0x2008 -#define WGL_NUMBER_UNDERLAYS_EXT 0x2009 -#define WGL_TRANSPARENT_EXT 0x200A -#define WGL_TRANSPARENT_VALUE_EXT 0x200B -#define WGL_SHARE_DEPTH_EXT 0x200C -#define WGL_SHARE_STENCIL_EXT 0x200D -#define WGL_SHARE_ACCUM_EXT 0x200E -#define WGL_SUPPORT_GDI_EXT 0x200F -#define WGL_SUPPORT_OPENGL_EXT 0x2010 -#define WGL_DOUBLE_BUFFER_EXT 0x2011 -#define WGL_STEREO_EXT 0x2012 -#define WGL_PIXEL_TYPE_EXT 0x2013 -#define WGL_COLOR_BITS_EXT 0x2014 -#define WGL_RED_BITS_EXT 0x2015 -#define WGL_RED_SHIFT_EXT 0x2016 -#define WGL_GREEN_BITS_EXT 0x2017 -#define WGL_GREEN_SHIFT_EXT 0x2018 -#define WGL_BLUE_BITS_EXT 0x2019 -#define WGL_BLUE_SHIFT_EXT 0x201A -#define WGL_ALPHA_BITS_EXT 0x201B -#define WGL_ALPHA_SHIFT_EXT 0x201C -#define WGL_ACCUM_BITS_EXT 0x201D -#define WGL_ACCUM_RED_BITS_EXT 0x201E -#define WGL_ACCUM_GREEN_BITS_EXT 0x201F -#define WGL_ACCUM_BLUE_BITS_EXT 0x2020 -#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021 -#define WGL_DEPTH_BITS_EXT 0x2022 -#define WGL_STENCIL_BITS_EXT 0x2023 -#define WGL_AUX_BUFFERS_EXT 0x2024 -#define WGL_NO_ACCELERATION_EXT 0x2025 -#define WGL_GENERIC_ACCELERATION_EXT 0x2026 -#define WGL_FULL_ACCELERATION_EXT 0x2027 -#define WGL_SWAP_EXCHANGE_EXT 0x2028 -#define WGL_SWAP_COPY_EXT 0x2029 -#define WGL_SWAP_UNDEFINED_EXT 0x202A -#define WGL_TYPE_RGBA_EXT 0x202B -#define WGL_TYPE_COLORINDEX_EXT 0x202C -#endif - -#ifndef WGL_EXT_pbuffer -#define WGL_DRAW_TO_PBUFFER_EXT 0x202D -#define WGL_MAX_PBUFFER_PIXELS_EXT 0x202E -#define WGL_MAX_PBUFFER_WIDTH_EXT 0x202F -#define WGL_MAX_PBUFFER_HEIGHT_EXT 0x2030 -#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT 0x2031 -#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032 -#define WGL_PBUFFER_LARGEST_EXT 0x2033 -#define WGL_PBUFFER_WIDTH_EXT 0x2034 -#define WGL_PBUFFER_HEIGHT_EXT 0x2035 -#endif - -#ifndef WGL_EXT_depth_float -#define WGL_DEPTH_FLOAT_EXT 0x2040 -#endif - -#ifndef WGL_3DFX_multisample -#define WGL_SAMPLE_BUFFERS_3DFX 0x2060 -#define WGL_SAMPLES_3DFX 0x2061 -#endif - -#ifndef WGL_EXT_multisample -#define WGL_SAMPLE_BUFFERS_EXT 0x2041 -#define WGL_SAMPLES_EXT 0x2042 -#endif - -#ifndef WGL_I3D_digital_video_control -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050 -#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051 -#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052 -#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053 -#endif - -#ifndef WGL_I3D_gamma -#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E -#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F -#endif - -#ifndef WGL_I3D_genlock -#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 -#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045 -#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046 -#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047 -#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 -#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 -#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A -#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B -#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C -#endif - -#ifndef WGL_I3D_image_buffer -#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001 -#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002 -#endif - -#ifndef WGL_I3D_swap_frame_lock -#endif - -#ifndef WGL_NV_render_depth_texture -#define WGL_BIND_TO_TEXTURE_DEPTH_NV 0x20A3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4 -#define WGL_DEPTH_TEXTURE_FORMAT_NV 0x20A5 -#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6 -#define WGL_DEPTH_COMPONENT_NV 0x20A7 -#endif - -#ifndef WGL_NV_render_texture_rectangle -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1 -#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 -#endif - -#ifndef WGL_NV_float_buffer -#define WGL_FLOAT_COMPONENTS_NV 0x20B0 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 -#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 -#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 -#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 -#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 -#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 -#endif - - -/*************************************************************/ - -#ifndef WGL_ARB_pbuffer -DECLARE_HANDLE(HPBUFFERARB); -#endif -#ifndef WGL_EXT_pbuffer -DECLARE_HANDLE(HPBUFFEREXT); -#endif - -#ifndef WGL_ARB_buffer_region -#define WGL_ARB_buffer_region 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HANDLE WINAPI wglCreateBufferRegionARB (HDC, int, UINT); -extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE); -extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE, int, int, int, int); -extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE, int, int, int, int, int, int); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType); -typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion); -typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height); -typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); -#endif - -#ifndef WGL_ARB_multisample -#define WGL_ARB_multisample 1 -#endif - -#ifndef WGL_ARB_extensions_string -#define WGL_ARB_extensions_string 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern const char * WINAPI wglGetExtensionsStringARB (HDC); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); -#endif - -#ifndef WGL_ARB_pixel_format -#define WGL_ARB_pixel_format 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC, int, int, UINT, const int *, int *); -extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC, int, int, UINT, const int *, FLOAT *); -extern BOOL WINAPI wglChoosePixelFormatARB (HDC, const int *, const FLOAT *, UINT, int *, UINT *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif - -#ifndef WGL_ARB_make_current_read -#define WGL_ARB_make_current_read 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglMakeContextCurrentARB (HDC, HDC, HGLRC); -extern HDC WINAPI wglGetCurrentReadDCARB (void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void); -#endif - -#ifndef WGL_ARB_pbuffer -#define WGL_ARB_pbuffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC, int, int, int, const int *); -extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB); -extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB, HDC); -extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB); -extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB, int, int *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue); -#endif - -#ifndef WGL_ARB_render_texture -#define WGL_ARB_render_texture 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB, int); -extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB, int); -extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB, const int *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer); -typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList); -#endif - -#ifndef WGL_EXT_display_color_table -#define WGL_EXT_display_color_table 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort); -extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *, GLuint); -extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort); -extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length); -typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id); -typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id); -#endif - -#ifndef WGL_EXT_extensions_string -#define WGL_EXT_extensions_string 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern const char * WINAPI wglGetExtensionsStringEXT (void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); -#endif - -#ifndef WGL_EXT_make_current_read -#define WGL_EXT_make_current_read 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglMakeContextCurrentEXT (HDC, HDC, HGLRC); -extern HDC WINAPI wglGetCurrentReadDCEXT (void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); -typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void); -#endif - -#ifndef WGL_EXT_pbuffer -#define WGL_EXT_pbuffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC, int, int, int, const int *); -extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT); -extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT, HDC); -extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT); -extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT, int, int *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList); -typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer); -typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC); -typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer); -typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue); -#endif - -#ifndef WGL_EXT_pixel_format -#define WGL_EXT_pixel_format 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC, int, int, UINT, int *, int *); -extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC, int, int, UINT, int *, FLOAT *); -extern BOOL WINAPI wglChoosePixelFormatEXT (HDC, const int *, const FLOAT *, UINT, int *, UINT *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues); -typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues); -typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats); -#endif - -#ifndef WGL_EXT_swap_control -#define WGL_EXT_swap_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglSwapIntervalEXT (int); -extern int WINAPI wglGetSwapIntervalEXT (void); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); -typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void); -#endif - -#ifndef WGL_EXT_depth_float -#define WGL_EXT_depth_float 1 -#endif - -#ifndef WGL_NV_vertex_array_range -#define WGL_NV_vertex_array_range 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern void* WINAPI wglAllocateMemoryNV (GLsizei, GLfloat, GLfloat, GLfloat); -extern void WINAPI wglFreeMemoryNV (void *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); -typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); -#endif - -#ifndef WGL_3DFX_multisample -#define WGL_3DFX_multisample 1 -#endif - -#ifndef WGL_EXT_multisample -#define WGL_EXT_multisample 1 -#endif - -#ifndef WGL_OML_sync_control -#define WGL_OML_sync_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetSyncValuesOML (HDC, INT64 *, INT64 *, INT64 *); -extern BOOL WINAPI wglGetMscRateOML (HDC, INT32 *, INT32 *); -extern INT64 WINAPI wglSwapBuffersMscOML (HDC, INT64, INT64, INT64); -extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC, int, INT64, INT64, INT64); -extern BOOL WINAPI wglWaitForMscOML (HDC, INT64, INT64, INT64, INT64 *, INT64 *, INT64 *); -extern BOOL WINAPI wglWaitForSbcOML (HDC, INT64, INT64 *, INT64 *, INT64 *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator); -typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); -typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); -typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc); -#endif - -#ifndef WGL_I3D_digital_video_control -#define WGL_I3D_digital_video_control 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC, int, int *); -extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC, int, const int *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); -typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); -#endif - -#ifndef WGL_I3D_gamma -#define WGL_I3D_gamma 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC, int, int *); -extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC, int, const int *); -extern BOOL WINAPI wglGetGammaTableI3D (HDC, int, USHORT *, USHORT *, USHORT *); -extern BOOL WINAPI wglSetGammaTableI3D (HDC, int, const USHORT *, const USHORT *, const USHORT *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue); -typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue); -typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue); -#endif - -#ifndef WGL_I3D_genlock -#define WGL_I3D_genlock 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglEnableGenlockI3D (HDC); -extern BOOL WINAPI wglDisableGenlockI3D (HDC); -extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC, BOOL *); -extern BOOL WINAPI wglGenlockSourceI3D (HDC, UINT); -extern BOOL WINAPI wglGetGenlockSourceI3D (HDC, UINT *); -extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC, UINT); -extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC, UINT *); -extern BOOL WINAPI wglGenlockSampleRateI3D (HDC, UINT); -extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC, UINT *); -extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC, UINT); -extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC, UINT *); -extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC, UINT *, UINT *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC); -typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge); -typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate); -typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay); -typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay); -typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); -#endif - -#ifndef WGL_I3D_image_buffer -#define WGL_I3D_image_buffer 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern LPVOID WINAPI wglCreateImageBufferI3D (HDC, DWORD, UINT); -extern BOOL WINAPI wglDestroyImageBufferI3D (HDC, LPVOID); -extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC, const HANDLE *, const LPVOID *, const DWORD *, UINT); -extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC, const LPVOID *, UINT); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags); -typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress); -typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count); -typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count); -#endif - -#ifndef WGL_I3D_swap_frame_lock -#define WGL_I3D_swap_frame_lock 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglEnableFrameLockI3D (void); -extern BOOL WINAPI wglDisableFrameLockI3D (void); -extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *); -extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag); -#endif - -#ifndef WGL_I3D_swap_frame_usage -#define WGL_I3D_swap_frame_usage 1 -#ifdef WGL_WGLEXT_PROTOTYPES -extern BOOL WINAPI wglGetFrameUsageI3D (float *); -extern BOOL WINAPI wglBeginFrameTrackingI3D (void); -extern BOOL WINAPI wglEndFrameTrackingI3D (void); -extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *, DWORD *, float *); -#endif /* WGL_WGLEXT_PROTOTYPES */ -typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage); -typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void); -typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); -#endif - - -#ifdef __cplusplus -} -#endif - -#endif // _WIN32 - -#endif diff --git a/source/c74support/jit-includes/jit.window.h b/source/c74support/jit-includes/jit.window.h deleted file mode 100755 index 93e7bfed..00000000 --- a/source/c74support/jit-includes/jit.window.h +++ /dev/null @@ -1,37 +0,0 @@ - -// jit.window.h -// -// author: randall jones -// © 2001 cycling '74 - -#ifndef __JIT_WINDOW_H__ -#define __JIT_WINDOW_H__ - -#include "jit.common.h" - -#ifndef __max_ext_wind_h -#define __max_ext_wind_h - #include "ext_wind.h" -#endif - -// t_jit_window flags -#define JIT_WINDOW_USING_GL 1 << 0 -#define JIT_WINDOW_NO_ACCEL 1 << 1 - -#define MIN_WIND_DIM 9 -#define MAX_WIND_COORD 8192 - - -#ifdef __cplusplus -extern "C" { -#endif - -void jit_window_dragcheck(void *x); -t_jit_err jit_window_init(void); - -#ifdef __cplusplus -} -#endif - - -#endif //__JIT_WINDOW_H__ diff --git a/source/c74support/jit-includes/max.jit.mop.h b/source/c74support/jit-includes/max.jit.mop.h deleted file mode 100755 index 291e7b55..00000000 --- a/source/c74support/jit-includes/max.jit.mop.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - max.jit.mop.h - - Copyright 2001-2005 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#include "jit.common.h" - -#ifndef __MAX_JIT_MOP_H__ -#define __MAX_JIT_MOP_H__ -//flags for greater control -#define MAX_JIT_MOP_FLAGS_NONE 0x00000000 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_ALL 0x0FFFFFFF ///< mop flag @ingroup jitter - -#define MAX_JIT_MOP_FLAGS_OWN_JIT_MATRIX 0x00000001 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_BANG 0x00000002 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_OUTPUTMATRIX 0x00000004 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_NAME 0x00000008 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_TYPE 0x00000010 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_DIM 0x00000020 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_PLANECOUNT 0x00000040 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_CLEAR 0x00000080 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_NOTIFY 0x00000100 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_ADAPT 0x00000200 ///< mop flag @ingroup jitter -#define MAX_JIT_MOP_FLAGS_OWN_OUTPUTMODE 0x00000400 ///< mop flag @ingroup jitter - -#define MAX_JIT_MOP_FLAGS_ONLY_MATRIX_PROBE 0x10000000 ///< mop flag @ingroup jitter - -#define JIT_MOP_INPUT 1 ///< mop flag @ingroup jitter -#define JIT_MOP_OUTPUT 2 ///< mop flag @ingroup jitter - -//outputmode: 0=no output, 1=calc, 2=input(no calc), 3=output(no calc) - -#ifdef __cplusplus -extern "C" { -#endif - -t_jit_err max_jit_classex_mop_wrap(void *mclass, void *jclass, long flags); // legacy api -t_jit_err max_jit_class_mop_wrap(t_class *mclass, t_class *jclass, long flags); // new api -t_jit_err max_jit_classex_mop_mproc(void *mclass, void *jclass, void *mproc); //mproc should be method(void *x, void *mop) -t_jit_err max_jit_object_mop_wrap(t_object *mob, t_object *job, long flags); -t_jit_err max_jit_object_mop_mproc(void *mob, void *job, void *mproc); - -t_jit_err max_jit_mop_setup(void *x); -t_jit_err max_jit_mop_inputs(void *x); -t_jit_err max_jit_mop_inputs_resize(void *x, long count); -t_jit_err max_jit_mop_outputs(void *x); -t_jit_err max_jit_mop_outputs_resize(void *x, long count); -t_jit_err max_jit_mop_matrix_args(void *x, long argc, t_atom *argv); -t_jit_err max_jit_mop_jit_matrix(void *x, t_symbol *s, long argc, t_atom *argv); -t_jit_err max_jit_mop_assist(void *x, void *b, long m, long a, char *s); -t_jit_err max_jit_mop_bang(void *x); -t_jit_err max_jit_mop_outputmatrix(void *x); -t_jit_err max_jit_mop_matrixout_new(void *x, long c); -void max_jit_mop_clear(void *x); -t_jit_err max_jit_mop_notify(void *x, t_symbol *s, t_symbol *msg); -void max_jit_mop_free(void *x); -t_jit_err max_jit_mop_name(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_getname(void *x, void *attr, long *argc, t_atom **argv); -t_jit_err max_jit_mop_type(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_gettype(void *x, void *attr, long *argc, t_atom **argv); -t_jit_err max_jit_mop_dim(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_getdim(void *x, void *attr, long *argc, t_atom **argv); -t_jit_err max_jit_mop_planecount(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_getplanecount(void *x, void *attr, long *argc, t_atom **argv); -t_jit_err max_jit_mop_parse_name(t_symbol *name, long *type, long *idx); -t_jit_err max_jit_mop_restrict_info(void *x, void *p, t_jit_matrix_info *info); -void *max_jit_mop_get_io_by_name(void *x, t_symbol *s); -t_jit_err max_jit_mop_outputmode(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_getoutputmode_attr(void *x, void *attr, long *argc, t_atom **argv); -t_jit_err max_jit_mop_adapt(void *x, void *attr, long argc, t_atom *argv); -t_jit_err max_jit_mop_getadapt(void *x, void *attr, long *argc, t_atom **argv); -void *max_jit_mop_getinput(void *x, long c); -void *max_jit_mop_getoutput(void *x, long c); -long max_jit_mop_getoutputmode(void *x); -void *max_jit_mop_io_getoutlet(void *mop_io); -t_jit_err max_jit_mop_io_setoutlet(void *mop_io, void *o); -void *max_jit_mop_getmproc(void *mop); -t_jit_err max_jit_mop_adapt_matrix_all(void *x, void *y); -t_jit_err max_jit_mop_variable_parse_sym(t_symbol *name, t_symbol **msg, long *set); -t_jit_err max_jit_mop_variable_anything(void *x, t_symbol *s, long argc, t_atom *argv); -t_jit_err max_jit_mop_variable_addinputs(void *x, long c); -t_jit_err max_jit_mop_variable_addoutputs(void *x, long c); - -t_jit_err max_jit_mop_setup_simple(void *x, void *o, long argc, t_atom *argv); -/* max_jit_mop_setup_simple is equivalent to : - - max_jit_obex_jitob_set(x,o); - max_jit_obex_dumpout_set(x,outlet_new(x,NULL)); - max_jit_mop_setup(x); - max_jit_mop_inputs(x); - max_jit_mop_outputs(x); - max_jit_mop_matrix_args(x,argc,argv); - - NOTICE: REMOVED max_jit_attr_args from max_jit_mop_setup_simple - - max_jit_mop_classex_mproc - -*/ - -t_jit_err max_jit_mop_setup_probing(t_class *mclass); - -#ifdef __cplusplus -} -#endif - -#endif //__MAX_JIT_MOP_H__ diff --git a/source/c74support/jit-includes/x64/jitlib.lib b/source/c74support/jit-includes/x64/jitlib.lib deleted file mode 100644 index d25417a6..00000000 Binary files a/source/c74support/jit-includes/x64/jitlib.lib and /dev/null differ diff --git a/source/c74support/max-includes/MaxAPI.framework/MaxAPI b/source/c74support/max-includes/MaxAPI.framework/MaxAPI deleted file mode 120000 index 670944b0..00000000 --- a/source/c74support/max-includes/MaxAPI.framework/MaxAPI +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/MaxAPI \ No newline at end of file diff --git a/source/c74support/max-includes/MaxAPI.framework/Resources b/source/c74support/max-includes/MaxAPI.framework/Resources deleted file mode 120000 index 953ee36f..00000000 --- a/source/c74support/max-includes/MaxAPI.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/source/c74support/max-includes/MaxAPI.framework/Versions/A/MaxAPI b/source/c74support/max-includes/MaxAPI.framework/Versions/A/MaxAPI deleted file mode 100755 index 494806de..00000000 Binary files a/source/c74support/max-includes/MaxAPI.framework/Versions/A/MaxAPI and /dev/null differ diff --git a/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/English.lproj/InfoPlist.strings b/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/English.lproj/InfoPlist.strings deleted file mode 100644 index 00a969b0..00000000 Binary files a/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/Info.plist b/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 79c45c3d..00000000 --- a/source/c74support/max-includes/MaxAPI.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - MaxAPI - CFBundleIconFile - - CFBundleIdentifier - com.cycling74.MaxAPI - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0 - CSResourcesFileMapped - - - diff --git a/source/c74support/max-includes/MaxAPI.framework/Versions/Current b/source/c74support/max-includes/MaxAPI.framework/Versions/Current deleted file mode 120000 index 8c7e5a66..00000000 --- a/source/c74support/max-includes/MaxAPI.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/source/c74support/max-includes/c74_linker_flags.txt b/source/c74support/max-includes/c74_linker_flags.txt deleted file mode 100644 index 7093890a..00000000 --- a/source/c74support/max-includes/c74_linker_flags.txt +++ /dev/null @@ -1 +0,0 @@ - -Wl,-U,_addbang -Wl,-U,_addfloat -Wl,-U,_addftx -Wl,-U,_addint -Wl,-U,_addinx -Wl,-U,_addmess -Wl,-U,_advise -Wl,-U,_advise_explain -Wl,-U,_alias -Wl,-U,_AnyKeyDown -Wl,-U,_appbuilder_keyword -Wl,-U,_appbuilder_register -Wl,-U,_argpad -Wl,-U,_assist_string -Wl,-U,_asyncfile_callback_free -Wl,-U,_asyncfile_callback_new -Wl,-U,_asyncfile_close -Wl,-U,_asyncfile_create -Wl,-U,_asyncfile_geteof -Wl,-U,_asyncfile_params_default -Wl,-U,_asyncfile_params_free -Wl,-U,_asyncfile_params_new -Wl,-U,_asyncfile_read -Wl,-U,_asyncfile_seteof -Wl,-U,_asyncfile_write -Wl,-U,_atom_alloc -Wl,-U,_atom_alloc_array -Wl,-U,_atom_arg_getdouble -Wl,-U,_atom_arg_getfloat -Wl,-U,_atom_arg_getlong -Wl,-U,_atom_arg_getsym -Wl,-U,_atom_dynamic_end -Wl,-U,_atom_dynamic_start -Wl,-U,_atom_equal -Wl,-U,_atom_getatom_array -Wl,-U,_atom_getchar_array -Wl,-U,_atom_getcharfix -Wl,-U,_atom_getdouble_array -Wl,-U,_atom_getfloat -Wl,-U,_atom_getfloat_array -Wl,-U,_atom_getformat -Wl,-U,_atom_getlong -Wl,-U,_atom_getlong_array -Wl,-U,_atom_getobj -Wl,-U,_atom_getobj_array -Wl,-U,_atom_getsym -Wl,-U,_atom_getsym_array -Wl,-U,_atom_gettext -Wl,-U,_atom_gettext_precision -Wl,-U,_atom_gettype -Wl,-U,_atom_setatom_array -Wl,-U,_atom_setattrval -Wl,-U,_atom_setbinbuf -Wl,-U,_atom_setchar_array -Wl,-U,_atom_setdouble_array -Wl,-U,_atom_setfloat -Wl,-U,_atom_setfloat_array -Wl,-U,_atom_setformat -Wl,-U,_atom_setlong -Wl,-U,_atom_setlong_array -Wl,-U,_atom_setobj -Wl,-U,_atom_setobj_array -Wl,-U,_atom_setobjval -Wl,-U,_atom_setparse -Wl,-U,_atom_setsym -Wl,-U,_atom_setsym_array -Wl,-U,_atom_string -Wl,-U,_atombuf_append -Wl,-U,_atombuf_count -Wl,-U,_atombuf_eval -Wl,-U,_atombuf_firstatom -Wl,-U,_atombuf_free -Wl,-U,_atombuf_misc -Wl,-U,_atombuf_new -Wl,-U,_atombuf_next -Wl,-U,_atombuf_prepend -Wl,-U,_atombuf_replace -Wl,-U,_atombuf_replacepoundargs -Wl,-U,_atombuf_save -Wl,-U,_atombuf_set -Wl,-U,_atombuf_subst -Wl,-U,_atombuf_text -Wl,-U,_atombuf_totext -Wl,-U,_atomisatomarray -Wl,-U,_atomisdictionary -Wl,-U,_atomisstring -Wl,-U,_atoms_totext -Wl,-U,_attr_addfilter_clip -Wl,-U,_attr_addfilter_clip_scale -Wl,-U,_attr_addfilterget_clip -Wl,-U,_attr_addfilterget_clip_scale -Wl,-U,_attr_addfilterget_proc -Wl,-U,_attr_addfilterset_clip -Wl,-U,_attr_addfilterset_clip_scale -Wl,-U,_attr_addfilterset_proc -Wl,-U,_attr_args_dictionary -Wl,-U,_attr_args_offset -Wl,-U,_attr_args_process -Wl,-U,_attr_dictionary_process -Wl,-U,_attr_dictionary_check -Wl,-U,_attr_filter_clip_new -Wl,-U,_attr_filter_proc_new -Wl,-U,_attr_offset_array_new -Wl,-U,_attr_offset_new -Wl,-U,_attr_typedfun_set -Wl,-U,_attribute_new -Wl,-U,_attribute_new_atoms -Wl,-U,_attribute_new_attrval -Wl,-U,_attribute_new_binbuf -Wl,-U,_attribute_new_format -Wl,-U,_attribute_new_objval -Wl,-U,_attribute_new_parse -Wl,-U,_auxtable_checksym -Wl,-U,_bangout -Wl,-U,_bf_singlefast -Wl,-U,_binbuf_addtext -Wl,-U,_binbuf_append -Wl,-U,_binbuf_delete -Wl,-U,_binbuf_eval -Wl,-U,_binbuf_getatom -Wl,-U,_binbuf_gethandle -Wl,-U,_binbuf_insert -Wl,-U,_binbuf_inshandle -Wl,-U,_binbuf_make -Wl,-U,_binbuf_new -Wl,-U,_binbuf_read -Wl,-U,_binbuf_set -Wl,-U,_binbuf_text -Wl,-U,_binbuf_totext -Wl,-U,_binbuf_vinsert -Wl,-U,_binbuf_write -Wl,-U,_bitwrap_bell_filter -Wl,-U,_bitwrap_box_filter -Wl,-U,_bitwrap_bspline_filter -Wl,-U,_bitwrap_filter_default -Wl,-U,_bitwrap_filter_filter -Wl,-U,_bitwrap_interp -Wl,-U,_bitwrap_lanczos3_filter -Wl,-U,_bitwrap_mitchell_filter -Wl,-U,_bitwrap_triangle_filter -Wl,-U,_bitwrap_wrap_gworld -Wl,-U,_box_getcolor -Wl,-U,_boxcolor_rgb2index -Wl,-U,_call_method_attrval -Wl,-U,_call_method_binbuf -Wl,-U,_call_method_char -Wl,-U,_call_method_char_array -Wl,-U,_call_method_double -Wl,-U,_call_method_double_array -Wl,-U,_call_method_float -Wl,-U,_call_method_float_array -Wl,-U,_call_method_format -Wl,-U,_call_method_long -Wl,-U,_call_method_long_array -Wl,-U,_call_method_obj -Wl,-U,_call_method_obj_array -Wl,-U,_call_method_objval -Wl,-U,_call_method_parse -Wl,-U,_call_method_sym -Wl,-U,_call_method_sym_array -Wl,-U,_call_method_typed -Wl,-U,_charset_convert -Wl,-U,_charset_utf8tounicode -Wl,-U,_charset_unicodetoutf8 -Wl,-U,_charset_isvalidutf8 -Wl,-U,_charset_utf8_count -Wl,-U,_charset_utf8_offset -Wl,-U,_class_addadornment -Wl,-U,_class_addattr -Wl,-U,_class_addattr_atoms -Wl,-U,_class_addattr_atoms -Wl,-U,_class_addattr_format -Wl,-U,_class_addattr_format -Wl,-U,_class_addattr_parse -Wl,-U,_class_addattr_parse -Wl,-U,_class_addcommand -Wl,-U,_class_addmethod -Wl,-U,_class_addtypedwrapper -Wl,-U,_class_addtransform -Wl,-U,_class_adornment_get -Wl,-U,_class_attr_addattr -Wl,-U,_class_attr_addattr_atoms -Wl,-U,_class_attr_addattr_atoms -Wl,-U,_class_attr_addattr_format -Wl,-U,_class_attr_addattr_format -Wl,-U,_class_attr_addattr_parse -Wl,-U,_class_attr_addattr_parse -Wl,-U,_class_attr_attr_get -Wl,-U,_class_attr_attr_getvalueof -Wl,-U,_class_attr_attr_setvalueof -Wl,-U,_class_attr_get -Wl,-U,_class_attr_method -Wl,-U,_class_buildprototype -Wl,-U,_class_clonable -Wl,-U,_class_cloneprototype -Wl,-U,_class_extra_lookup -Wl,-U,_class_extra_store -Wl,-U,_class_extra_storeflags -Wl,-U,_class_findbyname -Wl,-U,_class_findbyname_casefree -Wl,-U,_class_getifloaded -Wl,-U,_class_getifloaded_casefree -Wl,-U,_class_free -Wl,-U,_class_getmethod_object -Wl,-U,_class_getpath -Wl,-U,_class_is_ui -Wl,-U,_class_is_box -Wl,-U,_class_mess -Wl,-U,_class_method -Wl,-U,_class_nameget -Wl,-U,_class_new -Wl,-U,_class_noinlet -Wl,-U,_class_obexoffset_get -Wl,-U,_class_obexoffset_set -Wl,-U,_class_register -Wl,-U,_class_alias -Wl,-U,_class_copy -Wl,-U,_class_dumpout_wrap -Wl,-U,_class_setname -Wl,-U,_class_namespace_fromsym -Wl,-U,_class_namespace_getclassnames -Wl,-U,_class_setpath -Wl,-U,_class_sticky -Wl,-U,_class_sticky_clear -Wl,-U,_class_typedwrapper_get -Wl,-U,_classname_openhelp -Wl,-U,_classname_openrefpage -Wl,-U,_classname_openquery -Wl,-U,_clock_delay -Wl,-U,_clock_fdelay -Wl,-U,_clock_fdelay2 -Wl,-U,_clock_fset -Wl,-U,_clock_fset2 -Wl,-U,_clock_getextfmt -Wl,-U,_clock_getftime -Wl,-U,_clock_getftime_nocache -Wl,-U,_clock_new -Wl,-U,_clock_new_withscheduler -Wl,-U,_clock_set -Wl,-U,_clock_unset -Wl,-U,_clock_xdelay -Wl,-U,_clock_xset -Wl,-U,_clock_xunset -Wl,-U,_CmdKeyDown -Wl,-U,_compression_compressjson_headless -Wl,-U,_compression_decompressjson_headless -Wl,-U,_connection_client -Wl,-U,_connection_delete -Wl,-U,_connection_send -Wl,-U,_connection_server -Wl,-U,_CopyFromGWorld -Wl,-U,_cpost -Wl,-U,_critical_enter -Wl,-U,_critical_exit -Wl,-U,_critical_free -Wl,-U,_critical_new -Wl,-U,_critical_tryenter -Wl,-U,_crosshatch -Wl,-U,_CtrlKeyDown -Wl,-U,_CurrentOptionKeysDown -Wl,-U,_debug_printf -Wl,-U,_defer -Wl,-U,_defer_front -Wl,-U,_defer_low -Wl,-U,_defer_medium -Wl,-U,_defer_sys_low -Wl,-U,_defvolume -Wl,-U,_dialog_setkey -Wl,-U,_dictionary_appendatom -Wl,-U,_dictionary_appendatomarray -Wl,-U,_dictionary_appendatoms -Wl,-U,_dictionary_appendatoms_flags -Wl,-U,_dictionary_appendattribute -Wl,-U,_dictionary_appendbinbuf -Wl,-U,_dictionary_appenddictionary -Wl,-U,_dictionary_appendfloat -Wl,-U,_dictionary_appendlong -Wl,-U,_dictionary_appendobject -Wl,-U,_dictionary_appendobject_flags -Wl,-U,_dictionary_appendstring -Wl,-U,_dictionary_appendsym -Wl,-U,_dictionary_chuckentry -Wl,-U,_dictionary_clear -Wl,-U,_dictionary_copyatoms -Wl,-U,_dictionary_copydefatoms -Wl,-U,_dictionary_copyentries -Wl,-U,_dictionary_copyunique -Wl,-U,_dictionary_deleteentry -Wl,-U,_dictionary_dump -Wl,-U,_dictionary_entry_getkey -Wl,-U,_dictionary_entry_getvalue -Wl,-U,_dictionary_entry_getvalues -Wl,-U,_dictionary_entryisatomarray -Wl,-U,_dictionary_entryisdictionary -Wl,-U,_dictionary_entryisstring -Wl,-U,_dictionary_freekeys -Wl,-U,_dictionary_funall -Wl,-U,_dictionary_getatom -Wl,-U,_dictionary_getatomarray -Wl,-U,_dictionary_getatoms -Wl,-U,_dictionary_getatoms_ext -Wl,-U,_dictionary_getattribute -Wl,-U,_dictionary_getdefatom -Wl,-U,_dictionary_getdefatoms -Wl,-U,_dictionary_getdeffloat -Wl,-U,_dictionary_getdeflong -Wl,-U,_dictionary_getdefstring -Wl,-U,_dictionary_getdefsym -Wl,-U,_dictionary_getdictionary -Wl,-U,_dictionary_getentrycount -Wl,-U,_dictionary_getfloat -Wl,-U,_dictionary_getkeys -Wl,-U,_dictionary_getkeys_ordered -Wl,-U,_dictionary_getlong -Wl,-U,_dictionary_getobject -Wl,-U,_dictionary_getstring -Wl,-U,_dictionary_getsym -Wl,-U,_dictionary_get_ex -Wl,-U,_dictionary_hasentry -Wl,-U,_dictionary_new -Wl,-U,_dictionary_prototypefromclass -Wl,-U,_dictionary_read -Wl,-U,_dictionary_sprintf -Wl,-U,_dictionary_write -Wl,-U,_dictobj_register -Wl,-U,_dictobj_unregister -Wl,-U,_dictobj_findregistered_clone -Wl,-U,_dictobj_findregistered_retain -Wl,-U,_dictobj_release -Wl,-U,_dictobj_namefromptr -Wl,-U,_dictobj_outlet_atoms -Wl,-U,_dictobj_atom_safety -Wl,-U,_dictobj_atom_safety_flags -Wl,-U,_dictobj_atom_release -Wl,-U,_dictobj_validate -Wl,-U,_dictobj_jsonfromstring -Wl,-U,_dictobj_dictionaryfromstring -Wl,-U,_dictobj_dictionaryfromatoms -Wl,-U,_dictobj_dictionaryfromatoms_extended -Wl,-U,_dictobj_dictionarytoatoms -Wl,-U,_dictobj_key_parse -Wl,-U,_dictobj_modify -Wl,-U,_dictobj_convertatoms -Wl,-U,_dictobj_atomtotype -Wl,-U,_dictobj_outlet_atoms_prefix -Wl,-U,_disposhandle -Wl,-U,_drawstr -Wl,-U,_ed_new -Wl,-U,_ed_settext -Wl,-U,_ed_vis -Wl,-U,_egetfn -Wl,-U,_error -Wl,-U,_error_subscribe -Wl,-U,_error_sym -Wl,-U,_error_unsubscribe -Wl,-U,_errorcount_get -Wl,-U,_errorcount_set -Wl,-U,_evnum_get -Wl,-U,_evnum_incr -Wl,-U,_expr_eval -Wl,-U,_expr_new -Wl,-U,_fileformat_filetype -Wl,-U,_fileformat_installsniffer -Wl,-U,_fileformat_sniff -Wl,-U,_fileformat_sniffdata -Wl,-U,_fileformat_stripsuffix -Wl,-U,_fileformat_typesuffix -Wl,-U,_fileformat_suffixtotype -Wl,-U,_fileformat_suffix -Wl,-U,_fileformat_divide -Wl,-U,_filekind_getfiletypes -Wl,-U,_filekind_getname -Wl,-U,_filekind_nametoicon -Wl,-U,_fileload -Wl,-U,_fileload_extended -Wl,-U,_fileload_type -Wl,-U,_fileusage_addfile -Wl,-U,_fileusage_addfilename -Wl,-U,_fileusage_addpackage -Wl,-U,_fileusage_addpathname -Wl,-U,_fileusage_copyfolder -Wl,-U,_fileusage_makefolder -Wl,-U,_fileusage_addfolder -Wl,-U,_filewatcher_new -Wl,-U,_filewatcher_start -Wl,-U,_filewatcher_stop -Wl,-U,_finder_addclass -Wl,-U,_floatin -Wl,-U,_floatout -Wl,-U,_fontinfo_getname -Wl,-U,_fontinfo_getnumber -Wl,-U,_fontinfo_getsize -Wl,-U,_fontmap_getmapping -Wl,-U,_force_install -Wl,-U,_freebytes -Wl,-U,_freeobject -Wl,-U,_gensym -Wl,-U,_gensym_tr -Wl,-U,_getbytes -Wl,-U,_getexttime -Wl,-U,_getfn -Wl,-U,_getfolder -Wl,-U,_getschedtime -Wl,-U,_gettime -Wl,-U,_gettime_forobject -Wl,-U,_globalmouse_addlistener -Wl,-U,_globalmouse_removelistener -Wl,-U,_globalsymbol_reference -Wl,-U,_globalsymbol_dereference -Wl,-U,_globalsymbol_bind -Wl,-U,_globalsymbol_unbind -Wl,-U,_globalsymbol_notify -Wl,-U,_growhandle -Wl,-U,_GWorldFromPict -Wl,-U,_handle2tempfile -Wl,-U,_hashtab_chuck -Wl,-U,_hashtab_chuckkey -Wl,-U,_hashtab_clear -Wl,-U,_hashtab_delete -Wl,-U,_hashtab_findfirst -Wl,-U,_hashtab_flags -Wl,-U,_hashtab_funall -Wl,-U,_hashtab_getflags -Wl,-U,_hashtab_getkeyflags -Wl,-U,_hashtab_getkeys -Wl,-U,_hashtab_getsize -Wl,-U,_hashtab_keyflags -Wl,-U,_hashtab_lookup -Wl,-U,_hashtab_lookupentry -Wl,-U,_hashtab_lookupflags -Wl,-U,_hashtab_lookuplong -Wl,-U,_hashtab_lookupsym -Wl,-U,_hashtab_methodall -Wl,-U,_hashtab_methodall_imp -Wl,-U,_hashtab_new -Wl,-U,_hashtab_objfunall -Wl,-U,_hashtab_print -Wl,-U,_hashtab_readonly -Wl,-U,_hashtab_store -Wl,-U,_hashtab_store_safe -Wl,-U,_hashtab_storeflags -Wl,-U,_hashtab_storelong -Wl,-U,_hashtab_storesym -Wl,-U,_helpstring -Wl,-U,_inisr_set -Wl,-U,_inlet_append -Wl,-U,_inlet_insert_after -Wl,-U,_inlet_count -Wl,-U,_inlet_new -Wl,-U,_inlet_nth -Wl,-U,_inlet_to -Wl,-U,_inlet4 -Wl,-U,_inspector_open -Wl,-U,_intin -Wl,-U,_intload -Wl,-U,_intout -Wl,-U,_IsKeyDown -Wl,-U,_isbpatcher -Wl,-U,_isnewex -Wl,-U,_ispatcher -Wl,-U,_isr -Wl,-U,_isr_set -Wl,-U,_linklist_append -Wl,-U,_linklist_chuck -Wl,-U,_linklist_chuckindex -Wl,-U,_linklist_chuckptr -Wl,-U,_linklist_clear -Wl,-U,_linklist_deleteindex -Wl,-U,_linklist_findall -Wl,-U,_linklist_findfirst -Wl,-U,_linklist_flags -Wl,-U,_linklist_funall -Wl,-U,_linklist_funall_break -Wl,-U,_linklist_funindex -Wl,-U,_linklist_getflags -Wl,-U,_linklist_getindex -Wl,-U,_linklist_getsize -Wl,-U,_linklist_insert_sorted -Wl,-U,_linklist_insertafterobjptr -Wl,-U,_linklist_insertbeforeobjptr -Wl,-U,_linklist_insertindex -Wl,-U,_linklist_last -Wl,-U,_linklist_makearray -Wl,-U,_linklist_methodall -Wl,-U,_linklist_methodall_imp -Wl,-U,_linklist_methodindex -Wl,-U,_linklist_methodindex_imp -Wl,-U,_linklist_moveafterobjptr -Wl,-U,_linklist_movebeforeobjptr -Wl,-U,_linklist_new -Wl,-U,_linklist_next -Wl,-U,_linklist_objptr2index -Wl,-U,_linklist_prev -Wl,-U,_linklist_readonly -Wl,-U,_linklist_reverse -Wl,-U,_linklist_rotate -Wl,-U,_linklist_shuffle -Wl,-U,_linklist_sort -Wl,-U,_linklist_substitute -Wl,-U,_linklist_swap -Wl,-U,_linklist_match -Wl,-U,_linklist_chuckobject -Wl,-U,_linklist_deleteobject -Wl,-U,_linklist_prune -Wl,-U,_listout -Wl,-U,_loadbang_dequeue -Wl,-U,_loadbang_queueobject -Wl,-U,_loadbang_resume -Wl,-U,_loadbang_suspend -Wl,-U,_loader_setpath -Wl,-U,_locatefile -Wl,-U,_locatefile_extended -Wl,-U,_locatefilelist -Wl,-U,_locatefiletype -Wl,-U,_lockout_set -Wl,-U,_lowload_jpatcher_frombuffer -Wl,-U,_lowload_jpatcher_frombuffer_withobexprototype -Wl,-U,_lowload_jpatcher_fromamxd_data -Wl,-U,_loader_loadamxd_tohandle -Wl,-U,_maxversion -Wl,-U,_max_unicodekeydown -Wl,-U,_max_unicodekeyup -Wl,-U,_maxcache_getpath -Wl,-U,_maxcache_checkfile -Wl,-U,_maxcache_usefile -Wl,-U,_maxdb_search -Wl,-U,_maxdb_search_sprintf -Wl,-U,_maxdb_tag -Wl,-U,_maxdb_filter -Wl,-U,_maxdb_getstate -Wl,-U,_maxdb_query -Wl,-U,_maxdb_query_direct -Wl,-U,_mayquote -Wl,-U,_method_false -Wl,-U,_method_object_free -Wl,-U,_method_object_getmesslist -Wl,-U,_method_object_getmethod -Wl,-U,_method_object_getname -Wl,-U,_method_object_new -Wl,-U,_method_object_new_messlist -Wl,-U,_method_object_setmesslist -Wl,-U,_method_object_setmethod -Wl,-U,_method_object_setname -Wl,-U,_method_true -Wl,-U,_mfl_idle -Wl,-U,_mfl_init -Wl,-U,_path_mfl_getapppath -Wl,-U,_movecursor -Wl,-U,_namedpipeconnection_isconnected -Wl,-U,_nameinpath -Wl,-U,_nameload -Wl,-U,_nameload_unique -Wl,-U,_nameload_unique_internal -Wl,-U,_nametab_filename -Wl,-U,_nametab_getmatches -Wl,-U,_newex_knows -Wl,-U,_newhandle -Wl,-U,_newinstance -Wl,-U,_newobject -Wl,-U,_newobject_fromdictionary -Wl,-U,_newobject_fromboxtext -Wl,-U,_newobject_sprintf -Wl,-U,_noloadbangdisable_get -Wl,-U,_noloadbangdisable_set -Wl,-U,_notify_free -Wl,-U,_nullfn -Wl,-U,_object_addattr -Wl,-U,_object_addattr_atoms -Wl,-U,_object_addattr_atoms -Wl,-U,_object_addattr_format -Wl,-U,_object_addattr_format -Wl,-U,_object_addattr_parse -Wl,-U,_object_addattr_parse -Wl,-U,_object_addmethod -Wl,-U,_object_alloc -Wl,-U,_object_attach -Wl,-U,_object_attach_byptr -Wl,-U,_object_attach_byptr_register -Wl,-U,_object_attr_addattr -Wl,-U,_object_attr_addattr_atoms -Wl,-U,_object_attr_addattr_atoms -Wl,-U,_object_attr_addattr_format -Wl,-U,_object_attr_addattr_format -Wl,-U,_object_attr_addattr_parse -Wl,-U,_object_attr_addattr_parse -Wl,-U,_object_attr_attr_get -Wl,-U,_object_attr_attr_getvalueof -Wl,-U,_object_attr_attr_setvalueof -Wl,-U,_object_attr_enforcelocal -Wl,-U,_object_attr_get -Wl,-U,_object_attr_getchar -Wl,-U,_object_attr_getchar_array -Wl,-U,_object_attr_getdisabled -Wl,-U,_object_attr_getdouble_array -Wl,-U,_object_attr_getdump -Wl,-U,_object_attr_getfloat -Wl,-U,_object_attr_getfloat_array -Wl,-U,_object_attr_getlong -Wl,-U,_object_attr_getlong_array -Wl,-U,_object_attr_getnames -Wl,-U,_object_attr_getobj -Wl,-U,_object_attr_getsym -Wl,-U,_object_attr_getsym_array -Wl,-U,_object_attr_getvalueof -Wl,-U,_object_attr_method -Wl,-U,_object_attr_setattrval -Wl,-U,_object_attr_setbinbuf -Wl,-U,_object_attr_setchar -Wl,-U,_object_attr_setchar_array -Wl,-U,_object_attr_setdisabled -Wl,-U,_object_attr_setdouble_array -Wl,-U,_object_attr_setfloat -Wl,-U,_object_attr_setfloat_array -Wl,-U,_object_attr_setformat -Wl,-U,_object_attr_setlong -Wl,-U,_object_attr_setlong_array -Wl,-U,_object_attr_setobj -Wl,-U,_object_attr_setobjval -Wl,-U,_object_attr_setparse -Wl,-U,_object_attr_setsym -Wl,-U,_object_attr_setsym_array -Wl,-U,_object_attr_setvalueof -Wl,-U,_object_attr_usercanget -Wl,-U,_object_attr_usercanset -Wl,-U,_object_attr_getdirty -Wl,-U,_object_attrhash_apply -Wl,-U,_object_bug -Wl,-U,_object_chuckattr -Wl,-U,_object_chuckmethod -Wl,-U,_object_class -Wl,-U,_object_classname -Wl,-U,_object_namespace -Wl,-U,_class_namespace -Wl,-U,_object_classname_compare -Wl,-U,_object_clonable -Wl,-U,_object_clone -Wl,-U,_object_clone_generic -Wl,-U,_object_commandenabled -Wl,-U,_object_deleteattr -Wl,-U,_object_deletemethod -Wl,-U,_object_detach -Wl,-U,_object_detach_byptr -Wl,-U,_object_dictionary_fromnewargs -Wl,-U,_object_dictionaryarg -Wl,-U,_object_error -Wl,-U,_object_error_obtrusive -Wl,-U,_jpatcher_error_obtrusive -Wl,-U,_object_findregistered -Wl,-U,_object_findregisteredbyptr -Wl,-U,_object_free -Wl,-U,_object_getcommand -Wl,-U,_object_getenabler -Wl,-U,_object_getmethod -Wl,-U,_object_getmethod_object -Wl,-U,_object_getvalueof -Wl,-U,_object_getvalueof_ext -Wl,-U,_object_handlecommand -Wl,-U,_object_inspect -Wl,-U,_object_mess -Wl,-U,_object_method -Wl,-U,_object_method_imp -Wl,-U,_object_method_attrval -Wl,-U,_object_method_binbuf -Wl,-U,_object_method_char -Wl,-U,_object_method_char_array -Wl,-U,_object_method_double -Wl,-U,_object_method_double_array -Wl,-U,_object_method_float -Wl,-U,_object_method_float_array -Wl,-U,_object_method_format -Wl,-U,_object_method_long -Wl,-U,_object_method_long_array -Wl,-U,_object_method_obj -Wl,-U,_object_method_obj_array -Wl,-U,_object_method_objval -Wl,-U,_object_method_parse -Wl,-U,_object_method_sym -Wl,-U,_object_method_sym_array -Wl,-U,_object_method_typed -Wl,-U,_object_method_typedfun -Wl,-U,_object_new -Wl,-U,_object_new_imp -Wl,-U,_object_new_attrval -Wl,-U,_object_new_binbuf -Wl,-U,_object_new_format -Wl,-U,_object_new_objval -Wl,-U,_object_new_parse -Wl,-U,_object_new_typed -Wl,-U,_object_notify -Wl,-U,_object_obex_dumpout -Wl,-U,_object_obex_free -Wl,-U,_object_obex_get -Wl,-U,_object_obex_lookup -Wl,-U,_object_obex_lookuplong -Wl,-U,_object_obex_lookupsym -Wl,-U,_object_obex_quickref -Wl,-U,_object_obex_set -Wl,-U,_object_obex_store -Wl,-U,_object_obex_storelong -Wl,-U,_object_obex_storesym -Wl,-U,_object_post -Wl,-U,_object_poststring -Wl,-U,_object_refpage_get_class_info -Wl,-U,_object_refpage_get_class_info_fromclassname -Wl,-U,_object_refpage_method_is_undocumented -Wl,-U,_object_refpage_method_is_groupreference -Wl,-U,_object_register -Wl,-U,_object_register_unique -Wl,-U,_object_replaceargs -Wl,-U,_object_reveal -Wl,-U,_object_setvalueof -Wl,-U,_object_setvalueof_ext -Wl,-U,_object_show -Wl,-U,_object_sticky -Wl,-U,_object_sticky_clear -Wl,-U,_object_subpatcher -Wl,-U,_object_unregister -Wl,-U,_object_warn -Wl,-U,_object_zero -Wl,-U,_object_isnogood -Wl,-U,_onecopy_fileload -Wl,-U,_open_dialog -Wl,-U,_open_messageset -Wl,-U,_open_promptset -Wl,-U,_OptionKeyDown -Wl,-U,_ouchstring -Wl,-U,_outlet_add -Wl,-U,_outlet_addmonitor -Wl,-U,_outlet_anything -Wl,-U,_outlet_append -Wl,-U,_outlet_insert_after -Wl,-U,_outlet_atoms -Wl,-U,_outlet_bang -Wl,-U,_outlet_canadd -Wl,-U,_outlet_count -Wl,-U,_outlet_float -Wl,-U,_outlet_int -Wl,-U,_outlet_list -Wl,-U,_outlet_msg -Wl,-U,_outlet_new -Wl,-U,_outlet_notify -Wl,-U,_outlet_nth -Wl,-U,_outlet_removemonitor -Wl,-U,_outlet_rm -Wl,-U,_packages_getpackagepath -Wl,-U,_packages_createsubpathlist -Wl,-U,_packages_getsubpathcontents -Wl,-U,_palette_getcolor -Wl,-U,_patcher_eachdo -Wl,-U,_path_addnamed -Wl,-U,_path_addpath -Wl,-U,_path_build -Wl,-U,_path_closefolder -Wl,-U,_path_copyfile -Wl,-U,_path_copyfolder -Wl,-U,_path_copytotempfile -Wl,-U,_path_createfolder -Wl,-U,_path_createressysfile -Wl,-U,_path_createsysfile -Wl,-U,_path_deletefile -Wl,-U,_path_tempfolder -Wl,-U,_path_desktopfolder -Wl,-U,_path_userdocfolder -Wl,-U,_path_usermaxfolder -Wl,-U,_path_extendedfileinfo -Wl,-U,_path_fileinfo -Wl,-U,_path_fileisresource -Wl,-U,_path_foldernextfile -Wl,-U,_path_frompathname -Wl,-U,_path_fromunicodepathname -Wl,-U,_path_toabsolutesystempath -Wl,-U,_path_absolutepath -Wl,-U,_path_getapppath -Wl,-U,_path_getdefault -Wl,-U,_path_getfilecreationdate -Wl,-U,_path_getfilemoddate -Wl,-U,_path_getmoddate -Wl,-U,_path_getname -Wl,-U,_path_getnext -Wl,-U,_path_getpath -Wl,-U,_path_getprefstring -Wl,-U,_path_getseparator -Wl,-U,_path_getstyle -Wl,-U,_path_getsupportpath -Wl,-U,_path_infoforopensysfile -Wl,-U,_path_nameconform -Wl,-U,_path_nameinpath -Wl,-U,_path_nameisrelative -Wl,-U,_path_openfolder -Wl,-U,_path_openresfile -Wl,-U,_path_openressysfile -Wl,-U,_path_opensysfile -Wl,-U,_path_removefromlist -Wl,-U,_path_removepath -Wl,-U,_path_renamefile -Wl,-U,_path_resolvefile -Wl,-U,_path_setdefault -Wl,-U,_path_setfileinfo -Wl,-U,_path_setpermanent -Wl,-U,_path_setprefstring -Wl,-U,_path_sysnameinpath -Wl,-U,_path_collpathnamefrompath -Wl,-U,_path_topathname -Wl,-U,_path_topotentialname -Wl,-U,_path_topotentialunicodename -Wl,-U,_path_frompotentialpathname -Wl,-U,_path_splitnames -Wl,-U,_path_usermaxfolder -Wl,-U,_path_addfiles -Wl,-U,_path_addfolders -Wl,-U,_path_removefiles -Wl,-U,_path_exists -Wl,-U,_path_inpath -Wl,-U,_plug_free -Wl,-U,_plug_init -Wl,-U,_plug_setloopfun -Wl,-U,_popup_free -Wl,-U,_popup_new -Wl,-U,_popup_show -Wl,-U,_post -Wl,-U,_post_displayrecent -Wl,-U,_post_getpos -Wl,-U,_post_sym -Wl,-U,_postatom -Wl,-U,_postdictionary -Wl,-U,_poststring -Wl,-U,_preferences_class_define -Wl,-U,_preferences_class_defineoption -Wl,-U,_preferences_define -Wl,-U,_preferences_defineoption -Wl,-U,_preferences_getatomforkey -Wl,-U,_preferences_getatoms -Wl,-U,_preferences_getchar -Wl,-U,_preferences_getlong -Wl,-U,_preferences_getsym -Wl,-U,_preferences_path -Wl,-U,_preferences_readdictionary -Wl,-U,_preferences_setatoms -Wl,-U,_preferences_setchar -Wl,-U,_preferences_setlong -Wl,-U,_preferences_setsym -Wl,-U,_preferences_subpath -Wl,-U,_preferences_writedictionary -Wl,-U,_preset_int -Wl,-U,_preset_set -Wl,-U,_preset_store -Wl,-U,_proxy_getinlet -Wl,-U,_proxy_new -Wl,-U,_qelem_free -Wl,-U,_qelem_front -Wl,-U,_qelem_idlefree -Wl,-U,_qelem_idlefront -Wl,-U,_qelem_idleset -Wl,-U,_qelem_idleunset -Wl,-U,_qelem_new -Wl,-U,_qelem_set -Wl,-U,_qelem_unset -Wl,-U,_quotestring -Wl,-U,_versioncmp -Wl,-U,_versioncanparse -Wl,-U,_qti_extra_flags_get -Wl,-U,_qti_extra_flags_set -Wl,-U,_qti_extra_free -Wl,-U,_qti_extra_matrix_get -Wl,-U,_qti_extra_matrix_set -Wl,-U,_qti_extra_new -Wl,-U,_qti_extra_pixelformat_get -Wl,-U,_qti_extra_pixelformat_set -Wl,-U,_qti_extra_rect_get -Wl,-U,_qti_extra_rect_set -Wl,-U,_qti_extra_scalemode_get -Wl,-U,_qti_extra_scalemode_set -Wl,-U,_qti_extra_time_get -Wl,-U,_qti_extra_time_set -Wl,-U,_qtimage_getrect -Wl,-U,_qtimage_open -Wl,-U,_quickmap_add -Wl,-U,_quickmap_drop -Wl,-U,_quickmap_lookup_key1 -Wl,-U,_quickmap_lookup_key2 -Wl,-U,_quickmap_readonly -Wl,-U,_quickmap_new -Wl,-U,_quittask_install -Wl,-U,_quittask_remove -Wl,-U,_quittask_remove2 -Wl,-U,_readatom -Wl,-U,_readatom_flags -Wl,-U,_readtohandle -Wl,-U,_recent_add -Wl,-U,_recent_getlist -Wl,-U,_recent_project_getlist -Wl,-U,_reg_object_namespace_lookup -Wl,-U,_rerand -Wl,-U,_saveas_autoextension -Wl,-U,_saveas_dialog -Wl,-U,_saveas_messageset -Wl,-U,_saveas_promptset -Wl,-U,_saveas_setselectedtype -Wl,-U,_saveasdialog_extended -Wl,-U,_saveasdialog_pathset -Wl,-U,_sched_idledequeue -Wl,-U,_sched_isinpoll -Wl,-U,_sched_isinqueue -Wl,-U,_sched_resume -Wl,-U,_sched_set_takeover -Wl,-U,_sched_setpollthrottle -Wl,-U,_sched_setqueuethrottle -Wl,-U,_sched_suspend -Wl,-U,_schedule -Wl,-U,_schedule_defer -Wl,-U,_schedule_delay -Wl,-U,_schedule_fdefer -Wl,-U,_schedule_fdelay -Wl,-U,_schedulef -Wl,-U,_scheduler_gettime -Wl,-U,_scheduler_new -Wl,-U,_scheduler_run -Wl,-U,_scheduler_get -Wl,-U,_scheduler_set -Wl,-U,_scheduler_settime -Wl,-U,_scheduler_setaudioschedulertime -Wl,-U,_scheduler_getaudioschedulertime -Wl,-U,_scheduler_fromobject -Wl,-U,_scheduler_shift -Wl,-U,_serialno -Wl,-U,_setclock_delay -Wl,-U,_setclock_fdelay -Wl,-U,_setclock_fgettime -Wl,-U,_setclock_getftime -Wl,-U,_setclock_gettime -Wl,-U,_setclock_unset -Wl,-U,_setup -Wl,-U,_ShiftKeyDown -Wl,-U,_simpleprefs_dictionary -Wl,-U,_sndfile_info -Wl,-U,_sndfile_writeheader -Wl,-U,_sprintf -Wl,-U,_sscanf -Wl,-U,_sprintf_tr -Wl,-U,_stdinletinfo -Wl,-U,_stdlist -Wl,-U,_str_tr -Wl,-U,_string_getptr -Wl,-U,_string_new -Wl,-U,_string_reserve -Wl,-U,_string_append -Wl,-U,_string_chop -Wl,-U,_stringload -Wl,-U,_strncpy_zero -Wl,-U,_snprintf_zero -Wl,-U,_strncat_zero -Wl,-U,_symbol_tr -Wl,-U,_symbol_unique -Wl,-U,_symbolarray_sort -Wl,-U,_symobject_new -Wl,-U,_symobject_linklist_match -Wl,-U,_sysdateformat_strftimetodatetime -Wl,-U,_sysdateformat_formatdatetime -Wl,-U,_sysfile_close -Wl,-U,_sysfile_geteof -Wl,-U,_sysfile_getpos -Wl,-U,_sysfile_openhandle -Wl,-U,_sysfile_openptrsize -Wl,-U,_sysfile_read -Wl,-U,_sysfile_readtextfile -Wl,-U,_sysfile_readtohandle -Wl,-U,_sysfile_readtoptr -Wl,-U,_sysfile_seteof -Wl,-U,_sysfile_setobject -Wl,-U,_sysfile_setpos -Wl,-U,_sysfile_spoolcopy -Wl,-U,_sysfile_write -Wl,-U,_sysfile_writetextfile -Wl,-U,_sysmem_copyptr -Wl,-U,_sysmem_freehandle -Wl,-U,_sysmem_freeptr -Wl,-U,_sysmem_handlesize -Wl,-U,_sysmem_lockhandle -Wl,-U,_sysmem_newhandle -Wl,-U,_sysmem_newhandleclear -Wl,-U,_sysmem_newptr -Wl,-U,_sysmem_newptrclear -Wl,-U,_sysmem_nullterminatehandle -Wl,-U,_sysmem_ptrandhand -Wl,-U,_sysmem_ptrbeforehand -Wl,-U,_sysmem_ptrsize -Wl,-U,_sysmem_resizehandle -Wl,-U,_sysmem_resizeptr -Wl,-U,_sysmem_resizeptrclear -Wl,-U,_sysmenu_appenditem -Wl,-U,_sysmenu_appendrawitem -Wl,-U,_sysmenu_appendseparator -Wl,-U,_sysmenu_assignsubmenu -Wl,-U,_sysmenu_checkitem -Wl,-U,_sysmenu_cmdid_popup -Wl,-U,_sysmenu_cmdid_set -Wl,-U,_sysmenu_copyitems -Wl,-U,_sysmenu_deleteallitems -Wl,-U,_sysmenu_deleteitem -Wl,-U,_sysmenu_dispose -Wl,-U,_sysmenu_getcheck -Wl,-U,_sysmenu_gethelp -Wl,-U,_sysmenu_getid -Wl,-U,_sysmenu_gettext -Wl,-U,_sysmenu_gettitle -Wl,-U,_sysmenu_insert -Wl,-U,_sysmenu_insertsubmenu -Wl,-U,_sysmenu_itemcount -Wl,-U,_sysmenu_new -Wl,-U,_sysmenu_setitem -Wl,-U,_sysmenu_setreference -Wl,-U,_sysmenu_setshortcut -Wl,-U,_sysmenu_settext -Wl,-U,_sysmidi_createport -Wl,-U,_sysmidi_deletemarked -Wl,-U,_sysmidi_enqbigpacket -Wl,-U,_sysmidi_getinstance -Wl,-U,_sysmidi_idtoport -Wl,-U,_sysmidi_indextoname -Wl,-U,_sysmidi_iterate -Wl,-U,_sysmidi_numinports -Wl,-U,_sysmidi_numoutports -Wl,-U,_sysmidi_uniqueid -Wl,-U,_sysmidi_data1toport -Wl,-U,_sysmidi_nametoport -Wl,-U,_sysparallel_processorcount -Wl,-U,_sysparallel_physical_processorcount -Wl,-U,_sysparallel_task_benchprint -Wl,-U,_sysparallel_task_cancel -Wl,-U,_sysparallel_task_data -Wl,-U,_sysparallel_task_execute -Wl,-U,_sysparallel_task_free -Wl,-U,_sysparallel_task_new -Wl,-U,_sysparallel_task_workerproc -Wl,-U,_sysparallel_worker_execute -Wl,-U,_sysparallel_worker_free -Wl,-U,_sysparallel_worker_new -Wl,-U,_systhread_cond_broadcast -Wl,-U,_systhread_cond_free -Wl,-U,_systhread_cond_new -Wl,-U,_systhread_cond_signal -Wl,-U,_systhread_cond_wait -Wl,-U,_systhread_create -Wl,-U,_systhread_exit -Wl,-U,_systhread_getspecific -Wl,-U,_systhread_ismainthread -Wl,-U,_systhread_istimerthread -Wl,-U,_systhread_isaudiothread -Wl,-U,_systhread_set_name -Wl,-U,_systhread_markasaudiothread_begin -Wl,-U,_systhread_markasaudiothread_end -Wl,-U,_systhread_join -Wl,-U,_systhread_detach -Wl,-U,_systhread_mutex_free -Wl,-U,_systhread_mutex_lock -Wl,-U,_systhread_mutex_new -Wl,-U,_systhread_mutex_newlock -Wl,-U,_systhread_mutex_trylock -Wl,-U,_systhread_mutex_unlock -Wl,-U,_systhread_rwlock_new -Wl,-U,_systhread_rwlock_free -Wl,-U,_systhread_rwlock_rdlock -Wl,-U,_systhread_rwlock_tryrdlock -Wl,-U,_systhread_rwlock_rdunlock -Wl,-U,_systhread_rwlock_wrlock -Wl,-U,_systhread_rwlock_trywrlock -Wl,-U,_systhread_rwlock_wrunlock -Wl,-U,_systhread_rwlock_setspintime -Wl,-U,_systhread_rwlock_getspintime -Wl,-U,_systhread_key_create -Wl,-U,_systhread_key_delete -Wl,-U,_systhread_self -Wl,-U,_systhread_equal -Wl,-U,_systhread_setpriority -Wl,-U,_systhread_getpriority -Wl,-U,_systhread_setspecific -Wl,-U,_systhread_eliminatedenormals -Wl,-U,_systhread_sleep -Wl,-U,_systhread_terminate -Wl,-U,_systime_datetime -Wl,-U,_systime_datetoseconds -Wl,-U,_systime_datetime_milliseconds -Wl,-U,_systime_ms -Wl,-U,_systime_seconds -Wl,-U,_systime_secondstodate -Wl,-U,_systime_ticks -Wl,-U,_systimer_gettime -Wl,-U,_tabfromhandle -Wl,-U,_table_dirty -Wl,-U,_table_get -Wl,-U,_textpreferences_add -Wl,-U,_textpreferences_addoption -Wl,-U,_textpreferences_addraw -Wl,-U,_textpreferences_addrect -Wl,-U,_textpreferences_close -Wl,-U,_textpreferences_default -Wl,-U,_textpreferences_open -Wl,-U,_textpreferences_read -Wl,-U,_time_stop -Wl,-U,_time_tick -Wl,-U,_time_getms -Wl,-U,_time_getticks -Wl,-U,_time_listen -Wl,-U,_time_getphase -Wl,-U,_time_setvalue -Wl,-U,_class_time_addattr -Wl,-U,_time_new -Wl,-U,_time_new_custom -Wl,-U,_time_getnamed -Wl,-U,_time_enable_attributes -Wl,-U,_time_isfixedunit -Wl,-U,_time_schedule -Wl,-U,_time_schedule_limit -Wl,-U,_time_now -Wl,-U,_time_getitm -Wl,-U,_time_calcquantize -Wl,-U,_time_setclock -Wl,-U,_toolfile_fread -Wl,-U,_toolfile_fwrite -Wl,-U,_toolfile_getc -Wl,-U,_toolfile_new -Wl,-U,_translation_getinterfacepath -Wl,-U,_typedmess -Wl,-U,_typelist_make -Wl,-U,_typelist_make -Wl,-U,_utils_setcontext -Wl,-U,_utils_usecontext -Wl,-U,_utils_getcontextnumber -Wl,-U,_utils_contextinuse -Wl,-U,_wind_advise -Wl,-U,_wind_advise_explain -Wl,-U,_wind_nocancel -Wl,-U,_wind_setcursor -Wl,-U,_xmltree_attr_symcompare -Wl,-U,_xmltree_attribute_free -Wl,-U,_xmltree_attribute_new -Wl,-U,_xmltree_cdata_free -Wl,-U,_xmltree_cdata_new -Wl,-U,_xmltree_cdata_splittext -Wl,-U,_xmltree_charnode_addinterface -Wl,-U,_xmltree_charnode_appenddata -Wl,-U,_xmltree_charnode_deletedata -Wl,-U,_xmltree_charnode_free -Wl,-U,_xmltree_charnode_insertdata -Wl,-U,_xmltree_charnode_new -Wl,-U,_xmltree_charnode_replacedata -Wl,-U,_xmltree_charnode_substringdata -Wl,-U,_xmltree_comment_free -Wl,-U,_xmltree_comment_new -Wl,-U,_xmltree_document_createattribute -Wl,-U,_xmltree_document_createcdatasection -Wl,-U,_xmltree_document_createcomment -Wl,-U,_xmltree_document_createelement -Wl,-U,_xmltree_document_createheader -Wl,-U,_xmltree_document_createtextnode -Wl,-U,_xmltree_document_filename -Wl,-U,_xmltree_document_free -Wl,-U,_xmltree_document_getelementsbytagname -Wl,-U,_xmltree_document_new -Wl,-U,_xmltree_document_print -Wl,-U,_xmltree_document_read -Wl,-U,_xmltree_document_write -Wl,-U,_xmltree_document_xmlparse_cdata_end -Wl,-U,_xmltree_document_xmlparse_cdata_start -Wl,-U,_xmltree_document_xmlparse_characterdata -Wl,-U,_xmltree_document_xmlparse_comment -Wl,-U,_xmltree_document_xmlparse_default -Wl,-U,_xmltree_document_xmlparse_doctype_end -Wl,-U,_xmltree_document_xmlparse_doctype_start -Wl,-U,_xmltree_document_xmlparse_element_end -Wl,-U,_xmltree_document_xmlparse_element_start -Wl,-U,_xmltree_element_free -Wl,-U,_xmltree_element_getattribute -Wl,-U,_xmltree_element_getattribute_float -Wl,-U,_xmltree_element_getattribute_float_array -Wl,-U,_xmltree_element_getattribute_long -Wl,-U,_xmltree_element_getattribute_long_array -Wl,-U,_xmltree_element_getattribute_sym -Wl,-U,_xmltree_element_getattribute_sym_array -Wl,-U,_xmltree_element_getattributenode -Wl,-U,_xmltree_element_getelementsbytagname -Wl,-U,_xmltree_element_new -Wl,-U,_xmltree_element_removeattribute -Wl,-U,_xmltree_element_removeattributenode -Wl,-U,_xmltree_element_setattribute -Wl,-U,_xmltree_element_setattribute_float -Wl,-U,_xmltree_element_setattribute_float_array -Wl,-U,_xmltree_element_setattribute_long -Wl,-U,_xmltree_element_setattribute_long_array -Wl,-U,_xmltree_element_setattribute_sym -Wl,-U,_xmltree_element_setattribute_sym_array -Wl,-U,_xmltree_element_setattributenode -Wl,-U,_xmltree_element_symcompare -Wl,-U,_xmltree_init -Wl,-U,_xmltree_node_addinterface -Wl,-U,_xmltree_node_appendchild -Wl,-U,_xmltree_node_clonenode -Wl,-U,_xmltree_node_free -Wl,-U,_xmltree_node_getnodevalasstring -Wl,-U,_xmltree_node_getnodevalue -Wl,-U,_xmltree_node_getnodevalue_float -Wl,-U,_xmltree_node_getnodevalue_float_array -Wl,-U,_xmltree_node_getnodevalue_long -Wl,-U,_xmltree_node_getnodevalue_long_array -Wl,-U,_xmltree_node_getnodevalue_sym -Wl,-U,_xmltree_node_getnodevalue_sym_array -Wl,-U,_xmltree_node_haschildnodes -Wl,-U,_xmltree_node_insertbefore -Wl,-U,_xmltree_node_new -Wl,-U,_xmltree_node_nodevalue -Wl,-U,_xmltree_node_nodevalue_float -Wl,-U,_xmltree_node_nodevalue_float_array -Wl,-U,_xmltree_node_nodevalue_long -Wl,-U,_xmltree_node_nodevalue_long_array -Wl,-U,_xmltree_node_nodevalue_sym -Wl,-U,_xmltree_node_nodevalue_sym_array -Wl,-U,_xmltree_node_removeallchildren -Wl,-U,_xmltree_node_removechild -Wl,-U,_xmltree_node_replacechild -Wl,-U,_xmltree_node_setnodevalasstring -Wl,-U,_xmltree_node_write -Wl,-U,_xmltree_text_free -Wl,-U,_xmltree_text_new -Wl,-U,_xmltree_text_splittext -Wl,-U,_xpcoll_dereference -Wl,-U,_xpcoll_load -Wl,-U,_xpcoll_open -Wl,-U,_xpcoll_opensysfile -Wl,-U,_xpcoll_reference -Wl,-U,_xpcoll_setclientcallback -Wl,-U,_xpcoll_getvol -Wl,-U,_xpcoll_openfile -Wl,-U,_xpcoll_fromnameddata -Wl,-U,_xpcoll_unfreezedevice -Wl,-U,_xsetpost -Wl,-U,_zgetfn -Wl,-U,_jbox_initclass -Wl,-U,_jbox_new -Wl,-U,_jbox_free -Wl,-U,_jbox_ready -Wl,-U,_jbox_redraw -Wl,-U,_jbox_redrawcontents -Wl,-U,_jbox_getoutlet -Wl,-U,_jbox_getinlet -Wl,-U,_jbox_updatetextfield -Wl,-U,_jbox_updatetextfield_safe -Wl,-U,_jbox_updatetextfield_lockmutex -Wl,-U,_jbox_grabfocus -Wl,-U,_jbox_show_caption -Wl,-U,_jbox_hide_caption -Wl,-U,_jbox_invalidate_layer -Wl,-U,_jbox_remove_layer -Wl,-U,_jbox_start_layer -Wl,-U,_jbox_end_layer -Wl,-U,_jbox_paint_layer -Wl,-U,_jbox_get_boxpath -Wl,-U,_jbox_validaterects -Wl,-U,_jbox_processlegacydefaults -Wl,-U,_jbox_isdefaultattribute -Wl,-U,_jpatcher_deleteobj -Wl,-U,_jpatcher_is_patcher -Wl,-U,_jpatcher_get_box -Wl,-U,_jpatcher_get_count -Wl,-U,_jpatcher_get_firstobject -Wl,-U,_jpatcher_get_lastobject -Wl,-U,_jpatcher_get_firstline -Wl,-U,_jpatcher_get_firstview -Wl,-U,_jpatcher_set_locked -Wl,-U,_jpatcher_get_title -Wl,-U,_jpatcher_set_title -Wl,-U,_jpatcher_get_name -Wl,-U,_jpatcher_get_filename -Wl,-U,_jpatcher_get_filepath -Wl,-U,_jpatcher_get_dirty -Wl,-U,_jpatcher_set_dirty -Wl,-U,_jpatcher_get_bgcolor -Wl,-U,_jpatcher_set_bgcolor -Wl,-U,_jpatcher_get_gridsize -Wl,-U,_jpatcher_set_gridsize -Wl,-U,_jpatcher_get_parentpatcher -Wl,-U,_jpatcher_get_toppatcher -Wl,-U,_jpatcher_get_hubholder -Wl,-U,_jpatcher_get_maxclass -Wl,-U,_jpatcher_get_parentclass -Wl,-U,_jpatcher_get_rect -Wl,-U,_jpatcher_set_rect -Wl,-U,_jpatcher_get_noedit -Wl,-U,_jpatcher_uniqueboxname -Wl,-U,_jpatcher_getboxfont -Wl,-U,_jpatcher_get_controller -Wl,-U,_jpatcher_addboxlistener -Wl,-U,_jpatcher_removeboxlistener -Wl,-U,_jpatcher_get_fileversion -Wl,-U,_jpatcher_get_currentfileversion -Wl,-U,_jpatcher_get_bglocked -Wl,-U,_jpatcher_get_presentation -Wl,-U,_jpatcher_inc_maxsendcontext -Wl,-U,_jpatcher_dictionary_modernui -Wl,-U,_jpatcher_dictionary_version -Wl,-U,_jpatcher_sortdictionary -Wl,-U,_jpatcher_getboxfromid -Wl,-U,_jpatcher_endlognewobjects -Wl,-U,_jpatcher_swapboxlist -Wl,-U,_jpatcher_swaplinelist -Wl,-U,_systemfontname -Wl,-U,_systemfontsym -Wl,-U,_jpatchercontroller_createobject -Wl,-U,_jpatchercontroller_setpatcherview -Wl,-U,_jpatchercontroller_pastefileintoobject -Wl,-U,_jpatchercontroller_pastefileat -Wl,-U,_jpatchercontroller_connectobjects -Wl,-U,_jpatchercontroller_begintransaction -Wl,-U,_jpatchercontroller_endtransaction -Wl,-U,_jpatchercontroller_setattr -Wl,-U,_jpatchercontroller_dictionary_setattr -Wl,-U,_object_attr_get_rect -Wl,-U,_object_attr_set_rect -Wl,-U,_object_attr_getcolor -Wl,-U,_object_attr_setcolor -Wl,-U,_object_attr_getpt -Wl,-U,_object_attr_setpt -Wl,-U,_object_attr_getsize -Wl,-U,_object_attr_setsize -Wl,-U,_jbox_get_maxclass -Wl,-U,_jbox_get_patcher -Wl,-U,_jbox_get_object -Wl,-U,_jbox_get_rect_for_view -Wl,-U,_jbox_set_rect_for_view -Wl,-U,_jbox_get_rect_for_sym -Wl,-U,_jbox_set_rect_for_sym -Wl,-U,_jbox_set_rect -Wl,-U,_jbox_get_patching_rect -Wl,-U,_jbox_set_patching_rect -Wl,-U,_jbox_get_presentation_rect -Wl,-U,_jbox_set_presentation_rect -Wl,-U,_jbox_set_position -Wl,-U,_jbox_get_patching_position -Wl,-U,_jbox_set_patching_position -Wl,-U,_jbox_get_presentation_position -Wl,-U,_jbox_set_presentation_position -Wl,-U,_jbox_set_size -Wl,-U,_jbox_get_patching_size -Wl,-U,_jbox_set_patching_size -Wl,-U,_jbox_get_presentation_size -Wl,-U,_jbox_set_presentation_size -Wl,-U,_jbox_get_hidden -Wl,-U,_jbox_set_hidden -Wl,-U,_jbox_get_fontname -Wl,-U,_jbox_set_fontname -Wl,-U,_jbox_get_fontsize -Wl,-U,_jbox_createfont -Wl,-U,_jbox_set_fontsize -Wl,-U,_jbox_fontface_to_weight_slant -Wl,-U,_jbox_get_font_slant -Wl,-U,_jbox_get_font_weight -Wl,-U,_jbox_get_color -Wl,-U,_jbox_set_color -Wl,-U,_jbox_get_nextobject -Wl,-U,_jbox_get_prevobject -Wl,-U,_jbox_get_varname -Wl,-U,_jbox_set_varname -Wl,-U,_jbox_get_id -Wl,-U,_jbox_get_canhilite -Wl,-U,_jbox_get_background -Wl,-U,_jbox_set_background -Wl,-U,_jbox_get_ignoreclick -Wl,-U,_jbox_set_ignoreclick -Wl,-U,_jbox_get_drawfirstin -Wl,-U,_jbox_get_outline -Wl,-U,_jbox_set_outline -Wl,-U,_jbox_get_growy -Wl,-U,_jbox_get_growboth -Wl,-U,_jbox_get_nogrow -Wl,-U,_jbox_get_drawinlast -Wl,-U,_jbox_get_mousedragdelta -Wl,-U,_jbox_set_mousedragdelta -Wl,-U,_jbox_get_textfield -Wl,-U,_jbox_set_hinttrack -Wl,-U,_jbox_get_hinttrack -Wl,-U,_jbox_set_hintstring -Wl,-U,_jpatchline_get_startpoint -Wl,-U,_jpatchline_get_endpoint -Wl,-U,_jpatchline_get_nummidpoints -Wl,-U,_jpatchline_get_pending -Wl,-U,_jpatchline_get_box1 -Wl,-U,_jpatchline_get_outletnum -Wl,-U,_jpatchline_get_box2 -Wl,-U,_jpatchline_get_inletnum -Wl,-U,_jpatchline_get_straightthresh -Wl,-U,_jpatchline_set_straightthresh -Wl,-U,_jpatchline_get_straightstart -Wl,-U,_jpatchline_get_straightend -Wl,-U,_jpatchline_set_straightstart -Wl,-U,_jpatchline_set_straightend -Wl,-U,_jpatchline_get_nextline -Wl,-U,_jpatchline_get_hidden -Wl,-U,_jpatchline_set_hidden -Wl,-U,_jpatchline_get_color -Wl,-U,_jpatchline_set_color -Wl,-U,_jpatchline_addpaintmethod -Wl,-U,_patcherview_get_visible -Wl,-U,_patcherview_set_visible -Wl,-U,_patcherview_get_locked -Wl,-U,_patcherview_set_locked -Wl,-U,_patcherview_get_zoomfactor -Wl,-U,_patcherview_set_zoomfactor -Wl,-U,_patcherview_get_nextview -Wl,-U,_patcherview_get_topview -Wl,-U,_patcherview_get_jgraphics -Wl,-U,_patcherview_set_jgraphics -Wl,-U,_patcherview_get_patcher -Wl,-U,_patcherview_get_rect -Wl,-U,_patcherview_set_rect -Wl,-U,_patcherview_canvas_to_screen -Wl,-U,_patcherview_screen_to_canvas -Wl,-U,_patcherview_get_presentation -Wl,-U,_textfield_get_owner -Wl,-U,_textfield_get_textcolor -Wl,-U,_textfield_set_textcolor -Wl,-U,_textfield_get_bgcolor -Wl,-U,_textfield_set_bgcolor -Wl,-U,_textfield_get_textmargins -Wl,-U,_textfield_set_textmargins -Wl,-U,_textfield_get_editonclick -Wl,-U,_textfield_set_editonclick -Wl,-U,_textfield_get_selectallonedit -Wl,-U,_textfield_set_selectallonedit -Wl,-U,_textfield_get_noactivate -Wl,-U,_textfield_set_noactivate -Wl,-U,_textfield_get_readonly -Wl,-U,_textfield_set_readonly -Wl,-U,_textfield_get_wordwrap -Wl,-U,_textfield_set_wordwrap -Wl,-U,_textfield_get_useellipsis -Wl,-U,_textfield_set_useellipsis -Wl,-U,_textfield_get_autoscroll -Wl,-U,_textfield_set_autoscroll -Wl,-U,_textfield_get_wantsreturn -Wl,-U,_textfield_set_wantsreturn -Wl,-U,_textfield_get_wantstab -Wl,-U,_textfield_set_wantstab -Wl,-U,_textfield_get_autofixwidth -Wl,-U,_textfield_set_autofixwidth -Wl,-U,_textfield_set_emptytext -Wl,-U,_textfield_get_emptytext -Wl,-U,_textfield_set_underline -Wl,-U,_textfield_get_underline -Wl,-U,_textfield_set_justification -Wl,-U,_textfield_get_justification -Wl,-U,_jdrag_getitemstring -Wl,-U,_jdrag_getobject -Wl,-U,_jdrag_getlocation -Wl,-U,_jdrag_createobject -Wl,-U,_jdrag_createnewobj -Wl,-U,_jdrag_createmessage -Wl,-U,_jdrag_add -Wl,-U,_jdrag_process_drop -Wl,-U,_jdrag_matchdragrole -Wl,-U,_jdrag_setboxlocation -Wl,-U,_jdrag_box_add -Wl,-U,_jdrag_object_add -Wl,-U,_jdrag_itemcount -Wl,-U,_jgraphics_getfiletypes -Wl,-U,_jgraphics_round -Wl,-U,_jgraphics_image_surface_clear -Wl,-U,_jgraphics_image_surface_create -Wl,-U,_jgraphics_image_surface_create_referenced -Wl,-U,_jgraphics_image_surface_create_from_file -Wl,-U,_jgraphics_image_surface_create_for_data -Wl,-U,_jgraphics_image_surface_create_from_filedata -Wl,-U,_jgraphics_image_surface_create_from_resource -Wl,-U,_jgraphics_image_surface_writepng -Wl,-U,_jgraphics_image_surface_writejpeg -Wl,-U,_jgraphics_surface_reference -Wl,-U,_jgraphics_surface_destroy -Wl,-U,_jgraphics_surface_set_device_offset -Wl,-U,_jgraphics_surface_get_device_offset -Wl,-U,_jgraphics_image_surface_get_width -Wl,-U,_jgraphics_image_surface_get_height -Wl,-U,_jgraphics_image_surface_set_pixel -Wl,-U,_jgraphics_image_surface_get_pixel -Wl,-U,_jgraphics_image_surface_scroll -Wl,-U,_jgraphics_image_surface_lockpixels_readonly -Wl,-U,_jgraphics_image_surface_unlockpixels_readonly -Wl,-U,_jgraphics_image_surface_lockpixels -Wl,-U,_jgraphics_image_surface_unlockpixels -Wl,-U,_jgraphics_image_surface_draw -Wl,-U,_jgraphics_image_surface_draw_fast -Wl,-U,_jgraphics_getfontscale -Wl,-U,_jgraphics_get_resource_data -Wl,-U,_jsvg_create_from_file -Wl,-U,_jsvg_create_from_resource -Wl,-U,_jsvg_create_from_xmlstring -Wl,-U,_jsvg_get_size -Wl,-U,_jsvg_destroy -Wl,-U,_jsvg_render -Wl,-U,_jgraphics_create -Wl,-U,_jgraphics_reference -Wl,-U,_jgraphics_destroy -Wl,-U,_jgraphics_new_path -Wl,-U,_jgraphics_copy_path -Wl,-U,_jgraphics_path_destroy -Wl,-U,_jgraphics_append_path -Wl,-U,_jgraphics_close_path -Wl,-U,_jgraphics_path_roundcorners -Wl,-U,_jgraphics_get_current_point -Wl,-U,_jgraphics_diagonal_line_fill -Wl,-U,_jgraphics_arc -Wl,-U,_jgraphics_arc_negative -Wl,-U,_jgraphics_piesegment -Wl,-U,_jgraphics_curve_to -Wl,-U,_jgraphics_rel_curve_to -Wl,-U,_jgraphics_line_to -Wl,-U,_jgraphics_rel_line_to -Wl,-U,_jgraphics_move_to -Wl,-U,_jgraphics_rel_move_to -Wl,-U,_jgraphics_rectangle -Wl,-U,_jgraphics_rectangle_rounded -Wl,-U,_jgraphics_ellipse -Wl,-U,_jgraphics_oval -Wl,-U,_jgraphics_ovalarc -Wl,-U,_jgraphics_in_fill -Wl,-U,_jgraphics_line_intersects_rect -Wl,-U,_jgraphics_path_intersects_line -Wl,-U,_jgraphics_path_getpathelems -Wl,-U,_jgraphics_rectintersectsrect -Wl,-U,_jgraphics_rectcontainsrect -Wl,-U,_jgraphics_ptinrect -Wl,-U,_jgraphics_ptinroundedrect -Wl,-U,_jgraphics_fill_extents -Wl,-U,_jgraphics_select_font_face -Wl,-U,_jgraphics_select_jfont -Wl,-U,_jgraphics_set_font_size -Wl,-U,_jgraphics_set_underline -Wl,-U,_jgraphics_show_text -Wl,-U,_jgraphics_font_extents -Wl,-U,_jgraphics_text_measure -Wl,-U,_jgraphics_text_measuretext_wrapped -Wl,-U,_jgraphics_text_path -Wl,-U,_jgraphics_jrgba_contrasting -Wl,-U,_jgraphics_jrgba_contrastwith -Wl,-U,_jgraphics_jrgba_darker -Wl,-U,_jgraphics_jrgba_brighter -Wl,-U,_jgraphics_jrgba_overlay -Wl,-U,_jgraphics_jrgba_interpolate -Wl,-U,_jgraphics_jrgba_gethsb -Wl,-U,_jgraphics_jrgba_fromhsb -Wl,-U,_jgraphics_clip -Wl,-U,_jfont_create_from_maxfont -Wl,-U,_jfont_create -Wl,-U,_jfont_reference -Wl,-U,_jfont_destroy -Wl,-U,_jfont_ellipsifytext -Wl,-U,_jfont_isequalto -Wl,-U,_jfont_set_family -Wl,-U,_jfont_get_family -Wl,-U,_jfont_set_slant -Wl,-U,_jfont_get_slant -Wl,-U,_jfont_set_weight -Wl,-U,_jfont_get_weight -Wl,-U,_jfont_set_font_size -Wl,-U,_jfont_get_font_size -Wl,-U,_jfont_set_underline -Wl,-U,_jfont_get_underline -Wl,-U,_jfont_get_heighttocharheightratio -Wl,-U,_jfont_extents -Wl,-U,_jfont_text_measure -Wl,-U,_jfont_text_measuretext_wrapped -Wl,-U,_jfont_getfontlist -Wl,-U,_jfont_get_em_dimensions -Wl,-U,_jgraphics_system_canantialiastexttotransparentbg -Wl,-U,_jtextlayout_create -Wl,-U,_jtextlayout_withbgcolor -Wl,-U,_jtextlayout_destroy -Wl,-U,_jtextlayout_set -Wl,-U,_jtextlayout_settext -Wl,-U,_jtextlayout_settextcolor -Wl,-U,_jtextlayout_measuretext -Wl,-U,_jtextlayout_draw -Wl,-U,_jtextlayout_getnumchars -Wl,-U,_jtextlayout_getcharbox -Wl,-U,_jtextlayout_getchar -Wl,-U,_jtextlayout_createpath -Wl,-U,_jgraphics_matrix_init -Wl,-U,_jgraphics_matrix_init_identity -Wl,-U,_jgraphics_matrix_init_translate -Wl,-U,_jgraphics_matrix_init_scale -Wl,-U,_jgraphics_matrix_init_rotate -Wl,-U,_jgraphics_matrix_translate -Wl,-U,_jgraphics_matrix_scale -Wl,-U,_jgraphics_matrix_rotate -Wl,-U,_jgraphics_matrix_invert -Wl,-U,_jgraphics_matrix_multiply -Wl,-U,_jgraphics_matrix_transform_point -Wl,-U,_jgraphics_pattern_create_rgba -Wl,-U,_jgraphics_pattern_create_for_surface -Wl,-U,_jgraphics_pattern_create_linear -Wl,-U,_jgraphics_pattern_create_radial -Wl,-U,_jgraphics_pattern_add_color_stop_rgba -Wl,-U,_jgraphics_pattern_reference -Wl,-U,_jgraphics_pattern_destroy -Wl,-U,_jgraphics_pattern_get_type -Wl,-U,_jgraphics_pattern_set_extend -Wl,-U,_jgraphics_pattern_get_extend -Wl,-U,_jgraphics_pattern_set_matrix -Wl,-U,_jgraphics_pattern_get_matrix -Wl,-U,_jgraphics_pattern_get_surface -Wl,-U,_jgraphics_pattern_translate -Wl,-U,_jgraphics_pattern_scale -Wl,-U,_jgraphics_pattern_rotate -Wl,-U,_jgraphics_translate -Wl,-U,_jgraphics_scale -Wl,-U,_jgraphics_rotate -Wl,-U,_jgraphics_transform -Wl,-U,_jgraphics_set_matrix -Wl,-U,_jgraphics_get_matrix -Wl,-U,_jgraphics_identity_matrix -Wl,-U,_jgraphics_user_to_device -Wl,-U,_jgraphics_device_to_user -Wl,-U,_jgraphics_save -Wl,-U,_jgraphics_restore -Wl,-U,_jgraphics_set_source_rgba -Wl,-U,_jgraphics_set_source_jrgba -Wl,-U,_jgraphics_set_source_rgb -Wl,-U,_jgraphics_set_source -Wl,-U,_jgraphics_set_source_surface -Wl,-U,_jgraphics_set_source_shared -Wl,-U,_jgraphics_scale_source_rgba -Wl,-U,_jgraphics_translate_source_rgba -Wl,-U,_jgraphics_set_dash -Wl,-U,_jgraphics_set_fill_rule -Wl,-U,_jgraphics_get_fill_rule -Wl,-U,_jgraphics_set_line_cap -Wl,-U,_jgraphics_get_line_cap -Wl,-U,_jgraphics_set_line_join -Wl,-U,_jgraphics_get_line_join -Wl,-U,_jgraphics_set_line_width -Wl,-U,_jgraphics_get_line_width -Wl,-U,_jgraphics_paint -Wl,-U,_jgraphics_paint_with_alpha -Wl,-U,_jgraphics_fill -Wl,-U,_jgraphics_fill_preserve -Wl,-U,_jgraphics_fill_preserve_with_alpha -Wl,-U,_jgraphics_fill_with_alpha -Wl,-U,_jgraphics_stroke -Wl,-U,_jgraphics_stroke_preserve -Wl,-U,_jgraphics_stroke_preserve_with_alpha -Wl,-U,_jgraphics_stroke_with_alpha -Wl,-U,_get_boxcolor_index_from_jrgba -Wl,-U,_set_jrgba_from_palette_index -Wl,-U,_set_jrgba_from_boxcolor_index -Wl,-U,_jgraphics_clip_rgba -Wl,-U,_jpopupmenu_create -Wl,-U,_jpopupmenu_destroy -Wl,-U,_jpopupmenu_clear -Wl,-U,_jpopupmenu_default_options -Wl,-U,_jpopupmenu_setcolors -Wl,-U,_jpopupmenu_setfont -Wl,-U,_jpopupmenu_additem -Wl,-U,_jpopupmenu_additemwithshortcut -Wl,-U,_jpopupmenu_addsubmenu -Wl,-U,_jpopupmenu_addseparator -Wl,-U,_jpopupmenu_addseperator -Wl,-U,_jpopupmenu_addownerdrawitem -Wl,-U,_jpopupmenu_popup -Wl,-U,_jpopupmenu_popup_nearbox -Wl,-U,_jpopupmenu_popup_nearbox_with_options -Wl,-U,_jpopupmenu_popup_abovebox -Wl,-U,_jpopupmenu_popup_belowrect -Wl,-U,_jpopupmenu_popup_leftofpt -Wl,-U,_jpopupmenu_closeall -Wl,-U,_jpopupmenu_setstandardstyle -Wl,-U,_jpopupmenu_setfixedwidth -Wl,-U,_jmouse_getposition_global -Wl,-U,_jmouse_setposition_global -Wl,-U,_jmouse_setposition_view -Wl,-U,_jmouse_setposition_box -Wl,-U,_jmouse_setcursor -Wl,-U,_jmouse_setcursor_surface -Wl,-U,_dictionary_appendjrgba -Wl,-U,_dictionary_getdefjrgba -Wl,-U,_dictionary_gettrect -Wl,-U,_dictionary_appendtrect -Wl,-U,_dictionary_gettpt -Wl,-U,_dictionary_appendtpt -Wl,-U,_atomstojrgba -Wl,-U,_jrgbatoatoms -Wl,-U,_qd_new -Wl,-U,_qd_initialize -Wl,-U,_qd_copystate -Wl,-U,_qd_PenNormal -Wl,-U,_qd_RGBForeColor -Wl,-U,_qd_RGBBackColor -Wl,-U,_qd_BoxcolorIndexForeColor -Wl,-U,_qd_InsetTRect -Wl,-U,_qd_OffsetTRect -Wl,-U,_qd_EqualTRect -Wl,-U,_qd_JRGBAToRGBColor -Wl,-U,_qd_GetForeColor -Wl,-U,_qd_GetBackColor -Wl,-U,_qd_GetForeJColor -Wl,-U,_qd_GetBackJColor -Wl,-U,_qd_Black -Wl,-U,_qd_White -Wl,-U,_qd_MoveTo -Wl,-U,_qd_LineTo -Wl,-U,_qd_Line -Wl,-U,_qd_EraseRect -Wl,-U,_qd_TRectToRect -Wl,-U,_qd_RectToTRect -Wl,-U,_qd_RGBColorToJRGBA -Wl,-U,_qd_TRectToRectZero -Wl,-U,_qd_InsetRect -Wl,-U,_qd_OffsetRect -Wl,-U,_qd_PaintTRect -Wl,-U,_qd_PaintRect -Wl,-U,_qd_FrameRect -Wl,-U,_qd_PenSize -Wl,-U,_qd_Move -Wl,-U,_qd_SetBackJColor -Wl,-U,_qd_SetRect -Wl,-U,_qd_PaintOval -Wl,-U,_qd_FrameOval -Wl,-U,_qd_PaintRoundRect -Wl,-U,_qd_FrameRoundRect -Wl,-U,_qd_GetPenLoc -Wl,-U,_qd_GetCPixel -Wl,-U,_qd_SetCPixel -Wl,-U,_qd_PaintArc -Wl,-U,_qd_FrameArc -Wl,-U,_qd_SetForeJColor -Wl,-U,_qd_KillPoly -Wl,-U,_qd_PaintPoly -Wl,-U,_qd_ClosePoly -Wl,-U,_qd_OpenPoly -Wl,-U,_qd_LineSegment -Wl,-U,_qd_TPtInTRect -Wl,-U,_qd_FramePoly -Wl,-U,_qd_CloseRgn -Wl,-U,_qd_DisposeRgn -Wl,-U,_qd_FrameRgn -Wl,-U,_qd_OpenRgn -Wl,-U,_qd_PaintRgn -Wl,-U,_jmenu_init -Wl,-U,_jmenu_command_setstate -Wl,-U,_jmenu_process -Wl,-U,_jmenu_command_enable -Wl,-U,_jmenu_command_getstate -Wl,-U,_jmenu_command_invert -Wl,-U,_jmenu_command_invalidate -Wl,-U,_jmenu_command_settext -Wl,-U,_jmenu_new -Wl,-U,_jmenu_addsubmenu -Wl,-U,_jmenu_addseparator -Wl,-U,_jmenu_appenditem -Wl,-U,_jmenu_interface_fromfile -Wl,-U,_jmenu_clearenums -Wl,-U,_jmenu_command_setid -Wl,-U,_jmenu_enumerate_getfile -Wl,-U,_jmenu_enumerate_path -Wl,-U,_jmenu_enumerate_data -Wl,-U,_jmenu_lookup -Wl,-U,_jcolor_getcolor -Wl,-U,_jcolor_linkcolor -Wl,-U,_jcommand_lookup -Wl,-U,_jmenu_update -Wl,-U,_jmenu_command_enableall_fortarget -Wl,-U,_jmenu_proxy_popup -Wl,-U,_jmonitor_getnumdisplays -Wl,-U,_jmonitor_getdisplayrect_foralldisplays -Wl,-U,_jmonitor_getdisplayrect -Wl,-U,_jmonitor_getdisplayrect_forpoint -Wl,-U,_jmonitor_getdisplayscalefactor -Wl,-U,_jmonitor_getdisplayscalefactor_forpoint -Wl,-U,_jmonitor_scale_pt -Wl,-U,_jmonitor_unscale_pt -Wl,-U,_jkeyboard_getcurrentmodifiers -Wl,-U,_jbox_notify -Wl,-U,_jgraphics_attr_setrgba -Wl,-U,_jgraphics_attr_getrgba -Wl,-U,_jgraphics_attr_setrgb_alias -Wl,-U,_jcolumn_setcheckbox -Wl,-U,_jcolumn_setvaluemsg -Wl,-U,_jcolumn_setrowcomponentmsg -Wl,-U,_jcolumn_setmaxwidth -Wl,-U,_jcolumn_setminwidth -Wl,-U,_jcolumn_setwidth -Wl,-U,_jcolumn_setlabel -Wl,-U,_jcolumn_sethideable -Wl,-U,_jcolumn_setvisible -Wl,-U,_jcolumn_getvisible -Wl,-U,_jcolumn_setinitiallysorted -Wl,-U,_jcolumn_setnumeric -Wl,-U,_jcolumn_setoverridesort -Wl,-U,_jcolumn_setcustomsort -Wl,-U,_jcolumn_getid -Wl,-U,_jcolumn_update -Wl,-U,_jcolumn_getname -Wl,-U,_jcolumn_getreference -Wl,-U,_jcolumn_setdraggable -Wl,-U,_jcolumn_setindentspacing -Wl,-U,_jcolumn_setreference -Wl,-U,_jcolumn_setsortable -Wl,-U,_jcolumn_setcustompaint -Wl,-U,_jcolumn_setcellcluemsg -Wl,-U,_jcolumn_setcelltextcolormsg -Wl,-U,_jcolumn_setcelltextstylemsg -Wl,-U,_jdataview_addcolumn -Wl,-U,_jdataview_addcolumn_hidden -Wl,-U,_jdataview_addrows -Wl,-U,_jdataview_addrow -Wl,-U,_jdataview_clear -Wl,-U,_jdataview_containersizechange -Wl,-U,_jdataview_deletecolumn -Wl,-U,_jdataview_deleterows -Wl,-U,_jdataview_deleterow -Wl,-U,_jdataview_editcell -Wl,-U,_jdataview_forcecellvisible -Wl,-U,_jdataview_getfontname -Wl,-U,_jdataview_getfontsize -Wl,-U,_jdataview_gethorizscrollvalues -Wl,-U,_jdataview_getnamedcolumn -Wl,-U,_jdataview_getnthcolumn -Wl,-U,_jdataview_getnumcolumns -Wl,-U,_jdataview_getnumrows -Wl,-U,_jdataview_getvertscrollvalues -Wl,-U,_jdataview_resort -Wl,-U,_jdataview_restorecolumnwidths -Wl,-U,_jdataview_savecolumnwidths -Wl,-U,_jdataview_setautosizeright -Wl,-U,_jdataview_setautosizebottom -Wl,-U,_jdataview_setautosizerightcolumn -Wl,-U,_jdataview_setbordercolor -Wl,-U,_jdataview_setborderthickness -Wl,-U,_jdataview_setcolumnheadercluemsg -Wl,-U,_jdataview_setcolumnheaderheight -Wl,-U,_jdataview_setcustomselectcolor -Wl,-U,_jdataview_setdragenabled -Wl,-U,_jdataview_setdrawgrid -Wl,-U,_jdataview_setfontname -Wl,-U,_jdataview_setfontsize -Wl,-U,_jdataview_setheight -Wl,-U,_jdataview_sethorizscrollvalues -Wl,-U,_jdataview_setkeyfocusable -Wl,-U,_jdataview_setscrollvisible -Wl,-U,_jdataview_setselectcolor -Wl,-U,_jdataview_setrowcolor2 -Wl,-U,_jdataview_setrowcolor1 -Wl,-U,_jdataview_setusegradient -Wl,-U,_jdataview_setusesystemfont -Wl,-U,_jdataview_setvertscrollvalues -Wl,-U,_jdataview_setclient -Wl,-U,_jdataview_new -Wl,-U,_jdataview_newsection -Wl,-U,_jdataview_numsections -Wl,-U,_jdataview_getnthsection -Wl,-U,_jdataview_section_getnumrows -Wl,-U,_jdataview_section_getallrows -Wl,-U,_jdataview_section_isopen -Wl,-U,_jdataview_section_setopen -Wl,-U,_jdataview_getsectionopenness -Wl,-U,_jdataview_setsectionopenness -Wl,-U,_jdataview_section_headervisible -Wl,-U,_jdataview_section_setheadervisible -Wl,-U,_jdataview_section_getname -Wl,-U,_jdataview_section_geticon -Wl,-U,_jdataview_scrolltosection -Wl,-U,_jdataview_scrolltotop -Wl,-U,_jdataview_addrowtosection -Wl,-U,_jdataview_addrowstosection -Wl,-U,_jdataview_deleterowfromsection -Wl,-U,_jdataview_deleterowsfromsection -Wl,-U,_jdataview_deleteselectedrows -Wl,-U,_jdataview_deleteselectedrowsforview -Wl,-U,_jdataview_gettextinrows -Wl,-U,_jdataview_iscelltextselected -Wl,-U,_jdataview_selectedrowcountforview -Wl,-U,_jdataview_selectedrowcount -Wl,-U,_jdataview_getselectedrowsforview -Wl,-U,_jdataview_applytoselectedrows -Wl,-U,_jdataview_applytorows -Wl,-U,_jdataview_cellcut -Wl,-U,_jdataview_cellcopy -Wl,-U,_jdataview_cellpaste -Wl,-U,_jdataview_setcancopy -Wl,-U,_jdataview_getcancopy -Wl,-U,_jdataview_setcanpaste -Wl,-U,_jdataview_getcanpaste -Wl,-U,_jdataview_getsortcolumn -Wl,-U,_jdataview_sortcolumn -Wl,-U,_jdataview_redrawcolumn -Wl,-U,_jdataview_repaintforview -Wl,-U,_jdataview_obscuring -Wl,-U,_jdataview_id2colname -Wl,-U,_jdataview_colname2id -Wl,-U,_jdataview_enablecell -Wl,-U,_jdataview_enablerow -Wl,-U,_jdataview_colname_setvisible -Wl,-U,_jdataview_colname_getvisible -Wl,-U,_jdataview_colname_delete -Wl,-U,_jdataview_patchervis -Wl,-U,_jdataview_patcherinvis -Wl,-U,_jdataview_showrow -Wl,-U,_jdataview_redrawcell -Wl,-U,_jdataview_redrawrow -Wl,-U,_jdataview_row2id -Wl,-U,_jdataview_selectcell -Wl,-U,_jdataview_selectcellinview -Wl,-U,_jdataview_sort -Wl,-U,_jdataview_setusecharheightfont -Wl,-U,_jdialog_showtext -Wl,-U,_newobject_sprintf -Wl,-U,_itm_initclass -Wl,-U,_itm_new -Wl,-U,_itm_getglobal -Wl,-U,_itm_getnamed -Wl,-U,_itm_clocksource_getnamed -Wl,-U,_itm_getclocksources -Wl,-U,_itmclock_new -Wl,-U,_itm_poke -Wl,-U,_itm_gettime -Wl,-U,_itm_getticks -Wl,-U,_itmclock_delay -Wl,-U,_itmclock_set -Wl,-U,_itmclock_unset -Wl,-U,_itm_sync -Wl,-U,_itm_settimesignature -Wl,-U,_itm_seek -Wl,-U,_itm_pause -Wl,-U,_itm_resume -Wl,-U,_itm_setresolution -Wl,-U,_itm_reference -Wl,-U,_itm_dereference -Wl,-U,_itm_tickstobarbeatunits_timesig -Wl,-U,_itm_barbeatunitstoticks_timesig -Wl,-U,_itm_barbeatunitstoticks -Wl,-U,_itm_tickstobarbeatunits -Wl,-U,_itm_nextbeat -Wl,-U,_itm_nextunit -Wl,-U,_itm_parse -Wl,-U,_itm_deleteeventlist -Wl,-U,_itm_geteventlistnames -Wl,-U,_itm_switcheventlist -Wl,-U,_itm_gettimesignature -Wl,-U,_itm_getstate -Wl,-U,_itm_getresolution -Wl,-U,_itm_dump -Wl,-U,_itm_getfromarg -Wl,-U,_itm_getglobal -Wl,-U,_itm_getnamed -Wl,-U,_itm_getfromarg -Wl,-U,_itm_reference -Wl,-U,_itm_dereference -Wl,-U,_itm_deleteeventlist -Wl,-U,_itm_eventlistseek -Wl,-U,_itm_geteventlistnames -Wl,-U,_itm_switcheventlist -Wl,-U,_itm_gettime -Wl,-U,_itm_getticks -Wl,-U,_itm_dump -Wl,-U,_itm_sync -Wl,-U,_itm_settimesignature -Wl,-U,_itm_gettimesignature -Wl,-U,_itm_seek -Wl,-U,_itm_pause -Wl,-U,_itm_resume -Wl,-U,_itm_getstate -Wl,-U,_itm_setresolution -Wl,-U,_itm_getresolution -Wl,-U,_itm_getname -Wl,-U,_itm_parse -Wl,-U,_itm_tickstoms -Wl,-U,_itm_mstoticks -Wl,-U,_itm_mstosamps -Wl,-U,_itm_sampstoms -Wl,-U,_itm_barbeatunitstoticks -Wl,-U,_itm_tickstobarbeatunits -Wl,-U,_itm_format -Wl,-U,_itm_isunitfixed -Wl,-U,_itm_gettempo -Wl,-U,_itm_getsr -Wl,-U,_itmclock_new -Wl,-U,_itmclock_delay -Wl,-U,_itmclock_set -Wl,-U,_itmclock_unset -Wl,-U,_patcher_removedefault -Wl,-U,_patcher_setdefault -Wl,-U,_patcher_getdefault -Wl,-U,_patcher_removedefault -Wl,-U,_patcher_setdefault -Wl,-U,_patcher_boxname -Wl,-U,_atom_alloc_array -Wl,-U,_atomarray_decodebinarydata -Wl,-U,_jgraphics_write_image_surface_to_filedata -Wl,-U,_binarydata_appendtodictionary -Wl,-U,_patcherview_findpatcherview -Wl,-U,_jpatcher_resolvepatcher -Wl,-U,_jpatcher_resolvebox -Wl,-U,_jpatcher_resolvebox_ex -Wl,-U,_jpatcher_resolveobj -Wl,-U,_jpatcher_resolvebox_boxpath -Wl,-U,_jpatcher_resolveobj_boxpath -Wl,-U,_jwind_canfullscreen -Wl,-U,_jwind_getactive -Wl,-U,_jwind_getcount -Wl,-U,_jwind_getat -Wl,-U,_jwind_nextuntitled -Wl,-U,_jgraphics_rectangle_fill_fast -Wl,-U,_jgraphics_rectangle_draw_fast -Wl,-U,_jgraphics_line_draw_fast -Wl,-U,_atomarray_new -Wl,-U,_atomarray_flags -Wl,-U,_atomarray_getflags -Wl,-U,_atomarray_setatoms -Wl,-U,_atomarray_getatoms -Wl,-U,_atomarray_copyatoms -Wl,-U,_atomarray_getsize -Wl,-U,_atomarray_getindex -Wl,-U,_atomarray_duplicate -Wl,-U,_atomarray_clone -Wl,-U,_atomarray_appendatom -Wl,-U,_atomarray_appendatoms -Wl,-U,_atomarray_chuckindex -Wl,-U,_atomarray_clear -Wl,-U,_atomarray_funall -Wl,-U,_common_symbols_gettable -Wl,-U,_object_obex_storeflags -Wl,-U,_object_obex_enforce -Wl,-U,_object_attr_getjrgba -Wl,-U,_object_attr_setjrgba -Wl,-U,_jrgba_to_atoms -Wl,-U,_atoms_to_jrgba -Wl,-U,_jrgba_set -Wl,-U,_jrgba_copy -Wl,-U,_jrgba_compare -Wl,-U,_jrgba_attr_set -Wl,-U,_class_parameter_init -Wl,-U,_class_parameter_mappable -Wl,-U,_class_parameter_setinfo -Wl,-U,_class_parameter_getinfo -Wl,-U,_class_parameter_register_default_color -Wl,-U,_object_parameter_init -Wl,-U,_object_parameter_init_flags -Wl,-U,_object_parameter_dictionary_process -Wl,-U,_object_parameter_hasminmax_true -Wl,-U,_object_parameter_hasminmax_false -Wl,-U,_class_parameter_addmethod -Wl,-U,_parameter_default_int -Wl,-U,_parameter_default_float -Wl,-U,_parameter_default_anything -Wl,-U,_object_parameter_free -Wl,-U,_object_parameter_notify -Wl,-U,_object_parameter_getinfo -Wl,-U,_object_parameter_setinfo -Wl,-U,_object_parameter_string_get -Wl,-U,_object_parameter_stringtovalue -Wl,-U,_object_parameter_value_set -Wl,-U,_object_parameter_value_get -Wl,-U,_object_parameter_color_get -Wl,-U,_object_parameter_value_getvalueof -Wl,-U,_object_parameter_value_setvalueof -Wl,-U,_object_parameter_value_setvalueof_nonotify -Wl,-U,_object_parameter_value_changed -Wl,-U,_object_parameter_value_changed_nonotify -Wl,-U,_object_parameter_current_to_initial -Wl,-U,_object_parameter_is_initialized -Wl,-U,_object_parameter_is_in_Live -Wl,-U,_object_parameter_is_automated -Wl,-U,_object_parameter_wants_focus -Wl,-U,_object_parameter_is_parameter -Wl,-U,_object_parameter_get_order -Wl,-U,_object_parameter_is_in_maxtilde -Wl,-U,_object_parameter_getenable_savestate -Wl,-U,_live_default_color_count -Wl,-U,_live_default_color_string -Wl,-U,_live_default_dynamic_color_string -Wl,-U,_live_default_color_symbol -Wl,-U,_live_default_color_rgbastring -Wl,-U,_live_default_color_rgba -Wl,-U,_live_default_color_rgba_from_symbol -Wl,-U,_param_global_initializecolors -Wl,-U,_project_newfromdevicepatcher -Wl,-U,_remote_object_new_typed -Wl,-U,_remote_object_new_typed_flags -Wl,-U,_remote_object_get -Wl,-U,_remote_object_get_flags -Wl,-U,_remote_object_method_typed -Wl,-U,_remote_object_method_typed_flags -Wl,-U,_remote_object_attr_setvalueof -Wl,-U,_remote_object_attr_setvalueof_flags -Wl,-U,_remote_object_attr_getvalueof -Wl,-U,_remote_object_attr_getvalueof_flags -Wl,-U,_maxserver_getremoteurl -Wl,-U,_maxserver_getcontent -Wl,-U,_sysshmem_alloc -Wl,-U,_sysshmem_open -Wl,-U,_sysshmem_close -Wl,-U,_sysshmem_getsize -Wl,-U,_sysshmem_getptr -Wl,-U,_syssem_create -Wl,-U,_syssem_open -Wl,-U,_syssem_close -Wl,-U,_syssem_wait -Wl,-U,_syssem_trywait -Wl,-U,_syssem_post -Wl,-U,_sysprocess_isrunning -Wl,-U,_sysprocess_isrunning_with_returnvalue -Wl,-U,_sysprocess_kill -Wl,-U,_sysprocess_launch -Wl,-U,_sysprocess_launch_withflags -Wl,-U,_sysprocess_activate -Wl,-U,_sysprocess_getid -Wl,-U,_sysprocess_getcurrentid -Wl,-U,_sysprocess_getpath -Wl,-U,_sysprocesswatcher_new -Wl,-U,_sysprocess_fitsarch -Wl,-U,_object_retain -Wl,-U,_object_release -Wl,-U,_multigraph_add -Wl,-U,_multigraph_remove -Wl,-U,_multinode_resizeio -Wl,-U,_multinode_hasdescendant -Wl,-U,_multigraph_connect -Wl,-U,_multigraph_connect_relaxed -Wl,-U,_multigraph_disconnect -Wl,-U,_multigraph_disconnectnode -Wl,-U,_multigraph_dependency_chain -Wl,-U,_multigraph_new -Wl,-U,_multinode_new -Wl,-U,_multinode_connect -Wl,-U,_multinode_disconnect -Wl,-U,_multinode_iterfun -Wl,-U,_multinode_dependency_chain -Wl,-U,_multiedge_disconnect -Wl,-U,_multiedge_new -Wl,-U,_multigraph_scheduler_new -Wl,-U,_multigraph_scheduler_acquire -Wl,-U,_multigraph_scheduler_release -Wl,-U,_multigraph_scheduler_complete -Wl,-U,_multigraph_parallel_iterator_new -Wl,-U,_multigraph_parallel_iterator_free -Wl,-U,_multigraph_parallel_iterator_scheduler -Wl,-U,_multigraph_parallel_iterator_data -Wl,-U,_multigraph_parallel_iterator_execute -Wl,-U,_multigraph_parallel_iterator_workerproc -Wl,-U,_jpatcher_bulk_load_begin -Wl,-U,_jpatcher_bulk_load_end -Wl,-U,_jpatcher_load -Wl,-U,_jpatcher_load_frombuffer -Wl,-U,_jpatcher_load_fromdictionary -Wl,-U,_jpatcher_load_namespace -Wl,-U,_jpatcher_load_frombuffer_namespace -Wl,-U,_jpatcher_load_fromdictionary_namespace -Wl,-U,_jdesktopui_new -Wl,-U,_jdesktopui_destroy -Wl,-U,_jdesktopui_setvisible -Wl,-U,_jdesktopui_setalwaysontop -Wl,-U,_jdesktopui_setrect -Wl,-U,_jdesktopui_getrect -Wl,-U,_jdesktopui_setposition -Wl,-U,_jdesktopui_setfadetimes -Wl,-U,_jdesktopui_get_jgraphics -Wl,-U,_jdesktopui_redraw -Wl,-U,_jdesktopui_redrawrect -Wl,-U,_object_subscribe -Wl,-U,_object_unsubscribe -Wl,-U,_sysparallel_task_workercount -Wl,-U,_backgroundtask_execute -Wl,-U,_backgroundtask_execute_method -Wl,-U,_backgroundtask_purge_object -Wl,-U,_backgroundtask_join_object -Wl,-U,_backgroundtask_cancel -Wl,-U,_backgroundtask_join -Wl,-U,_jgraphics_image_surface_create_for_data_premult -Wl,-U,_jgraphics_create_zoomed -Wl,-U,_jgraphics_get_target -Wl,-U,_jgraphics_pop_group -Wl,-U,_jgraphics_get_group_target -Wl,-U,_jgraphics_pop_group_surface -Wl,-U,_syntax_addtoken -Wl,-U,_object_register_getnames -Wl,-U,_dictionary_clone_to_existing -Wl,-U,_dictionary_clone -Wl,-U,_dictionary_merge_to_existing -Wl,-U,_dictionary_copy_nonunique_to_existing -Wl,-U,_patcherdomain_namespace_init -Wl,-U,_patcherdomain_node_new -Wl,-U,_patcherdomain_node_free -Wl,-U,_patcherdomain_makeinlets -Wl,-U,_patcherdomain_makeoutlets -Wl,-U,_patcherdomain_inlets_resize -Wl,-U,_patcherdomain_outlets_resize -Wl,-U,_patcherdomain_freeinlets -Wl,-U,_patcherdomain_freeoutlets -Wl,-U,_patcherdomain_class_register -Wl,-U,_patcherdomain_simple_connectionaccept -Wl,-U,_patcherdomain_simple_patchlineupdate -Wl,-U,_inlet_delete -Wl,-U,_outlet_delete -Wl,-U,_proxy_append -Wl,-U,_proxy_insert -Wl,-U,_proxy_new_forinlet -Wl,-U,_proxy_delete -Wl,-U,_proxy_setinletptr -Wl,-U,_proxy_getinletptr -Wl,-U,_jgraphics_bubble -Wl,-U,_class_subclass -Wl,-U,_class_super_construct -Wl,-U,_class_super_construct_imp -Wl,-U,_object_super_method -Wl,-U,_object_super_method_imp -Wl,-U,_object_this_method -Wl,-U,_object_this_method_imp -Wl,-U,_object_obex_chuck -Wl,-U,_object_attr_touch -Wl,-U,_object_attr_touch_parse -Wl,-U,_object_method_direct_getmethod -Wl,-U,_object_method_direct_getobject -Wl,-U,_object_typedwrapper_get -Wl,-U,_usergesture_begin -Wl,-U,_usergesture_end -Wl,-U,_usergesture_add_live_undo_subscriber -Wl,-U,_db_open -Wl,-U,_db_close -Wl,-U,_db_query -Wl,-U,_db_query_direct -Wl,-U,_db_query_silent -Wl,-U,_db_query_getlastinsertid -Wl,-U,_db_query_table_new -Wl,-U,_db_query_table_addcolumn -Wl,-U,_db_transaction_start -Wl,-U,_db_transaction_end -Wl,-U,_db_transaction_flush -Wl,-U,_db_view_create -Wl,-U,_db_view_remove -Wl,-U,_db_view_getresult -Wl,-U,_db_view_setquery -Wl,-U,_db_result_nextrecord -Wl,-U,_db_result_reset -Wl,-U,_db_result_clear -Wl,-U,_db_result_numrecords -Wl,-U,_db_result_numfields -Wl,-U,_db_result_fieldname -Wl,-U,_db_result_string -Wl,-U,_db_result_long -Wl,-U,_db_result_float -Wl,-U,_db_result_datetimeinseconds -Wl,-U,_db_util_stringtodate -Wl,-U,_db_util_datetostring -Wl,-U,_eventcontext_begin -Wl,-U,_eventcontext_end -Wl,-U,_eventcontext_get -Wl,-U,_eventcontext_set -Wl,-U,_collectionlist_read -Wl,-U,_collection_updatefromdictionary -Wl,-U,_collection_deletenamed -Wl,-U,_collection_renamenamed -Wl,-U,_collection_getallnames -Wl,-U,_schedule_queue_new -Wl,-U,_schedule_queue -Wl,-U,_lockfreequeue_free -Wl,-U,_lockfreequeue_new -Wl,-U,_lockfreequeue_pop -Wl,-U,_lockfreequeue_push -Wl,-U,_lockfreequeue_isempty -Wl,-U,_class_attr_setstyle -Wl,-U,_class_attr_style_alias -Wl,-U,_class_attr_setfill -Wl,-U,_class_addstyleattr -Wl,-U,_style_getmenu -Wl,-U,_style_handlemenu -Wl,-U,_dynamiccolor_getmenu -Wl,-U,_dynamiccolor_handlemenu -Wl,-U,_object_attr_getinherited -Wl,-U,_object_attr_setinherited -Wl,-U,_object_style_setfillattribute -Wl,-U,_class_attr_stylemap -Wl,-U,_object_attr_attrname_forstylemap -Wl,-U,_object_attr_stylemapname -Wl,-U,_jgraphics_triangle -Wl,-U,_jgraphics_jrgba_set_brightness -Wl,-U,_jpopupmenu_setstandardstyle -Wl,-U,_jgraphics_attr_setfill -Wl,-U,_jgraphics_attr_setfill_transformed -Wl,-U,_jgraphics_attr_fillrect -Wl,-U,_object_attr_getfillcolor_atposition -Wl,-U,_object_attr_getfill -Wl,-U,_jitdebugcallback -Wl,-U,_jsvg_remap_create -Wl,-U,_jsvg_remap_destroy -Wl,-U,_jsvg_remap_addcolor -Wl,-U,_jsvg_remap_addsinglecolor -Wl,-U,_jsvg_remap_perform -Wl,-U,_jsvg_load_cached -Wl,-U,_jgraphics_draw_jsvg -Wl,-U,_objectcollection_addobject -Wl,-U,_objectcollection_addtext -Wl,-U,_machoglue_init -Wl,-U,_ctopcpy -Wl,-U,_ptoccpy -Wl,-U,_pstrcpy -Wl,-U,_plug_getoptions -Wl,-U,_path_fromfsref -Wl,-U,_path_tofsref -Wl,-U,_fontinfo_prefcheckencoding -Wl,-U,_fontinfo_getencoding -Wl,-U,_fontinfo_reconverthandle -Wl,-U,_fontinfo_convert -Wl,-U,_rescopy -Wl,-U,_max_debug_is_debugger_attached -Wl,-U,_unibrowser_search_dosearch -Wl,-U,_unibrowser_search_autocomplete_dosearch -Wl,-U,_unibrowser_search_collection_getall -Wl,-U,_unibrowser_search_snippets_dosearch -Wl,-U,_unibrowser_search_getsnippetdictionary -Wl,-U,_snapshotwriter_addpayload -Wl,-U,_snapshotwriter_addlist -Wl,-U,_snapshotreader_from_dictionary -Wl,-U,_snapshotreader_from_userpath -Wl,-U,_snapshotreader_fitstype -Wl,-U,_snapshotreader_getpayload -Wl,-U,_snapshotreader_getlist -Wl,-U,_snapshotreader_haspayload -Wl,-U,_snapshotreader_haslist -Wl,-U,_snapshotreader_getname -Wl,-U,_snapshotreader_getorigin -Wl,-U,_snapshotlist_setup -Wl,-U,_snapshotlist_will_restore -Wl,-U,_snapshotlist_initial_restore -Wl,-U,_snapshotlist_momentary_snapshot -Wl,-U,_snapshotlist_devalidate_snapshot -Wl,-U,_snapshotlist_forceupdatefilesnapshots -Wl,-U,_snapshotlist_appendtodictionary -Wl,-U,_snapshotlist_getvalueof -Wl,-U,_snapshotlist_setvalueof -Wl,-U,_snapshotlist_fileusage -Wl,-U,_object_attr_obsolete_getter -Wl,-U,_object_attr_obsolete_setter -Wl,-U,_object_method_obsolete -Wl,-U,_updatepath_pathhaschanged -Wl,-U,_sysinfo_getosversion -Wl,-U,_object_attr_lock -Wl,-U,_object_attr_unlock -Wl,-U,_dictionary_transaction_lock -Wl,-U,_dictionary_transaction_unlock -Wl,-U,_charset_urlencode -Wl,-U,_jpatcher_setnextobexprototype -Wl,-U,_jpatcher_getnextobexprototype -Wl,-U,_sysinfo_gestalt_get_sysv -Wl,-U,_sysinfo_gestalt_get_sysvers -Wl,-U,_sysinfo_gestalt_get_systemversion -Wl,-U,_sysinfo_gestalt_get_pid -Wl,-U,_sysinfo_gestalt_get_processname -Wl,-U,_sysinfo_gestalt_get_processorcount -Wl,-U,_sysinfo_gestalt_get_physicalmemory -Wl,-U,_sysinfo_gestalt_get_hostname -Wl,-U,_sysinfo_gestalt_get_arguments -Wl,-U,_sysinfo_gestalt_get_environment -Wl,-U,_jgraphics_path_getpointalongpath -Wl,-U,_class_attr_dynamiccolor_init -Wl,-U,_object_attr_dynamiccolor_supported -Wl,-U,_object_attr_dynamiccolor_setsym_setup -Wl,-U,_object_attr_dynamiccolor_getname -Wl,-U,_object_attr_dynamiccolor_setname -Wl,-U,_object_attr_dynamiccolor_geton -Wl,-U,_object_attr_dynamiccolor_seton -Wl,-U,_object_attr_dynamiccolor_getregular -Wl,-U,_object_attr_dynamiccolor_setregular -Wl,-U,_object_attr_dynamiccolor_getregularrgba -Wl,-U,_object_attr_dynamiccolor_setregularrgba -Wl,-U,_object_attr_dynamiccolor_gethumanname -Wl,-U,_object_attr_dynamiccolor_apply diff --git a/source/c74support/max-includes/common/basic_c_strings.c b/source/c74support/max-includes/common/basic_c_strings.c deleted file mode 100755 index c64cf3ca..00000000 --- a/source/c74support/max-includes/common/basic_c_strings.c +++ /dev/null @@ -1,147 +0,0 @@ -#include "ext.h" - -#ifdef WIN_VERSION - -#ifndef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include - -#endif // #ifdef WIN_VERSION - -#ifndef WIN_VERSION -#ifndef NDEBUG - -char *strcpy(char *s1, const char *s2) -{ - char *ret = s1; - - while ((*s1++ = *s2++) != 0) - ; - - return ret; -} - -char *strcat(char *s1, const char *s2) -{ - char *ret = s1; - - while (*s1++) - ; - --s1; - while ((*s1++ = *s2++) != 0) - ; - return ret; -} - -int strcmp(const char *s1, const char *s2) -{ - char c1, c2, dif; - - for (;;) { - if (!(c1 = *s1++)) - return *s2 ? -1 : 0; - if (!(c2 = *s2++)) - return 1; - if (!(dif = (c1 - c2))) - continue; - if (dif < 0) - return -1; - else - return 1; - } - - return 0; -} - -unsigned long strlen(const char *s) -{ - long len = 0; - - while (*s++) - ++len; - - return len; -} - -char *strncpy(char *s1, const char *s2, unsigned long n) -{ - char *res = s1; - - while (n--) { - if ((*s1++ = *s2)!=0) - ++s2; - } - return res; -} - -char *strncat(char *s1, const char *s2, unsigned long n) -{ - char *res = s1; - - if (n) { - while (*s1++) - ; - --s1; - while (n--) - if (!(*s1++ = *s2++)) - return res; - *s1 = '\0'; - } - return res; -} - -int strncmp(const char *s1, const char *s2, unsigned long n) -{ - char c1, c2, dif; - - while (n--) { - if (!(c1 = *s1++)) - return *s2 ? -1 : 0; - if (!(c2 = *s2++)) - return 1; - if (!(dif = (c1 - c2))) - continue; - if (dif < 0) - return -1; - else - return 1; - } - return 0; -} - -#endif // NDEBUG -#endif // #ifndef WIN_VERSION - -void ctopcpy(unsigned char *p1, char *p2) -{ - long len= (long) strlen(p2); - //changed this to not rely on CtoPstr - strcpy((char *)p1+1, p2); - p1[0]=(len>255)?255:(unsigned char)len; -} - -void ptoccpy(char *p1, unsigned char *p2) -{ - register int len = (*p2++) & 0xff; - while (len--) *p1++ = *p2++; - *p1 = '\0'; -} - -void setmem(void *ss, long n, short b) -{ - register int i; - unsigned char *s = (unsigned char *)ss; - - for (i=0; i < n; i++,s++) - *s = (unsigned char)b; -} - -void pstrcpy(unsigned char *p2, unsigned char *p1) -{ - register int len; - - len = *p2++ = *p1++; - while (--len>=0) *p2++=*p1++; -} diff --git a/source/c74support/max-includes/common/commonsyms.c b/source/c74support/max-includes/common/commonsyms.c deleted file mode 100644 index 05ea2909..00000000 --- a/source/c74support/max-includes/common/commonsyms.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - commonsyms.c - - Copyright 2001-2008 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#include "ext.h" -#include "commonsyms.h" - -C74_HIDDEN t_common_symbols_table *_common_symbols=NULL; - -C74_HIDDEN void common_symbols_init(void) -{ - _common_symbols = common_symbols_gettable(); -} diff --git a/source/c74support/max-includes/common/commonsyms_max4.c b/source/c74support/max-includes/common/commonsyms_max4.c deleted file mode 100644 index 68c742a5..00000000 --- a/source/c74support/max-includes/common/commonsyms_max4.c +++ /dev/null @@ -1,328 +0,0 @@ -/* - symbols.c - - Copyright 2001-2002 - Cycling '74 - Joshua Kit Clayton jkc@cycling74.com - -*/ - -#include "ext.h" - -BEGIN_USING_C_LINKAGE - -//stringulation-station -t_symbol *_sym_nothing; -t_symbol *_sym_new; -t_symbol *_sym_free; -t_symbol *_sym_classname; -t_symbol *_sym_getname; -t_symbol *_sym_getmethod; -t_symbol *_sym_get; -t_symbol *_sym_set; -t_symbol *_sym_unset; -t_symbol *_sym_register; -t_symbol *_sym_char; -t_symbol *_sym_long; -t_symbol *_sym_float32; -t_symbol *_sym_float64; -t_symbol *_sym_symbol; -t_symbol *_sym_pointer; -t_symbol *_sym_object; -t_symbol *_sym_atom; -t_symbol *_sym_list; -t_symbol *_sym_type; -t_symbol *_sym_dim; -t_symbol *_sym_planecount; -t_symbol *_sym_val; -t_symbol *_sym_plane; -t_symbol *_sym_cell; -t_symbol *_sym_jit_matrix; -t_symbol *_sym_class_jit_matrix; -t_symbol *_sym_togworld; -t_symbol *_sym_fromgworld; -t_symbol *_sym_frommatrix; -t_symbol *_sym_class_jit_attribute; -t_symbol *_sym_jit_attribute; -t_symbol *_sym_jit_attr_offset; -t_symbol *_sym_jit_attr_offset_array; -t_symbol *_sym_rebuilding; -t_symbol *_sym_modified; -t_symbol *_sym_lock; -t_symbol *_sym_setinfo; -t_symbol *_sym_setinfo_ex; -t_symbol *_sym_getinfo; -t_symbol *_sym_data; -t_symbol *_sym_getdata; -t_symbol *_sym_outputmatrix; -t_symbol *_sym_clear; -t_symbol *_sym_err_calculate; -t_symbol *_sym_max_jit_classex; -t_symbol *_sym_setall; -t_symbol *_sym_chuck; -t_symbol *_sym_getsize; -t_symbol *_sym_getindex; -t_symbol *_sym_objptr2index; -t_symbol *_sym_append; -t_symbol *_sym_insertindex; -t_symbol *_sym_deleteindex; -t_symbol *_sym_chuckindex; -t_symbol *_sym_makearray; -t_symbol *_sym_reverse; -t_symbol *_sym_rotate; -t_symbol *_sym_shuffle; -t_symbol *_sym_swap; -t_symbol *_sym_findfirst; -t_symbol *_sym_findall; -t_symbol *_sym_methodall; -t_symbol *_sym_methodindex; -t_symbol *_sym_sort; -t_symbol *_sym_matrix_calc; -t_symbol *_sym_genframe; -t_symbol *_sym_filter; -t_symbol *_sym_jit_mop; -t_symbol *_sym_newcopy; -t_symbol *_sym_jit_linklist; -t_symbol *_sym_inputcount; -t_symbol *_sym_outputcount; -t_symbol *_sym_getinput; -t_symbol *_sym_getoutput; -t_symbol *_sym_getinputlist; -t_symbol *_sym_getoutputlist; -t_symbol *_sym_ioname; -t_symbol *_sym_matrixname; -t_symbol *_sym_outputmode; -t_symbol *_sym_matrix; -t_symbol *_sym_getmatrix; -t_symbol *_sym_typelink; -t_symbol *_sym_dimlink; -t_symbol *_sym_planelink; -t_symbol *_sym_restrict_type; -t_symbol *_sym_restrict_planecount; -t_symbol *_sym_restrict_dim; -t_symbol *_sym_special; -t_symbol *_sym_getspecial; -t_symbol *_sym_adapt; -t_symbol *_sym_decorator; -t_symbol *_sym_frommatrix_trunc; -t_symbol *_sym_ioproc; -t_symbol *_sym_getioproc; -t_symbol *_sym_name; -t_symbol *_sym_types; -t_symbol *_sym_minplanecount; -t_symbol *_sym_maxplanecount; -t_symbol *_sym_mindim; -t_symbol *_sym_maxdim; -t_symbol *_sym_gl_points; -t_symbol *_sym_gl_lines; -t_symbol *_sym_gl_line_strip; -t_symbol *_sym_gl_line_loop; -t_symbol *_sym_gl_triangles; -t_symbol *_sym_gl_tri_strip; -t_symbol *_sym_gl_tri_fan; -t_symbol *_sym_gl_quads; -t_symbol *_sym_gl_quad_strip; -t_symbol *_sym_gl_polygon; -t_symbol *_sym_gl_tri_grid; -t_symbol *_sym_gl_quad_grid; -t_symbol *_sym_err_lockout_stack; - -t_symbol *_sym_class_jit_namespace; -t_symbol *_sym_jit_namespace; -t_symbol *_sym_findsize; -t_symbol *_sym_attach; -t_symbol *_sym_detach; -t_symbol *_sym_add; -t_symbol *_sym_replace; -t_symbol *_sym_gettype; -t_symbol *_sym_ob_sym; -t_symbol *_sym_resolve_name; -t_symbol *_sym_resolve_raw; -t_symbol *_sym_notifyall; - -t_symbol *_sym_anything; -t_symbol *_sym_usercanset; -t_symbol *_sym_usercanget; -t_symbol *_sym_notify; -t_symbol *_sym_getvalueof; -t_symbol *_sym_setvalueof; -t_symbol *_sym_dumpout; -t_symbol *_sym_attributes; -t_symbol *_sym_adornments; -t_symbol *_sym_attr_getnames; -t_symbol *_sym_attr_get; -t_symbol *_sym_float; -t_symbol *_sym_int; -t_symbol *_sym_bang; - -t_symbol *_sym_parent; -t_symbol *_sym_global; -t_symbol *_sym_arguments; -t_symbol *_sym_args; -t_symbol *_sym_attr_modified; - -t_symbol *_sym_hashtab_entry_new; -t_symbol *_sym_hashtab_entry_free; -t_symbol *_sym_hashtab_free; - -//comonly used symbols that are exported -void common_symbols_init(void); -END_USING_C_LINKAGE - -void common_symbols_init(void) -{ - _sym_nothing = gensym(""); - _sym_new = gensym("new"); - _sym_free = gensym("free"); - _sym_classname = gensym("classname"); - _sym_getname = gensym("getname"); - _sym_getmethod = gensym("getmethod"); - _sym_get = gensym("get"); - _sym_set = gensym("set"); - _sym_unset = gensym("unset"); - _sym_register = gensym("register"); - //types - _sym_char = gensym("char"); - _sym_long = gensym("long"); - _sym_float32 = gensym("float32"); - _sym_float64 = gensym("float64"); - _sym_symbol = gensym("symbol"); - _sym_pointer = gensym("pointer"); - _sym_object = gensym("object"); - _sym_atom = gensym("atom"); - //others - _sym_list = gensym("list"); - _sym_type = gensym("type"); - _sym_dim = gensym("dim"); - _sym_planecount = gensym("planecount"); - _sym_val = gensym("val"); - _sym_plane = gensym("plane"); - _sym_cell = gensym("cell"); - _sym_jit_matrix = gensym("jit_matrix"); - _sym_class_jit_matrix = gensym("class_jit_matrix"); - _sym_togworld = gensym("togworld"); - _sym_fromgworld = gensym("fromgworld"); - _sym_frommatrix = gensym("frommatrix"); - _sym_class_jit_attribute = gensym("class_jit_attribute"); - _sym_jit_attribute = gensym("jit_attribute"); - _sym_jit_attr_offset = gensym("jit_attr_offset"); - _sym_jit_attr_offset_array = gensym("jit_attr_offset_array"); - _sym_rebuilding = gensym("rebuilding"); - _sym_modified = gensym("modified"); - _sym_lock = gensym("lock"); - _sym_setinfo = gensym("setinfo"); - _sym_setinfo_ex = gensym("setinfo_ex"); - _sym_getinfo = gensym("getinfo"); - _sym_data = gensym("data"); - _sym_getdata = gensym("getdata"); - _sym_outputmatrix = gensym("outputmatrix"); - _sym_clear = gensym("clear"); - _sym_err_calculate = gensym("could not calculate"); - _sym_max_jit_classex = gensym("max_jit_classex"); - _sym_setall = gensym("setall"); - _sym_chuck = gensym("chuck"); - _sym_getsize = gensym("getsize"); - _sym_getindex = gensym("getindex"); - _sym_objptr2index = gensym("objptr2index"); - _sym_append = gensym("append"); - _sym_insertindex = gensym("insert"); - _sym_deleteindex = gensym("delete"); - _sym_chuckindex = gensym("chuckindex"); - _sym_makearray = gensym("makearray"); - _sym_reverse = gensym("reverse"); - _sym_rotate = gensym("rotate"); - _sym_shuffle = gensym("shuffle"); - _sym_swap = gensym("swap"); - _sym_findfirst = gensym("findfirst"); - _sym_findall = gensym("findall"); - _sym_methodall = gensym("methodall"); - _sym_methodindex = gensym("methodindex"); - _sym_sort = gensym("sort"); - _sym_matrix_calc = gensym("matrix_calc"); - _sym_genframe = gensym("genframe"); - _sym_filter = gensym("filter"); - _sym_jit_mop = gensym("jit_mop"); - _sym_newcopy = gensym("newcopy"); - _sym_jit_linklist = gensym("jit_linklist"); - _sym_inputcount = gensym("inputcount"); - _sym_outputcount = gensym("outputcount"); - _sym_getinput = gensym("getinput"); - _sym_getoutput = gensym("getoutput"); - _sym_getinputlist = gensym("getinputlist"); - _sym_getoutputlist = gensym("getoutputlist"); - _sym_ioname = gensym("ioname"); - _sym_matrixname = gensym("matrixname"); - _sym_outputmode = gensym("outputmode"); - _sym_matrix = gensym("matrix"); - _sym_getmatrix = gensym("getmatrix"); - _sym_typelink = gensym("typelink"); - _sym_dimlink = gensym("dimlink"); - _sym_planelink = gensym("planelink"); - _sym_restrict_type = gensym("restrict_type"); - _sym_restrict_planecount = gensym("restrict_planecount"); - _sym_restrict_dim = gensym("restrict_dim"); - _sym_special = gensym("special"); - _sym_getspecial = gensym("getspecial"); - _sym_adapt = gensym("adapt"); - _sym_decorator = gensym("decorator"); - _sym_frommatrix_trunc = gensym("frommatrix_trunc"); - _sym_ioproc = gensym("ioproc"); - _sym_getioproc = gensym("getioproc"); - _sym_name = gensym("name"); - _sym_types = gensym("types"); - _sym_minplanecount = gensym("minplanecount"); - _sym_maxplanecount = gensym("maxplanecount"); - _sym_mindim = gensym("mindim"); - _sym_maxdim = gensym("maxdim"); - _sym_err_lockout_stack = gensym("lockout stack underflow or overflow"); - // gl - _sym_gl_points = gensym("points"); - _sym_gl_lines = gensym("lines"); - _sym_gl_line_strip = gensym("line_strip"); - _sym_gl_line_loop = gensym("line_loop"); - _sym_gl_triangles = gensym("triangles"); - _sym_gl_tri_strip = gensym("tri_strip"); - _sym_gl_tri_fan = gensym("tri_fan"); - _sym_gl_quads = gensym("quads"); - _sym_gl_quad_strip = gensym("quad_strip"); - _sym_gl_polygon = gensym("polygon"); - _sym_gl_tri_grid = gensym("tri_grid"); - _sym_gl_quad_grid = gensym("quad_grid"); - // namespace - _sym_class_jit_namespace = gensym("class_jit_namespace"); - _sym_jit_namespace = gensym("jit_namespace"); - _sym_findsize = gensym("findsize"); - _sym_attach = gensym("attach"); - _sym_detach = gensym("detach"); - _sym_add = gensym("add"); - _sym_replace = gensym("replace"); - _sym_gettype = gensym("gettype"); - _sym_ob_sym = gensym("ob_sym"); - _sym_resolve_name = gensym("resolve_name"); - _sym_resolve_raw = gensym("resolve_raw"); - _sym_notifyall = gensym("notifyall"); - - _sym_anything = gensym("anything"); - _sym_usercanset = gensym("usercanset"); - _sym_usercanget = gensym("usercanget"); - _sym_notify = gensym("notify"); - _sym_getvalueof = gensym("getvalueof"); - _sym_setvalueof = gensym("setvalueof"); - _sym_dumpout = gensym("dumpout"); - _sym_attributes = gensym("attributes"); - _sym_adornments = gensym("adornments"); - _sym_attr_getnames = gensym("attr_getnames"); - _sym_attr_get = gensym("attr_get"); - _sym_float = gensym("float"); - _sym_int = gensym("int"); - _sym_bang = gensym("bang"); - - _sym_parent = gensym("parent"); - _sym_global = gensym("global"); - _sym_arguments = gensym("arguments"); - _sym_args = gensym("args"); - _sym_attr_modified = gensym("attr_modified"); - - _sym_hashtab_entry_new = gensym("hashtab_entry_new"); - _sym_hashtab_entry_free = gensym("hashtab_entry_free"); - _sym_hashtab_free = gensym("hashtab_free"); -} diff --git a/source/c74support/max-includes/common/commonsyms_max4.h b/source/c74support/max-includes/common/commonsyms_max4.h deleted file mode 100644 index edf4970f..00000000 --- a/source/c74support/max-includes/common/commonsyms_max4.h +++ /dev/null @@ -1,171 +0,0 @@ -/* - commonsyms.h - -*/ - -#ifndef __COMMON_SYMBOLS_H__ -#define __COMMON_SYMBOLS_H__ - -#include "ext_mess.h" - -#ifdef __cplusplus - extern "C" { -#endif // __cplusplus - -void common_symbols_init(void); - -extern t_symbol *_sym_nothing; -extern t_symbol *_sym_new; -extern t_symbol *_sym_free; -extern t_symbol *_sym_classname; -extern t_symbol *_sym_getname; -extern t_symbol *_sym_getmethod; -extern t_symbol *_sym_get; -extern t_symbol *_sym_set; -extern t_symbol *_sym_unset; -extern t_symbol *_sym_register; -extern t_symbol *_sym_char; -extern t_symbol *_sym_long; -extern t_symbol *_sym_float32; -extern t_symbol *_sym_float64; -extern t_symbol *_sym_symbol; -extern t_symbol *_sym_pointer; -extern t_symbol *_sym_object; -extern t_symbol *_sym_atom; -extern t_symbol *_sym_list; -extern t_symbol *_sym_type; -extern t_symbol *_sym_dim; -extern t_symbol *_sym_planecount; -extern t_symbol *_sym_val; -extern t_symbol *_sym_plane; -extern t_symbol *_sym_cell; -extern t_symbol *_sym_jit_matrix; -extern t_symbol *_sym_class_jit_matrix; -extern t_symbol *_sym_togworld; -extern t_symbol *_sym_fromgworld; -extern t_symbol *_sym_frommatrix; -extern t_symbol *_sym_class_jit_attribute; -extern t_symbol *_sym_jit_attribute; -extern t_symbol *_sym_jit_attr_offset; -extern t_symbol *_sym_jit_attr_offset_array; -extern t_symbol *_sym_rebuilding; -extern t_symbol *_sym_modified; -extern t_symbol *_sym_lock; -extern t_symbol *_sym_setinfo; -extern t_symbol *_sym_setinfo_ex; -extern t_symbol *_sym_getinfo; -extern t_symbol *_sym_data; -extern t_symbol *_sym_getdata; -extern t_symbol *_sym_outputmatrix; -extern t_symbol *_sym_clear; -extern t_symbol *_sym_err_calculate; -extern t_symbol *_sym_max_jit_classex; -extern t_symbol *_sym_setall; -extern t_symbol *_sym_chuck; -extern t_symbol *_sym_getsize; -extern t_symbol *_sym_getindex; -extern t_symbol *_sym_objptr2index; -extern t_symbol *_sym_append; -extern t_symbol *_sym_insertindex; -extern t_symbol *_sym_deleteindex; -extern t_symbol *_sym_chuckindex; -extern t_symbol *_sym_makearray; -extern t_symbol *_sym_reverse; -extern t_symbol *_sym_rotate; -extern t_symbol *_sym_shuffle; -extern t_symbol *_sym_swap; -extern t_symbol *_sym_findfirst; -extern t_symbol *_sym_findall; -extern t_symbol *_sym_methodall; -extern t_symbol *_sym_methodindex; -extern t_symbol *_sym_sort; -extern t_symbol *_sym_matrix_calc; -extern t_symbol *_sym_genframe; -extern t_symbol *_sym_filter; -extern t_symbol *_sym_jit_mop; -extern t_symbol *_sym_newcopy; -extern t_symbol *_sym_jit_linklist; -extern t_symbol *_sym_inputcount; -extern t_symbol *_sym_outputcount; -extern t_symbol *_sym_getinput; -extern t_symbol *_sym_getoutput; -extern t_symbol *_sym_getinputlist; -extern t_symbol *_sym_getoutputlist; -extern t_symbol *_sym_ioname; -extern t_symbol *_sym_matrixname; -extern t_symbol *_sym_outputmode; -extern t_symbol *_sym_matrix; -extern t_symbol *_sym_getmatrix; -extern t_symbol *_sym_typelink; -extern t_symbol *_sym_dimlink; -extern t_symbol *_sym_planelink; -extern t_symbol *_sym_restrict_type; -extern t_symbol *_sym_restrict_planecount; -extern t_symbol *_sym_restrict_dim; -extern t_symbol *_sym_special; -extern t_symbol *_sym_getspecial; -extern t_symbol *_sym_adapt; -extern t_symbol *_sym_decorator; -extern t_symbol *_sym_frommatrix_trunc; -extern t_symbol *_sym_ioproc; -extern t_symbol *_sym_getioproc; -extern t_symbol *_sym_name; -extern t_symbol *_sym_types; -extern t_symbol *_sym_minplanecount; -extern t_symbol *_sym_maxplanecount; -extern t_symbol *_sym_mindim; -extern t_symbol *_sym_maxdim; -extern t_symbol *_sym_gl_points; -extern t_symbol *_sym_gl_lines; -extern t_symbol *_sym_gl_line_strip; -extern t_symbol *_sym_gl_line_loop; -extern t_symbol *_sym_gl_triangles; -extern t_symbol *_sym_gl_tri_strip; -extern t_symbol *_sym_gl_tri_fan; -extern t_symbol *_sym_gl_quads; -extern t_symbol *_sym_gl_quad_strip; -extern t_symbol *_sym_gl_polygon; -extern t_symbol *_sym_gl_tri_grid; -extern t_symbol *_sym_gl_quad_grid; -extern t_symbol *_sym_err_lockout_stack; -extern t_symbol *_sym_class_jit_namespace; -extern t_symbol *_sym_jit_namespace; -extern t_symbol *_sym_findsize; -extern t_symbol *_sym_attach; -extern t_symbol *_sym_detach; -extern t_symbol *_sym_add; -extern t_symbol *_sym_replace; -extern t_symbol *_sym_gettype; -extern t_symbol *_sym_ob_sym; -extern t_symbol *_sym_resolve_name; -extern t_symbol *_sym_resolve_raw; -extern t_symbol *_sym_notifyall; -extern t_symbol *_sym_anything; -extern t_symbol *_sym_usercanset; -extern t_symbol *_sym_usercanget; -extern t_symbol *_sym_notify; -extern t_symbol *_sym_getvalueof; -extern t_symbol *_sym_setvalueof; -extern t_symbol *_sym_dumpout; -extern t_symbol *_sym_attributes; -extern t_symbol *_sym_adornments; -extern t_symbol *_sym_attr_getnames; -extern t_symbol *_sym_attr_get; -extern t_symbol *_sym_float; -extern t_symbol *_sym_int; -extern t_symbol *_sym_bang; -extern t_symbol *_sym_parent; -extern t_symbol *_sym_global; -extern t_symbol *_sym_arguments; -extern t_symbol *_sym_args; -extern t_symbol *_sym_attr_modified; -extern t_symbol *_sym_hashtab_entry_new; -extern t_symbol *_sym_hashtab_entry_free; -extern t_symbol *_sym_hashtab_free; - -#ifdef __cplusplus -} -#endif // __cplusplus - - -#endif // __COMMON_SYMBOLS_H__ diff --git a/source/c74support/max-includes/common/dllmain_win.c b/source/c74support/max-includes/common/dllmain_win.c deleted file mode 100755 index facb77f7..00000000 --- a/source/c74support/max-includes/common/dllmain_win.c +++ /dev/null @@ -1,39 +0,0 @@ -#ifdef WIN_VERSION - -#include - -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved ) -{ - // Perform actions based on the reason for calling. - switch( fdwReason ) - { - case DLL_PROCESS_ATTACH: - // Initialize once for each new process. Return FALSE to fail DLL load. - // Since we do nothing in our DLL_THREAD_ATTACH and DLL_THREAD_DETACH calls below, - // we don't need to actually receive those calls. The below call tells the OS to - // optimize those out. - DisableThreadLibraryCalls(hinstDLL); -#ifdef _DEBUG - { - char buff[_MAX_PATH]; - OutputDebugStringA("DLL_PROCESS_ATTACH: "); - GetModuleFileNameA(hinstDLL, buff, _MAX_PATH); - OutputDebugStringA(buff); - OutputDebugStringA("\n"); - } -#endif - break; - case DLL_THREAD_ATTACH: - // Do thread-specific initialization. - break; - case DLL_THREAD_DETACH: - // Do thread-specific cleanup. - break; - case DLL_PROCESS_DETACH: - // Perform any necessary cleanup. - break; - } - return TRUE; -} - -#endif // #ifdef WIN_VERSION diff --git a/source/c74support/max-includes/common/dummy.cpp b/source/c74support/max-includes/common/dummy.cpp deleted file mode 100644 index 1cc9adb7..00000000 --- a/source/c74support/max-includes/common/dummy.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// dummy to prevent compiler warnings - -template -void dummy(){} - -template void dummy(); \ No newline at end of file diff --git a/source/c74support/max-includes/common/ext_byteorder.c b/source/c74support/max-includes/common/ext_byteorder.c deleted file mode 100644 index f5102965..00000000 --- a/source/c74support/max-includes/common/ext_byteorder.c +++ /dev/null @@ -1,88 +0,0 @@ - -float byteorder_swapf32(float f){ - unsigned char c,*a; - - a = (unsigned char *)&f; - c=a[3]; a[3]=a[0]; a[0]=c; - c=a[2]; a[2]=a[1]; a[1]=c; - - return f; -} - -double byteorder_swapf64(double f){ - unsigned char c,*a; - - a = (unsigned char *)&f; - c=a[7]; a[7]=a[0]; a[0]=c; - c=a[6]; a[6]=a[1]; a[1]=c; - c=a[5]; a[5]=a[2]; a[2]=c; - c=a[4]; a[4]=a[3]; a[3]=c; - - return f; -} - -// these functions are inplace -void byteorder_swap_pointer_16(unsigned char *p) -{ - unsigned char c; - c=p[1]; p[1]=p[0]; p[0]=c; -} - -void byteorder_swap_pointer_32(unsigned char *p) -{ - unsigned char c; - c=p[3]; p[3]=p[0]; p[0]=c; - c=p[2]; p[2]=p[1]; p[1]=c; -} - -void byteorder_swap_pointer_64(unsigned char *p) -{ - unsigned char c; - c=p[7]; p[7]=p[0]; p[0]=c; - c=p[6]; p[6]=p[1]; p[1]=c; - c=p[5]; p[5]=p[2]; p[2]=c; - c=p[4]; p[4]=p[3]; p[3]=c; -} - -// these function copy from one pointer to another (src!=dst) -void byteorder_swap_pointer_16_copy(unsigned char *src, unsigned char *dst) -{ - dst[1] = src[0]; - dst[0] = src[1]; -} - -void byteorder_swap_pointer_32_copy(unsigned char *src, unsigned char *dst) -{ - dst[3] = src[0]; - dst[2] = src[1]; - dst[1] = src[2]; - dst[0] = src[3]; -} - -void byteorder_swap_pointer_64_copy(unsigned char *src, unsigned char *dst) -{ - dst[7] = src[0]; - dst[6] = src[1]; - dst[5] = src[2]; - dst[4] = src[3]; - dst[3] = src[4]; - dst[2] = src[5]; - dst[1] = src[6]; - dst[0] = src[7]; -} - -// these functions return floating point values from a byteswapped pointer -float byteorder_swap_pointer_32_to_float32(unsigned char *p) -{ - float f; - byteorder_swap_pointer_32_copy(p,(unsigned char *)&f); - return f; -} - -double byteorder_swap_pointer_64_to_float64(unsigned char *p) -{ - double f; - byteorder_swap_pointer_64_copy(p,(unsigned char *)&f); - return f; -} - diff --git a/source/c74support/max-includes/common/jpatcher_syms.c b/source/c74support/max-includes/common/jpatcher_syms.c deleted file mode 100644 index 6a36b1bd..00000000 --- a/source/c74support/max-includes/common/jpatcher_syms.c +++ /dev/null @@ -1,472 +0,0 @@ -#include "ext.h" - -#include "jpatcher_syms.h" - -BEGIN_USING_C_LINKAGE - -C74_HIDDEN t_symbol *ps_patcher; -C74_HIDDEN t_symbol *ps_topview; -C74_HIDDEN t_symbol *ps_jpatcher; -C74_HIDDEN t_symbol *ps_jpatchline; -C74_HIDDEN t_symbol *ps_patcherview; -C74_HIDDEN t_symbol *ps_juiobject; - -C74_HIDDEN t_symbol *ps__set; // avoids conflict with this commonly defined symbol - -// notifications -C74_HIDDEN t_symbol *ps_patchernotify; -C74_HIDDEN t_symbol *ps_boxnotify; -C74_HIDDEN t_symbol *ps_linenotify; - -C74_HIDDEN t_symbol *ps_user; -C74_HIDDEN t_symbol *ps_defaultname; - -// patchernotify -C74_HIDDEN t_symbol *ps_rect; -C74_HIDDEN t_symbol *ps_free; -C74_HIDDEN t_symbol *ps_imbed; -C74_HIDDEN t_symbol *ps_unimbed; -C74_HIDDEN t_symbol *ps_snaptogrid; -C74_HIDDEN t_symbol *ps_invis; -C74_HIDDEN t_symbol *ps_toolbarvisible; - -// boxnotify -C74_HIDDEN t_symbol *ps_newobject; -C74_HIDDEN t_symbol *ps_free; -C74_HIDDEN t_symbol *ps_redraw; -C74_HIDDEN t_symbol *ps_redrawcontents; // textfield text has changed -C74_HIDDEN t_symbol *ps_textchanged; -C74_HIDDEN t_symbol *ps_textcolor; -C74_HIDDEN t_symbol *ps_color; -C74_HIDDEN t_symbol *ps_grabfocus; -C74_HIDDEN t_symbol *ps_fontchanged; -C74_HIDDEN t_symbol *ps_inletoutlet; -C74_HIDDEN t_symbol *ps_bfixwidth; -C74_HIDDEN t_symbol *ps_showcaption; -C74_HIDDEN t_symbol *ps_hidecaption; -C74_HIDDEN t_symbol *ps_freecontainedview; -C74_HIDDEN t_symbol *ps_rebuildcontainedview; -C74_HIDDEN t_symbol *ps_viewvisibility; -C74_HIDDEN t_symbol *ps_viewvisibilitychanged; - -// if a box attribute changes a boxnotify message containing the attribute name will be sent. -// I won't repeat the attributes here as they are listed below. - -// linenotify -//C74_HIDDEN t_symbol *ps_newobject; -//C74_HIDDEN t_symbol *ps_free; -C74_HIDDEN t_symbol *ps_linechanged; - -// Attributes of the patcher class -C74_HIDDEN t_symbol *ps_box; -C74_HIDDEN t_symbol *ps_count; -C74_HIDDEN t_symbol *ps_firstobject; -C74_HIDDEN t_symbol *ps_lastobject; -C74_HIDDEN t_symbol *ps_firstline; -C74_HIDDEN t_symbol *ps_firstview; -C74_HIDDEN t_symbol *ps_title; -C74_HIDDEN t_symbol *ps_name; -C74_HIDDEN t_symbol *ps_filepath; -C74_HIDDEN t_symbol *ps_savefilepath; -C74_HIDDEN t_symbol *ps_filename; -C74_HIDDEN t_symbol *ps_locked; -C74_HIDDEN t_symbol *ps_dirty; -C74_HIDDEN t_symbol *ps_fontname; -C74_HIDDEN t_symbol *ps_fontsize; -C74_HIDDEN t_symbol *ps_fontface; -C74_HIDDEN t_symbol *ps_fontcolor; -C74_HIDDEN t_symbol *ps_bglocked; -C74_HIDDEN t_symbol *ps_bghidden; -C74_HIDDEN t_symbol *ps_fghidden; -C74_HIDDEN t_symbol *ps_font; -C74_HIDDEN t_symbol *ps_bgcolor; -C74_HIDDEN t_symbol *ps_editing_bgcolor; -C74_HIDDEN t_symbol *ps_locked_bgcolor; -C74_HIDDEN t_symbol *ps_gridsize; -C74_HIDDEN t_symbol *ps_controller; -C74_HIDDEN t_symbol *ps_maxclass; -C74_HIDDEN t_symbol *ps_parentclass; -C74_HIDDEN t_symbol *ps_parentpatcher; -C74_HIDDEN t_symbol *ps_toppatcher; -C74_HIDDEN t_symbol *ps_scrolloffset; -C74_HIDDEN t_symbol *ps_scrollorigin; -C74_HIDDEN t_symbol *ps_wind; -C74_HIDDEN t_symbol *ps_noedit; -C74_HIDDEN t_symbol *ps_collective; -C74_HIDDEN t_symbol *ps_cansave; - -// methods of the patcher class -//C74_HIDDEN t_symbol *ps_newobject; -C74_HIDDEN t_symbol *ps_newdefault; -C74_HIDDEN t_symbol *ps_connect; -C74_HIDDEN t_symbol *ps_hiddenconnect; -C74_HIDDEN t_symbol *ps_disconnect; -C74_HIDDEN t_symbol *ps_apply; -C74_HIDDEN t_symbol *ps_applydeep; -C74_HIDDEN t_symbol *ps_applyif; -C74_HIDDEN t_symbol *ps_applydeepif; -C74_HIDDEN t_symbol *ps_remove; -C74_HIDDEN t_symbol *ps_getnamed; -C74_HIDDEN t_symbol *ps_getlogical; -C74_HIDDEN t_symbol *ps_bringtofront; -C74_HIDDEN t_symbol *ps_sendtoback; - -// patcher dictionary syms -C74_HIDDEN t_symbol *ps_pound_PD; -C74_HIDDEN t_symbol *ps_appversion; -C74_HIDDEN t_symbol *ps_major; -C74_HIDDEN t_symbol *ps_minor; -C74_HIDDEN t_symbol *ps_revision; -C74_HIDDEN t_symbol *ps_architecture; -C74_HIDDEN t_symbol *ps_x86; -C74_HIDDEN t_symbol *ps_x64; -C74_HIDDEN t_symbol *ps_modernui; -C74_HIDDEN t_symbol *ps_dynamiccolor; - - -// Attributes of the Maxobj class -//C74_HIDDEN t_symbol *ps_rect; -C74_HIDDEN t_symbol *ps_presentation_rect; -C74_HIDDEN t_symbol *ps_patching_rect; -C74_HIDDEN t_symbol *ps_jp_position; -C74_HIDDEN t_symbol *ps_presentation_position; -C74_HIDDEN t_symbol *ps_patching_position; -C74_HIDDEN t_symbol *ps_size; -C74_HIDDEN t_symbol *ps_presentation_size; -C74_HIDDEN t_symbol *ps_patching_size; -C74_HIDDEN t_symbol *ps_object; -//C74_HIDDEN t_symbol *ps_maxclass; -//C74_HIDDEN t_symbol *ps_patcher; -C74_HIDDEN t_symbol *ps_hint; -C74_HIDDEN t_symbol *ps_hidden; -//C74_HIDDEN t_symbol *ps_fontname; -//C74_HIDDEN t_symbol *ps_fontsize; -C74_HIDDEN t_symbol *ps_color; -C74_HIDDEN t_symbol *ps_nextobject; -C74_HIDDEN t_symbol *ps_prevobject; -C74_HIDDEN t_symbol *ps_varname; -C74_HIDDEN t_symbol *ps_id; -C74_HIDDEN t_symbol *ps_canhilite; -C74_HIDDEN t_symbol *ps_zorder; -C74_HIDDEN t_symbol *ps_background; -C74_HIDDEN t_symbol *ps_ignoreclick; -C74_HIDDEN t_symbol *ps_drawfirstin; -C74_HIDDEN t_symbol *ps_outline; -C74_HIDDEN t_symbol *ps_growy; -C74_HIDDEN t_symbol *ps_growboth; -C74_HIDDEN t_symbol *ps_nogrow; -C74_HIDDEN t_symbol *ps_drawinlast; -C74_HIDDEN t_symbol *ps_transparent; -C74_HIDDEN t_symbol *ps_mousedragdelta; -C74_HIDDEN t_symbol *ps_textfield; -//C74_HIDDEN t_symbol *ps_presentation_rect; -C74_HIDDEN t_symbol *ps_opaque; -C74_HIDDEN t_symbol *ps_useimagebuffer; -C74_HIDDEN t_symbol *ps_hide; -C74_HIDDEN t_symbol *ps_show; -C74_HIDDEN t_symbol *ps_move; -C74_HIDDEN t_symbol *ps_offset; -C74_HIDDEN t_symbol *ps_respondtoclick; - -// Methods of the Maxobj class -C74_HIDDEN t_symbol *ps_message; -C74_HIDDEN t_symbol *ps_help; -C74_HIDDEN t_symbol *ps_subpatcher; -C74_HIDDEN t_symbol *ps_understands; - -// attributes of the jpatchline -C74_HIDDEN t_symbol *ps_startpoint; -C74_HIDDEN t_symbol *ps_endpoint; -C74_HIDDEN t_symbol *ps_pending; -C74_HIDDEN t_symbol *ps_nummidpoints; -C74_HIDDEN t_symbol *ps_midpoints; -C74_HIDDEN t_symbol *ps_box1; -C74_HIDDEN t_symbol *ps_outletnum; -C74_HIDDEN t_symbol *ps_box2; -C74_HIDDEN t_symbol *ps_inletnum; -//C74_HIDDEN t_symbol *ps_hidden; -//C74_HIDDEN t_symbol *ps_color; -C74_HIDDEN t_symbol *ps_boundingbox; -C74_HIDDEN t_symbol *ps_straightthresh; -C74_HIDDEN t_symbol *ps_straightstart; -C74_HIDDEN t_symbol *ps_straightend; -C74_HIDDEN t_symbol *ps_nextline; - -// attributes of the patcherview -C74_HIDDEN t_symbol *ps_visible; -//C74_HIDDEN t_symbol *ps_locked; -C74_HIDDEN t_symbol *ps_unlockedinteraction; -C74_HIDDEN t_symbol *ps_presentation; -C74_HIDDEN t_symbol *ps_zoomfactor; -C74_HIDDEN t_symbol *ps_nextview; -C74_HIDDEN t_symbol *ps_jgraphics; -//C74_HIDDEN t_symbol *ps_patcher; - -// methods of the jpatchline -C74_HIDDEN t_symbol *ps_insertsegment; -C74_HIDDEN t_symbol *ps_removesegment; -C74_HIDDEN t_symbol *ps_setmidpoint; -C74_HIDDEN t_symbol *ps_completeconnection; - -// Messages to UI objects from the view -C74_HIDDEN t_symbol *ps_focusgained; -C74_HIDDEN t_symbol *ps_focuslost; -C74_HIDDEN t_symbol *ps_key; -C74_HIDDEN t_symbol *ps_keyfilter; -C74_HIDDEN t_symbol *ps_mouseenter; -C74_HIDDEN t_symbol *ps_mousemove; -C74_HIDDEN t_symbol *ps_mousedown; -C74_HIDDEN t_symbol *ps_mousedrag; -C74_HIDDEN t_symbol *ps_mouseup; -C74_HIDDEN t_symbol *ps_mousedoubleclick; -C74_HIDDEN t_symbol *ps_mousewheel; -C74_HIDDEN t_symbol *ps_mouseleave; -C74_HIDDEN t_symbol *ps_dropfiles; -C74_HIDDEN t_symbol *ps_moved; -C74_HIDDEN t_symbol *ps_resized; -C74_HIDDEN t_symbol *ps_vis; -C74_HIDDEN t_symbol *ps_bcut; -C74_HIDDEN t_symbol *ps_bcopy; -C74_HIDDEN t_symbol *ps_bpaste; -C74_HIDDEN t_symbol *ps_bpastepic; -C74_HIDDEN t_symbol *ps_bclear; -C74_HIDDEN t_symbol *ps_bundo; -C74_HIDDEN t_symbol *ps_bredo; - -// Textfield attributes -C74_HIDDEN t_symbol *ps_owner; -C74_HIDDEN t_symbol *ps_textcolor; -C74_HIDDEN t_symbol *ps_textmargins; -C74_HIDDEN t_symbol *ps_editonclick; -C74_HIDDEN t_symbol *ps_selectallonedit; -C74_HIDDEN t_symbol *ps_noactivate; -C74_HIDDEN t_symbol *ps_readonly; -C74_HIDDEN t_symbol *ps_wordwrap; -C74_HIDDEN t_symbol *ps_useellipsis; -C74_HIDDEN t_symbol *ps_autoscroll; -C74_HIDDEN t_symbol *ps_wantsreturn; -C74_HIDDEN t_symbol *ps_wantstab; -C74_HIDDEN t_symbol *ps_underline; -C74_HIDDEN t_symbol *ps_autofixwidth; -C74_HIDDEN t_symbol *ps_emptytext; -C74_HIDDEN t_symbol *ps_justification; - -// jcolor attributes -C74_HIDDEN t_symbol *ps_red; -C74_HIDDEN t_symbol *ps_green; -C74_HIDDEN t_symbol *ps_blue; -C74_HIDDEN t_symbol *ps_alpha; -C74_HIDDEN t_symbol *ps_rgba; - -// scripting names -C74_HIDDEN t_symbol *ps_varname_set; -C74_HIDDEN t_symbol *ps_varname_unset; - -END_USING_C_LINKAGE - -C74_HIDDEN void jpatcher_syms_init() -{ - ps__set = gensym("set"); - ps_alpha = gensym("alpha"); - ps_apply = gensym("apply"); - ps_applydeep = gensym("applydeep"); - ps_applydeepif = gensym("applydeepif"); - ps_applyif = gensym("applyif"); - ps_appversion = gensym("appversion"); - ps_architecture = gensym("architecture"); - ps_autofixwidth = gensym("autofixwidth"); - ps_autoscroll = gensym("autoscroll"); - ps_background = gensym("background"); - ps_bclear = gensym("bclear"); - ps_bcopy = gensym("bcopy"); - ps_bcut = gensym("bcut"); - ps_bfixwidth = gensym("bfixwidth"); - ps_bgcolor = gensym("bgcolor"); - ps_bghidden = gensym("bghidden"); - ps_bglocked = gensym("bglocked"); - ps_blue = gensym("blue"); - ps_boundingbox = gensym("boundingbox"); - ps_box = gensym("box"); - ps_box1 = gensym("box1"); - ps_box2 = gensym("box2"); - ps_boxnotify = gensym("boxnotify"); - ps_bpaste = gensym("bpaste"); - ps_bpastepic = gensym("bpastepic"); - ps_bredo = gensym("bredo"); - ps_bringtofront = gensym("bringtofront"); - ps_bundo = gensym("bundo"); - ps_canhilite = gensym("canhilite"); - ps_cansave = gensym("cansave"); - ps_collective = gensym("collective"); - ps_color = gensym("color"); - ps_completeconnection = gensym("completeconnection"); - ps_connect = gensym("connect"); - ps_controller = gensym("controller"); - ps_count = gensym("count"); - ps_defaultname = gensym("defaultname"); - ps_dirty = gensym("dirty"); - ps_disconnect = gensym("disconnect"); - ps_drawfirstin = gensym("drawfirstin"); - ps_drawinlast = gensym("drawinlast"); - ps_dropfiles = gensym("dropfiles"); - ps_dynamiccolor = gensym("dynamiccolor"); - ps_editing_bgcolor = gensym("editing_bgcolor"); - ps_editonclick = gensym("editonclick"); - ps_emptytext = gensym("emptytext"); - ps_endpoint = gensym("endpoint"); - ps_fghidden = gensym("fghidden"); - ps_filename = gensym("filename"); - ps_filepath = gensym("filepath"); - ps_firstline = gensym("firstline"); - ps_firstobject = gensym("firstobject"); - ps_firstview = gensym("firstview"); - ps_focusgained = gensym("focusgained"); - ps_focuslost = gensym("focuslost"); - ps_font = gensym("font"); - ps_fontchanged = gensym("fontchanged"); - ps_fontface = gensym("fontface"); - ps_fontname = gensym("fontname"); - ps_fontsize = gensym("fontsize"); - ps_free = gensym("free"); - ps_freecontainedview = gensym("freecontainedview"); - ps_getlogical = gensym("getlogical"); - ps_getnamed = gensym("getnamed"); - ps_grabfocus = gensym("grabfocus"); - ps_green = gensym("green"); - ps_gridsize = gensym("gridsize"); - ps_growboth = gensym("growboth"); - ps_growy = gensym("growy"); - ps_help = gensym("help"); - ps_hidden = gensym("hidden"); - ps_hiddenconnect = gensym("hiddenconnect"); - ps_hide = gensym("hide"); - ps_hidecaption = gensym("hidecaption"); - ps_hint = gensym("hint"); - ps_id = gensym("id"); - ps_ignoreclick = gensym("ignoreclick"); - ps_imbed = gensym("imbed"); - ps_inletnum = gensym("inletnum"); - ps_inletoutlet = gensym("inletoutlet"); - ps_insertsegment = gensym("insertsegment"); - ps_invis = gensym("invis"); - ps_jgraphics = gensym("jgraphics"); - ps_jp_position = gensym("position"); - ps_jpatcher = gensym("jpatcher"); - ps_jpatchline = gensym("jpatchline"); - ps_juiobject = gensym("juiobject"); - ps_justification = gensym("justification"); - ps_key = gensym("key"); - ps_keyfilter = gensym("keyfilter"); - ps_lastobject = gensym("lastobject"); - ps_linechanged = gensym("linechanged"); - ps_linenotify = gensym("linenotify"); - ps_locked = gensym("locked"); - ps_locked_bgcolor = gensym("locked_bgcolor"); - ps_major = gensym("major"); - ps_maxclass = gensym("maxclass"); - ps_message = gensym("message"); - ps_midpoints = gensym("midpoints"); - ps_minor = gensym("minor"); - ps_modernui = gensym("modernui"); - ps_mousedoubleclick = gensym("mousedoubleclick"); - ps_mousedown = gensym("mousedown"); - ps_mousedrag = gensym("mousedrag"); - ps_mousedragdelta = gensym("mousedragdelta"); - ps_mouseenter = gensym("mouseenter"); - ps_mouseleave = gensym("mouseleave"); - ps_mousemove = gensym("mousemove"); - ps_mouseup = gensym("mouseup"); - ps_mousewheel = gensym("mousewheel"); - ps_move = gensym("move"); - ps_moved = gensym("moved"); - ps_name = gensym("name"); - ps_newdefault = gensym("newdefault"); - ps_newobject = gensym("newobject"); - ps_nextline = gensym("nextline"); - ps_nextobject = gensym("nextobject"); - ps_nextview = gensym("nextview"); - ps_noactivate = gensym("noactivate"); - ps_noedit = gensym("noedit"); - ps_nogrow = gensym("nogrow"); - ps_nummidpoints = gensym("nummidpoints"); - ps_object = gensym("object"); - ps_offset = gensym("offset"); - ps_opaque = gensym("opaque"); - ps_outletnum = gensym("outletnum"); - ps_outline = gensym("outline"); - ps_owner = gensym("owner"); - ps_parentclass = gensym("parentclass"); - ps_parentpatcher = gensym("parentpatcher"); - ps_patcher = gensym("patcher"); - ps_patchernotify = gensym("patchernotify"); - ps_patcherview = gensym("patcherview"); - ps_patching_position = gensym("patching_position"); - ps_patching_rect = gensym("patching_rect"); - ps_patching_size = gensym("patching_size"); - ps_pending = gensym("pending"); - ps_pound_PD = gensym("#PD"); - ps_presentation = gensym("presentation"); - ps_presentation_position = gensym("presentation_position"); - ps_presentation_rect = gensym("presentation_rect"); - ps_presentation_size = gensym("presentation_size"); - ps_prevobject = gensym("prevobject"); - ps_readonly = gensym("readonly"); - ps_rebuildcontainedview = gensym("rebuildcontainedview"); - ps_rect = gensym("rect"); - ps_red = gensym("red"); - ps_redraw = gensym("redraw"); - ps_redrawcontents = gensym("redrawcontents"); - ps_remove = gensym("remove"); - ps_removesegment = gensym("removesegment"); - ps_resized = gensym("resized"); - ps_respondtoclick = gensym("respondtoclick"); - ps_revision = gensym("revision"); - ps_rgba = gensym("rgba"); - ps_savefilepath = gensym("savefilepath"); - ps_scrolloffset = gensym("scrolloffset"); - ps_scrollorigin = gensym("scrollorigin"); - ps_selectallonedit = gensym("selectallonedit"); - ps_sendtoback = gensym("sendtoback"); - ps_setmidpoint = gensym("setmidpoint"); - ps_show = gensym("show"); - ps_showcaption = gensym("showcaption"); - ps_size = gensym("size"); - ps_snaptogrid = gensym("snaptogrid"); - ps_startpoint = gensym("startpoint"); - ps_straightend = gensym("straightend"); - ps_straightstart = gensym("straightstart"); - ps_straightthresh = gensym("straightthresh"); - ps_subpatcher = gensym("subpatcher"); - ps_textchanged = gensym("textchanged"); - ps_textcolor = gensym("textcolor"); - ps_textfield = gensym("textfield"); - ps_textmargins = gensym("textmargins"); - ps_title = gensym("title"); - ps_toolbarvisible = gensym("toolbarvisible"); - ps_toppatcher = gensym("toppatcher"); - ps_topview = gensym("topview"); - ps_transparent = gensym("transparent"); - ps_underline = gensym("underline"); - ps_understands = gensym("understands"); - ps_unimbed = gensym("unimbed"); - ps_unlockedinteraction = gensym("unlockedinteraction"); - ps_useellipsis = gensym("useellipsis"); - ps_useimagebuffer = gensym("useimagebuffer"); - ps_user = gensym("user"); - ps_varname = gensym("varname"); - ps_varname_set = gensym("varname_set"); - ps_varname_unset = gensym("varname_unset"); - ps_viewvisibility = gensym("viewvisibility"); - ps_viewvisibilitychanged = gensym("viewvisibilitychanged"); - ps_vis = gensym("vis"); - ps_visible = gensym("visible"); - ps_wantsreturn = gensym("wantsreturn"); - ps_wantstab = gensym("wantstab"); - ps_wind = gensym("wind"); - ps_wordwrap = gensym("wordwrap"); - ps_x64 = gensym("x64"); - ps_x86 = gensym("x86"); - ps_zoomfactor = gensym("zoomfactor"); - ps_zorder = gensym("zorder"); -} - diff --git a/source/c74support/max-includes/common/verinfo_win.rc b/source/c74support/max-includes/common/verinfo_win.rc deleted file mode 100644 index d5552f0f..00000000 --- a/source/c74support/max-includes/common/verinfo_win.rc +++ /dev/null @@ -1,41 +0,0 @@ - -#ifdef APSTUDIO_INVOKED - #error this file is not editable by Microsoft Visual C++ -#endif //APSTUDIO_INVOKED - -#include "max_winversion.h" -#include "winver.h" - -///////////////////////////////////////////////////////////////////////////// -// -// Version Info -// -VS_VERSION_INFO VERSIONINFO -FILEVERSION VER_EXTERNAL_FILEVERSION -PRODUCTVERSION VER_PRODUCTVERSION -FILEFLAGSMASK VER_FILEFLAGSMASK -FILEFLAGS VER_FILEFLAGS -FILEOS VER_FILEOS -FILETYPE VFT_DLL -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK LANGUAGE_ANSI - BEGIN - VALUE "CompanyName", VER_COMPANYNAME_STR - VALUE "FileDescription", VER_FILEDESC_STR - VALUE "FileVersion", VER_EXTERNAL_FILEVERSION_STR - VALUE "InternalName", VER_NAME_STR - VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR - VALUE "LegalTrademarks", VER_LEGALTRADEMARKS_STR - VALUE "OriginalFilename", VER_EXTERNAL_FILENAME_STR - VALUE "ProductName", VER_PRODUCTNAME_STR - VALUE "ProductVersion", VER_PRODUCTVERSION_STR - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", LANGUAGE_TRANS - END -END diff --git a/source/c74support/max-includes/commonsyms.h b/source/c74support/max-includes/commonsyms.h deleted file mode 100644 index 8fc2c80b..00000000 --- a/source/c74support/max-includes/commonsyms.h +++ /dev/null @@ -1,2939 +0,0 @@ -/* - commonsyms.h - -*/ - -#ifndef __COMMON_SYMBOLS_H__ -#define __COMMON_SYMBOLS_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#define COMMON_SYMBOLS_VERSION_5_0_0 500 // Max 5 -#define COMMON_SYMBOLS_VERSION COMMON_SYMBOLS_VERSION_5_0_0 - -typedef struct _common_symbols_table -{ - long version; - t_symbol *s__preset; - t_symbol *s_abbrev; - t_symbol *s_abbrev_rowcomponent; - t_symbol *s_abbrev_setvalue; - t_symbol *s_acceptsdrag; - t_symbol *s_acceptsdrag_locked; - t_symbol *s_acceptsdrag_unlocked; - t_symbol *s_action; - t_symbol *s_action_rowcomponent; - t_symbol *s_action_setvalue; - t_symbol *s_activate; - t_symbol *s_active; - t_symbol *s_activetab; - t_symbol *s_activetabname; - t_symbol *s_activewindow; - t_symbol *s_adapt; - t_symbol *s_add; - t_symbol *s_addattr; - t_symbol *s_addattr_enable; - t_symbol *s_addclient; - t_symbol *s_addfolder; - t_symbol *s_addfolderandsave; - t_symbol *s_addquerydict; - t_symbol *s_addquerydictfromfile; - t_symbol *s_addslot; - t_symbol *s_addtopresentation; - t_symbol *s_addwiretap; - t_symbol *s_adornments; - t_symbol *s_alias; - t_symbol *s_alignboxes; - t_symbol *s_alignconnections; - t_symbol *s_alignlines; - t_symbol *s_all; - t_symbol *s_allkinds; - t_symbol *s_allowmod; - t_symbol *s_alpha; - t_symbol *s_annotation; - t_symbol *s_annotation_name; - t_symbol *s_anydate; - t_symbol *s_anykind; - t_symbol *s_anything; - t_symbol *s_append; - t_symbol *s_append_sql; - t_symbol *s_appendatoms; - t_symbol *s_appendtodictionary; - t_symbol *s_apply; - t_symbol *s_applyboxprototype; - t_symbol *s_applydeep; - t_symbol *s_applydeepif; - t_symbol *s_applyif; - t_symbol *s_args; - t_symbol *s_argument; - t_symbol *s_arguments; - t_symbol *s_argv; - t_symbol *s_ascending; - t_symbol *s_aspect; - t_symbol *s_assist; - t_symbol *s_assoc; - t_symbol *s_atbclick; - t_symbol *s_atom; - t_symbol *s_atomarray; - t_symbol *s_attach; - t_symbol *s_attr_filter_clip; - t_symbol *s_attr_get; - t_symbol *s_attr_getnames; - t_symbol *s_attr_gettarget; - t_symbol *s_attr_modified; - t_symbol *s_attr_offset_array; - t_symbol *s_attr_renamed; - t_symbol *s_attr_setdisabled; - t_symbol *s_attr_setinvisible; - t_symbol *s_attribute; - t_symbol *s_attributes; - t_symbol *s_attrname; - t_symbol *s_audiofile; - t_symbol *s_audioplugin; - t_symbol *s_author; - t_symbol *s_autocompletion; - t_symbol *s_autocompletion_query; - t_symbol *s_autofixwidth; - t_symbol *s_autoheightchanged; - t_symbol *s_autoscroll; - t_symbol *s_back; - t_symbol *s_background; - t_symbol *s_bang; - t_symbol *s_bbu; - t_symbol *s_bclear; - t_symbol *s_bcopy; - t_symbol *s_bcut; - t_symbol *s_begineditbox; - t_symbol *s_beginswith; - t_symbol *s_beginswithorcontains; - t_symbol *s_bfixwidth; - t_symbol *s_bfont; - t_symbol *s_bgcolor; - t_symbol *s_bgcount; - t_symbol *s_bghidden; - t_symbol *s_bglocked; - t_symbol *s_bgmode; - t_symbol *s_blue; - t_symbol *s_bogus; - t_symbol *s_bold; - t_symbol *s_border; - t_symbol *s_borderchanged; - t_symbol *s_bottom_inset; - t_symbol *s_boundingbox; - t_symbol *s_bounds; - t_symbol *s_box; - t_symbol *s_box1; - t_symbol *s_box2; - t_symbol *s_boxalpha; - t_symbol *s_boxanimatetime; - t_symbol *s_boxcomponent; - t_symbol *s_boxcontextitems; - t_symbol *s_boxcontextmenu; - t_symbol *s_boxes; - t_symbol *s_boxlayer; - t_symbol *s_boxnotify; - t_symbol *s_boxscreenrectchanged; - t_symbol *s_bpaste; - t_symbol *s_bpastepic; - t_symbol *s_bpatcher; - t_symbol *s_bpatcher_holder; - t_symbol *s_bpm; - t_symbol *s_bracket_default; - t_symbol *s_bracket_none; - t_symbol *s_break; - t_symbol *s_bredo; - t_symbol *s_brgba; - t_symbol *s_bringforward; - t_symbol *s_bringtofront; - t_symbol *s_bubblesize; - t_symbol *s_build; - t_symbol *s_buildcolumns; - t_symbol *s_bundo; - t_symbol *s_button; - t_symbol *s_c74object; - t_symbol *s_canback; - t_symbol *s_cancopychanged; - t_symbol *s_candropfiles; - t_symbol *s_canforward; - t_symbol *s_canhilite; - t_symbol *s_canmovebackward; - t_symbol *s_canmoveforward; - t_symbol *s_canpastechanged; - t_symbol *s_canremove; - t_symbol *s_cansave; - t_symbol *s_canschedule; - t_symbol *s_canselectchanged; - t_symbol *s_canvastoscreen; - t_symbol *s_caption; - t_symbol *s_catcolors; - t_symbol *s_category; - t_symbol *s_category_first; - t_symbol *s_cell; - t_symbol *s_cell_clue; - t_symbol *s_cellclue; - t_symbol *s_cellenabled; - t_symbol *s_cellschanged; - t_symbol *s_char; - t_symbol *s_char_comma; - t_symbol *s_char_minus; - t_symbol *s_char_semi; - t_symbol *s_char_space; - t_symbol *s_charset_converter; - t_symbol *s_checkbox; - t_symbol *s_choose; - t_symbol *s_chord; - t_symbol *s_chuck; - t_symbol *s_chuckindex; - t_symbol *s_class; - t_symbol *s_class_jit_attribute; - t_symbol *s_class_jit_matrix; - t_symbol *s_class_jit_namespace; - t_symbol *s_classname; - t_symbol *s_classsym; - t_symbol *s_clear; - t_symbol *s_clearactions; - t_symbol *s_clearcolumns; - t_symbol *s_clearitem; - t_symbol *s_clearslots; - t_symbol *s_click; - t_symbol *s_clickaction; - t_symbol *s_clientcontext; - t_symbol *s_clipboard; - t_symbol *s_clipping; - t_symbol *s_clock; - t_symbol *s_close; - t_symbol *s_closebang; - t_symbol *s_clue_cell; - t_symbol *s_clue_header; - t_symbol *s_clueclass; - t_symbol *s_cluelookupattr; - t_symbol *s_cluename; - t_symbol *s_clues; - t_symbol *s_colhead; - t_symbol *s_coll; - t_symbol *s_collectfiles; - t_symbol *s_collective; - t_symbol *s_color; - t_symbol *s_colorvalue; - t_symbol *s_columnadded; - t_symbol *s_columnclue; - t_symbol *s_columndeleted; - t_symbol *s_columnheaderclue; - t_symbol *s_columnminmaxchanged; - t_symbol *s_columnnamechanged; - t_symbol *s_columns; - t_symbol *s_columnwidthchanged; - t_symbol *s_com; - t_symbol *s_command; - t_symbol *s_command_enable; - t_symbol *s_commandgroup; - t_symbol *s_commands; - t_symbol *s_comment; - t_symbol *s_comparison; - t_symbol *s_comparisons; - t_symbol *s_completeconnection; - t_symbol *s_connect; - t_symbol *s_connectcolor; - t_symbol *s_containersizechange; - t_symbol *s_contains; - t_symbol *s_contextmenu; - t_symbol *s_contextualpaste; - t_symbol *s_controller; - t_symbol *s_convert; - t_symbol *s_copy; - t_symbol *s_copyatoms; - t_symbol *s_copyjundo; - t_symbol *s_coremidi; - t_symbol *s_count; - t_symbol *s_create_backup; - t_symbol *s_createbpatcher; - t_symbol *s_createsubpatcher; - t_symbol *s_current; - t_symbol *s_cut; - t_symbol *s_data; - t_symbol *s_date_created; - t_symbol *s_date_lastaccessed; - t_symbol *s_date_modified; - t_symbol *s_days; - t_symbol *s_dblclick; - t_symbol *s_debugwindow_show; - t_symbol *s_decorator; - t_symbol *s_default; - t_symbol *s_default_fontface; - t_symbol *s_default_fontname; - t_symbol *s_default_fontsize; - t_symbol *s_default_matrixplcolor; - t_symbol *s_default_plcolor; - t_symbol *s_default_query; - t_symbol *s_default_sigplcolor; - t_symbol *s_defaultcommand; - t_symbol *s_defaultfocusbox; - t_symbol *s_defaultname; - t_symbol *s_defaultquery; - t_symbol *s_defaults; - t_symbol *s_defaultvaluechanged; - t_symbol *s_definearg; - t_symbol *s_defineargument; - t_symbol *s_definecomparison; - t_symbol *s_definefield; - t_symbol *s_definefolder; - t_symbol *s_definequantifier; - t_symbol *s_definequery; - t_symbol *s_defineslot; - t_symbol *s_definesort; - t_symbol *s_defrect; - t_symbol *s_delete; - t_symbol *s_deleteindex; - t_symbol *s_deletemetadata; - t_symbol *s_deletequery; - t_symbol *s_depthbuffer; - t_symbol *s_descending; - t_symbol *s_description; - t_symbol *s_dest_closing; - t_symbol *s_destination; - t_symbol *s_destrect; - t_symbol *s_destroy; - t_symbol *s_detach; - t_symbol *s_devicerects; - t_symbol *s_dictionary; - t_symbol *s_digest; - t_symbol *s_dim; - t_symbol *s_dimlink; - t_symbol *s_dirty; - t_symbol *s_disabled; - t_symbol *s_disablewiretap; - t_symbol *s_disconnect; - t_symbol *s_do_get_shared_context; - t_symbol *s_document; - t_symbol *s_docwindow_docrect; - t_symbol *s_docwindow_refrect; - t_symbol *s_docwindow_searchrect; - t_symbol *s_docwindow_tocrect; - t_symbol *s_docwindow_tutrect; - t_symbol *s_domain; - t_symbol *s_done; - t_symbol *s_donewobj; - t_symbol *s_dontsave; - t_symbol *s_doublebuffer; - t_symbol *s_doubleclick; - t_symbol *s_doubleclickaction; - t_symbol *s_doubleclicked; - t_symbol *s_down; - t_symbol *s_downcaption; - t_symbol *s_downicon; - t_symbol *s_drag; - t_symbol *s_dragactive; - t_symbol *s_dragdrop; - t_symbol *s_dragenter; - t_symbol *s_dragexit; - t_symbol *s_draggablechanged; - t_symbol *s_dragmove; - t_symbol *s_dragrole; - t_symbol *s_dragtarget; - t_symbol *s_drawfirstin; - t_symbol *s_drawinlast; - t_symbol *s_drawsresizer; - t_symbol *s_dropaction; - t_symbol *s_dropaction_addapplyprototype; - t_symbol *s_dropaction_addconnectedmessage; - t_symbol *s_dropaction_addcustom; - t_symbol *s_dropaction_addcustom_extended; - t_symbol *s_dropaction_addobjectcreation; - t_symbol *s_dropaction_addopeninnewwindow; - t_symbol *s_dropaction_addprototypeobjectcreation; - t_symbol *s_dropfiles; - t_symbol *s_droprole; - t_symbol *s_droprole_locked; - t_symbol *s_droprole_unlocked; - t_symbol *s_dsp; - t_symbol *s_dump; - t_symbol *s_dumpboxes; - t_symbol *s_dumpout; - t_symbol *s_duplicate; - t_symbol *s_edit; - t_symbol *s_edit_framecolor; - t_symbol *s_editactive; - t_symbol *s_editbox; - t_symbol *s_editcell; - t_symbol *s_editing_bgcolor; - t_symbol *s_editmetadata; - t_symbol *s_editonclick; - t_symbol *s_editor; - t_symbol *s_elements; - t_symbol *s_embed; - t_symbol *s_emptytext; - t_symbol *s_enable; - t_symbol *s_enable_rowcomponent; - t_symbol *s_enable_setvalue; - t_symbol *s_enablehscroll; - t_symbol *s_enabler; - t_symbol *s_enablevscroll; - t_symbol *s_enddrag; - t_symbol *s_endmoveboxes; - t_symbol *s_endpoint; - t_symbol *s_endprobe; - t_symbol *s_endswith; - t_symbol *s_endtransaction; - t_symbol *s_enter; - t_symbol *s_entertext; - t_symbol *s_enum; - t_symbol *s_enumindex; - t_symbol *s_enummsg; - t_symbol *s_enumtarget; - t_symbol *s_enumvals; - t_symbol *s_equalto; - t_symbol *s_error; - t_symbol *s_eventinterval; - t_symbol *s_everything; - t_symbol *s_excludebg; - t_symbol *s_exec; - t_symbol *s_execstring; - t_symbol *s_execstring_safe; - t_symbol *s_execute; - t_symbol *s_executefind; - t_symbol *s_extension; - t_symbol *s_extra; - t_symbol *s_ezquery; - t_symbol *s_fadetinge; - t_symbol *s_fgcolor; - t_symbol *s_fghidden; - t_symbol *s_field; - t_symbol *s_fieldnamebyindex; - t_symbol *s_fields; - t_symbol *s_file; - t_symbol *s_filefolder; - t_symbol *s_fileformat; - t_symbol *s_filename; - t_symbol *s_filepath; - t_symbol *s_filetypemessage; - t_symbol *s_fileusage; - t_symbol *s_filter; - t_symbol *s_filterget; - t_symbol *s_filterset; - t_symbol *s_find; - t_symbol *s_find_enableselectall; - t_symbol *s_findall; - t_symbol *s_finddoneclicked; - t_symbol *s_findfirst; - t_symbol *s_findmaster; - t_symbol *s_findnextclicked; - t_symbol *s_findprevclicked; - t_symbol *s_findreturnkeypressed; - t_symbol *s_findselectallclicked; - t_symbol *s_findsize; - t_symbol *s_findtextchanged; - t_symbol *s_first; - t_symbol *s_firstline; - t_symbol *s_firstobject; - t_symbol *s_firstview; - t_symbol *s_five; - t_symbol *s_fixed; - t_symbol *s_fixwidth; - t_symbol *s_flags; - t_symbol *s_flat; - t_symbol *s_float; - t_symbol *s_float32; - t_symbol *s_float64; - t_symbol *s_floating; - t_symbol *s_flonum; - t_symbol *s_flush; - t_symbol *s_focusgained; - t_symbol *s_focuslost; - t_symbol *s_focusonvis; - t_symbol *s_fold; - t_symbol *s_folder; - t_symbol *s_folderdropped; - t_symbol *s_folderpath; - t_symbol *s_font; - t_symbol *s_fontchanged; - t_symbol *s_fontface; - t_symbol *s_fontfixwidth; - t_symbol *s_fontinfochanged; - t_symbol *s_fontname; - t_symbol *s_fontnamechanged; - t_symbol *s_fontpanel_isclientwindow; - t_symbol *s_fontpanelfontcolor; - t_symbol *s_fontpanelfontface; - t_symbol *s_fontpanelfontname; - t_symbol *s_fontpanelfontsize; - t_symbol *s_fontsize; - t_symbol *s_fontsizechanged; - t_symbol *s_fonttarget; - t_symbol *s_forbidclose; - t_symbol *s_forward; - t_symbol *s_four; - t_symbol *s_fpic; - t_symbol *s_free; - t_symbol *s_freebang; - t_symbol *s_freekeys; - t_symbol *s_freepatcherview; - t_symbol *s_frgb; - t_symbol *s_frgba; - t_symbol *s_fromdictionary; - t_symbol *s_fromgworld; - t_symbol *s_frommatrix; - t_symbol *s_frommatrix_trunc; - t_symbol *s_front; - t_symbol *s_frozen; - t_symbol *s_frozen_box_attributes; - t_symbol *s_frozen_object_attributes; - t_symbol *s_frozen_pendingattrs; - t_symbol *s_frozen_text; - t_symbol *s_fsaa; - t_symbol *s_fullname; - t_symbol *s_fullscreen; - t_symbol *s_funall; - t_symbol *s_function; - t_symbol *s_g_inout_binlet; - t_symbol *s_g_max_newest; - t_symbol *s_g_max_newest_box; - t_symbol *s_gb; - t_symbol *s_genframe; - t_symbol *s_get; - t_symbol *s_get_jit_ob; - t_symbol *s_getargumentlabel; - t_symbol *s_getassoc; - t_symbol *s_getatoms; - t_symbol *s_getattrtext; - t_symbol *s_getbounds; - t_symbol *s_getboxlayer; - t_symbol *s_getcaptioninfo; - t_symbol *s_getcellcolor; - t_symbol *s_getcelldescription; - t_symbol *s_getcelleditable; - t_symbol *s_getcellfiletypes; - t_symbol *s_getcellicon; - t_symbol *s_getcellindentlevel; - t_symbol *s_getcellmenu; - t_symbol *s_getcelltext; - t_symbol *s_getcelltextlength; - t_symbol *s_getcellunits; - t_symbol *s_getcellunitsyms; - t_symbol *s_getcellvalue; - t_symbol *s_getcolumnnames; - t_symbol *s_getcomparisonlabel; - t_symbol *s_getcomponent; - t_symbol *s_getcontainedcomponent; - t_symbol *s_getdata; - t_symbol *s_getdefaultfocuscomponent; - t_symbol *s_getdefext; - t_symbol *s_getdeftype; - t_symbol *s_getdrawparams; - t_symbol *s_getdst; - t_symbol *s_getfieldlabel; - t_symbol *s_getfindtext; - t_symbol *s_getflags; - t_symbol *s_getfolderpath; - t_symbol *s_getfonttarget; - t_symbol *s_getfontview; - t_symbol *s_getformat; - t_symbol *s_gethintdelay; - t_symbol *s_getholder; - t_symbol *s_getimage; - t_symbol *s_getindex; - t_symbol *s_getinfo; - t_symbol *s_getinports; - t_symbol *s_getinput; - t_symbol *s_getinputlist; - t_symbol *s_getioproc; - t_symbol *s_getkeys; - t_symbol *s_getlastinsertid; - t_symbol *s_getlayoutinfo; - t_symbol *s_getlogical; - t_symbol *s_getmatrix; - t_symbol *s_getmethod; - t_symbol *s_getname; - t_symbol *s_getnamed; - t_symbol *s_getnamedbox; - t_symbol *s_getnextrecord; - t_symbol *s_getnthview; - t_symbol *s_getobject; - t_symbol *s_getoffset; - t_symbol *s_getoutports; - t_symbol *s_getoutput; - t_symbol *s_getoutputlist; - t_symbol *s_getprobevalue; - t_symbol *s_getptr; - t_symbol *s_getptr_forview; - t_symbol *s_getquantifierlabel; - t_symbol *s_getquery; - t_symbol *s_getquerydict; - t_symbol *s_getquerynames; - t_symbol *s_getquerytype; - t_symbol *s_getrect; - t_symbol *s_getrowcolor; - t_symbol *s_getrowobject; - t_symbol *s_getselected; - t_symbol *s_getsize; - t_symbol *s_getsort; - t_symbol *s_getspecial; - t_symbol *s_getsrc; - t_symbol *s_getstackbase; - t_symbol *s_getsyswind; - t_symbol *s_gettextptr; - t_symbol *s_gettitle; - t_symbol *s_gettype; - t_symbol *s_gettypelist; - t_symbol *s_getunitstext; - t_symbol *s_getunitsyms; - t_symbol *s_getvalueof; - t_symbol *s_getvisiblecanvasrect; - t_symbol *s_getwind; - t_symbol *s_getwindowrect; - t_symbol *s_gl_line_loop; - t_symbol *s_gl_line_strip; - t_symbol *s_gl_lines; - t_symbol *s_gl_points; - t_symbol *s_gl_polygon; - t_symbol *s_gl_quad_grid; - t_symbol *s_gl_quad_strip; - t_symbol *s_gl_quads; - t_symbol *s_gl_tri_fan; - t_symbol *s_gl_tri_grid; - t_symbol *s_gl_tri_strip; - t_symbol *s_gl_triangles; - t_symbol *s_global; - t_symbol *s_globalpatchername; - t_symbol *s_go; - t_symbol *s_grabfocus; - t_symbol *s_greaterthan; - t_symbol *s_green; - t_symbol *s_grid; - t_symbol *s_gridonopen; - t_symbol *s_gridsize; - t_symbol *s_gridsnap; - t_symbol *s_gridsnaponopen; - t_symbol *s_group; - t_symbol *s_grow; - t_symbol *s_growboth; - t_symbol *s_growy; - t_symbol *s_hasclose; - t_symbol *s_hasdatatype; - t_symbol *s_hasgrow; - t_symbol *s_hashorizscroll; - t_symbol *s_hashtab_entry_free; - t_symbol *s_hashtab_entry_new; - t_symbol *s_hashtab_free; - t_symbol *s_hasmenu; - t_symbol *s_hasminimize; - t_symbol *s_hastitlebar; - t_symbol *s_hasvertscroll; - t_symbol *s_haszoom; - t_symbol *s_head; - t_symbol *s_height; - t_symbol *s_help; - t_symbol *s_helpfile; - t_symbol *s_helpmenu; - t_symbol *s_helpname; - t_symbol *s_hidden; - t_symbol *s_hiddenconnect; - t_symbol *s_hide; - t_symbol *s_hideablechanged; - t_symbol *s_hidecaption; - t_symbol *s_hidewindow; - t_symbol *s_hint; - t_symbol *s_hint_disabled; - t_symbol *s_hinttrack; - t_symbol *s_history; - t_symbol *s_history_entry; - t_symbol *s_hittest; - t_symbol *s_holderoptions; - t_symbol *s_hz; - t_symbol *s_icon; - t_symbol *s_id; - t_symbol *s_identifier; - t_symbol *s_ignoreclick; - t_symbol *s_image; - t_symbol *s_imagefile; - t_symbol *s_imbed; - t_symbol *s_imprint; - t_symbol *s_includebg; - t_symbol *s_index; - t_symbol *s_info; - t_symbol *s_init; - t_symbol *s_inlet; - t_symbol *s_inletinfo; - t_symbol *s_inletnum; - t_symbol *s_inletoutlet; - t_symbol *s_inletscaleratio; - t_symbol *s_inputcount; - t_symbol *s_insert; - t_symbol *s_insertboxtext; - t_symbol *s_insertindex; - t_symbol *s_insertpatcher; - t_symbol *s_insertsegment; - t_symbol *s_insetchanged; - t_symbol *s_insp; - t_symbol *s_inspectee; - t_symbol *s_inspectees; - t_symbol *s_inspector; - t_symbol *s_inspector_clueclass; - t_symbol *s_inspector_color; - t_symbol *s_inspector_customize; - t_symbol *s_inspector_editor; - t_symbol *s_inspector_fontattr; - t_symbol *s_inspector_rect; - t_symbol *s_inspector_tab; - t_symbol *s_inspector_tabheight; - t_symbol *s_inspector_title; - t_symbol *s_inspector_toolbarid; - t_symbol *s_inspectorchange; - t_symbol *s_instance_attributes; - t_symbol *s_instanceattr; - t_symbol *s_int; - t_symbol *s_int16; - t_symbol *s_int24; - t_symbol *s_int32; - t_symbol *s_int8; - t_symbol *s_interface; - t_symbol *s_interp; - t_symbol *s_interp_arg; - t_symbol *s_interval; - t_symbol *s_invalidate; - t_symbol *s_invalidateallboxlayers; - t_symbol *s_invalidateboxlayer; - t_symbol *s_invalidatetoolbar; - t_symbol *s_invis; - t_symbol *s_invisaction; - t_symbol *s_invisible; - t_symbol *s_invlabel; - t_symbol *s_invmsg; - t_symbol *s_ioname; - t_symbol *s_ioproc; - t_symbol *s_is; - t_symbol *s_iscolumnvisible; - t_symbol *s_isfile; - t_symbol *s_isfirstin; - t_symbol *s_isfolder; - t_symbol *s_iso_8859_1; - t_symbol *s_isproto; - t_symbol *s_isselectedqueryremovable; - t_symbol *s_isselectionvalid; - t_symbol *s_issystemquery; - t_symbol *s_italic; - t_symbol *s_items; - t_symbol *s_iterate; - t_symbol *s_javascript; - t_symbol *s_jbogus; - t_symbol *s_jbox; - t_symbol *s_jbox_bytecount; - t_symbol *s_jbox_instances; - t_symbol *s_jboxattr; - t_symbol *s_jdrag; - t_symbol *s_jed; - t_symbol *s_jgraphics; - t_symbol *s_jit_attr_offset; - t_symbol *s_jit_attr_offset_array; - t_symbol *s_jit_attribute; - t_symbol *s_jit_gl_texture; - t_symbol *s_jit_linklist; - t_symbol *s_jit_matrix; - t_symbol *s_jit_mop; - t_symbol *s_jit_namespace; - t_symbol *s_jpatcher; - t_symbol *s_jpatcher_bytecount; - t_symbol *s_jpatcher_instances; - t_symbol *s_jpatchercontroller; - t_symbol *s_jpatcherholder; - t_symbol *s_jpatchline; - t_symbol *s_jpg; - t_symbol *s_jsave; - t_symbol *s_JSON; - t_symbol *s_jsonreader; - t_symbol *s_jsonwriter; - t_symbol *s_juibogus; - t_symbol *s_juiobject; - t_symbol *s_jundo_command; - t_symbol *s_jundo_commandgroup; - t_symbol *s_jweb_history; - t_symbol *s_jwind; - t_symbol *s_kb; - t_symbol *s_key; - t_symbol *s_key_backslash; - t_symbol *s_key_backspace; - t_symbol *s_key_clear; - t_symbol *s_key_delete; - t_symbol *s_key_downarrow; - t_symbol *s_key_end; - t_symbol *s_key_enter; - t_symbol *s_key_esc; - t_symbol *s_key_grave; - t_symbol *s_key_helpkey; - t_symbol *s_key_home; - t_symbol *s_key_insert; - t_symbol *s_key_leftarrow; - t_symbol *s_key_optionspace; - t_symbol *s_key_pagedown; - t_symbol *s_key_pageup; - t_symbol *s_key_return; - t_symbol *s_key_rightarrow; - t_symbol *s_key_spacebar; - t_symbol *s_key_tab; - t_symbol *s_key_tilde; - t_symbol *s_key_uparrow; - t_symbol *s_key_vertbar; - t_symbol *s_keyaction; - t_symbol *s_keyfilter; - t_symbol *s_keyfocuschanged; - t_symbol *s_keymessage; - t_symbol *s_kind; - t_symbol *s_kindenum; - t_symbol *s_kindis; - t_symbol *s_kindmenu; - t_symbol *s_label; - t_symbol *s_labels; - t_symbol *s_last; - t_symbol *s_last_access; - t_symbol *s_lastmessage; - t_symbol *s_lastmodified; - t_symbol *s_lastobject; - t_symbol *s_latency; - t_symbol *s_lessthan; - t_symbol *s_linear; - t_symbol *s_linechanged; - t_symbol *s_linecontextmenu; - t_symbol *s_linecount; - t_symbol *s_linenotify; - t_symbol *s_lines; - t_symbol *s_lineup; - t_symbol *s_list; - t_symbol *s_list_rowcomponent; - t_symbol *s_list_setvalue; - t_symbol *s_listboxprototype; - t_symbol *s_listfiles; - t_symbol *s_listwindow; - t_symbol *s_loadbang; - t_symbol *s_local; - t_symbol *s_lock; - t_symbol *s_locked; - t_symbol *s_locked_iocolor; - t_symbol *s_lockeddragscroll; - t_symbol *s_lockedpatchercontextmenu; - t_symbol *s_log; - t_symbol *s_long; - t_symbol *s_lookup; - t_symbol *s_lookupcommand; - t_symbol *s_loop; - t_symbol *s_macroman; - t_symbol *s_mainsearchentry; - t_symbol *s_makearray; - t_symbol *s_makeview; - t_symbol *s_margin; - t_symbol *s_matchdragrole; - t_symbol *s_matchinspectees; - t_symbol *s_matrix; - t_symbol *s_matrix_calc; - t_symbol *s_matrixctrl; - t_symbol *s_matrixname; - t_symbol *s_max; - t_symbol *s_max_jit_classex; - t_symbol *s_maxapplication; - t_symbol *s_maxclass; - t_symbol *s_maxdebug; - t_symbol *s_maxdim; - t_symbol *s_maximize; - t_symbol *s_maxmessage; - t_symbol *s_maxplanecount; - t_symbol *s_maxwindow; - t_symbol *s_mb; - t_symbol *s_measuretext; - t_symbol *s_menu; - t_symbol *s_menubar; - t_symbol *s_menus; - t_symbol *s_menus_runtime; - t_symbol *s_message; - t_symbol *s_messages; - t_symbol *s_metadata; - t_symbol *s_metadatalist; - t_symbol *s_metadatawindow; - t_symbol *s_methodall; - t_symbol *s_methodindex; - t_symbol *s_methods; - t_symbol *s_midpoints; - t_symbol *s_min; - t_symbol *s_mindim; - t_symbol *s_minimize; - t_symbol *s_minplanecount; - t_symbol *s_minus; - t_symbol *s_mode; - t_symbol *s_modified; - t_symbol *s_monitor; - t_symbol *s_months; - t_symbol *s_mousedoubleclick; - t_symbol *s_mousedown; - t_symbol *s_mousedownonchar; - t_symbol *s_mousedrag; - t_symbol *s_mousedragdelta; - t_symbol *s_mouseenter; - t_symbol *s_mouseleave; - t_symbol *s_mousemove; - t_symbol *s_mousescale; - t_symbol *s_mouseup; - t_symbol *s_mousewheel; - t_symbol *s_move; - t_symbol *s_moveboxes; - t_symbol *s_moved; - t_symbol *s_moveifoffdisplay; - t_symbol *s_movelines; - t_symbol *s_movesegment; - t_symbol *s_moviedim; - t_symbol *s_moviefile; - t_symbol *s_ms; - t_symbol *s_ms_ansi; - t_symbol *s_mulaw; - t_symbol *s_mult; - t_symbol *s_multiboxcontextmenu; - t_symbol *s_multilinecontextmenu; - t_symbol *s_mute; - t_symbol *s_name; - t_symbol *s_name_changed; - t_symbol *s_name_rowcomponent; - t_symbol *s_name_setvalue; - t_symbol *s_name_textcolor; - t_symbol *s_name_textstyle; - t_symbol *s_name_width; - t_symbol *s_nameinspector; - t_symbol *s_nativewindow; - t_symbol *s_navkey; - t_symbol *s_new; - t_symbol *s_newcopy; - t_symbol *s_newdefault; - t_symbol *s_newex; - t_symbol *s_newfilebrowser; - t_symbol *s_newfolder; - t_symbol *s_newlines; - t_symbol *s_newobj; - t_symbol *s_newobject; - t_symbol *s_newobjects; - t_symbol *s_newpatcherview; - t_symbol *s_newpatchline; - t_symbol *s_newquery; - t_symbol *s_next; - t_symbol *s_nextline; - t_symbol *s_nextobject; - t_symbol *s_nextrecord; - t_symbol *s_nextview; - t_symbol *s_nfilters; - t_symbol *s_No; - t_symbol *s_noactivate; - t_symbol *s_nobox; - t_symbol *s_noclipse; - t_symbol *s_noclose; - t_symbol *s_noedit; - t_symbol *s_noeval; - t_symbol *s_nofloat; - t_symbol *s_nofontpanel; - t_symbol *s_nogrow; - t_symbol *s_nomad; - t_symbol *s_nomenu; - t_symbol *s_nominimize; - t_symbol *s_none; - t_symbol *s_nonomad; - t_symbol *s_normalheight; - t_symbol *s_normalwidth; - t_symbol *s_noscroll; - t_symbol *s_not; - t_symbol *s_notevalues; - t_symbol *s_nothing; - t_symbol *s_notify; - t_symbol *s_notifyall; - t_symbol *s_notifyall_delete; - t_symbol *s_notifyall_new; - t_symbol *s_notitle; - t_symbol *s_nozoom; - t_symbol *s_nth; - t_symbol *s_number; - t_symbol *s_number_paint; - t_symbol *s_number_rowcomponent; - t_symbol *s_number_setvalue; - t_symbol *s_numfields; - t_symbol *s_nummidpoints; - t_symbol *s_numrecords; - t_symbol *s_numresults; - t_symbol *s_numrowschanged; - t_symbol *s_numtabs; - t_symbol *s_numviews; - t_symbol *s_numwindowviews; - t_symbol *s_ob_sym; - t_symbol *s_obex_container; - t_symbol *s_objargs; - t_symbol *s_object; - t_symbol *s_object_id; - t_symbol *s_objectcount; - t_symbol *s_objectfilename; - t_symbol *s_objectlist; - t_symbol *s_objectpalette; - t_symbol *s_objectview_doubleclick; - t_symbol *s_objectview_selected; - t_symbol *s_objptr2index; - t_symbol *s_objtype; - t_symbol *s_obtrusiveerror; - t_symbol *s_offset; - t_symbol *s_offset_rowcomponent; - t_symbol *s_offset_setvalue; - t_symbol *s_offsetfrom; - t_symbol *s_offsetmidpoints; - t_symbol *s_okclose; - t_symbol *s_oksize; - t_symbol *s_one; - t_symbol *s_onoff; - t_symbol *s_opaque; - t_symbol *s_open; - t_symbol *s_openassoc; - t_symbol *s_openfile; - t_symbol *s_openinpresentation; - t_symbol *s_openquery; - t_symbol *s_openrect; - t_symbol *s_openweb; - t_symbol *s_optional; - t_symbol *s_optionsdirty; - t_symbol *s_order; - t_symbol *s_order_by; - t_symbol *s_orderbefore; - t_symbol *s_orderfront; - t_symbol *s_orientation; - t_symbol *s_outlet; - t_symbol *s_outletnum; - t_symbol *s_outline; - t_symbol *s_outmode; - t_symbol *s_output; - t_symbol *s_outputcount; - t_symbol *s_outputmatrix; - t_symbol *s_outputmode; - t_symbol *s_overdrive; - t_symbol *s_owner; - t_symbol *s_ownervis; - t_symbol *s_p; - t_symbol *s_paint; - t_symbol *s_paintsbackground; - t_symbol *s_palette_action; - t_symbol *s_palette_caption; - t_symbol *s_palette_category; - t_symbol *s_palette_numerical_order; - t_symbol *s_palette_order; - t_symbol *s_palette_protocount; - t_symbol *s_palette_tab_action; - t_symbol *s_parameter_enable; - t_symbol *s_parent; - t_symbol *s_parentclass; - t_symbol *s_parentpatcher; - t_symbol *s_parse; - t_symbol *s_parsefile; - t_symbol *s_paste; - t_symbol *s_pastefileintoobject; - t_symbol *s_pastefrom; - t_symbol *s_pastereplace; - t_symbol *s_patcher; - t_symbol *s_patchercomponent; - t_symbol *s_patchercontextmenu; - t_symbol *s_patchereditor; - t_symbol *s_patchername; - t_symbol *s_patchernotify; - t_symbol *s_patcherview; - t_symbol *s_patcherview_instances; - t_symbol *s_patcherview_invis; - t_symbol *s_patcherview_notify_locked; - t_symbol *s_patcherview_notify_presentation; - t_symbol *s_patcherview_vis; - t_symbol *s_patching_position; - t_symbol *s_patching_rect; - t_symbol *s_patching_size; - t_symbol *s_patchline; - t_symbol *s_path; - t_symbol *s_pattrstorage; - t_symbol *s_pclose; - t_symbol *s_pending; - t_symbol *s_pic; - t_symbol *s_pictctrl; - t_symbol *s_plane; - t_symbol *s_planecount; - t_symbol *s_planelink; - t_symbol *s_plugconfig; - t_symbol *s_plus; - t_symbol *s_png; - t_symbol *s_pointer; - t_symbol *s_popupmenu; - t_symbol *s_portenable; - t_symbol *s_position; - t_symbol *s_postname; - t_symbol *s_pound_B; - t_symbol *s_pound_D; - t_symbol *s_pound_N; - t_symbol *s_pound_P; - t_symbol *s_pound_X; - t_symbol *s_preferences; - t_symbol *s_preload; - t_symbol *s_presentation; - t_symbol *s_presentation_linecount; - t_symbol *s_presentation_position; - t_symbol *s_presentation_rect; - t_symbol *s_presentation_size; - t_symbol *s_preset; - t_symbol *s_preset_data; - t_symbol *s_preview; - t_symbol *s_preview_image; - t_symbol *s_previewheight; - t_symbol *s_previewimagedata; - t_symbol *s_prevobject; - t_symbol *s_print; - t_symbol *s_priority; - t_symbol *s_prototype; - t_symbol *s_prototype_binbuf; - t_symbol *s_prototypename; - t_symbol *s_psave; - t_symbol *s_pulsate; - t_symbol *s_pupdate; - t_symbol *s_quantifier; - t_symbol *s_quantifier_exists; - t_symbol *s_quantifiers; - t_symbol *s_quantize; - t_symbol *s_queries; - t_symbol *s_query; - t_symbol *s_query_selected; - t_symbol *s_querycontroller; - t_symbol *s_queryid; - t_symbol *s_querylist; - t_symbol *s_queryname; - t_symbol *s_querypreview; - t_symbol *s_querysearch; - t_symbol *s_quickmap; - t_symbol *s_quit; - t_symbol *s_quitting; - t_symbol *s_radial; - t_symbol *s_range; - t_symbol *s_rawfind; - t_symbol *s_rawwindsave; - t_symbol *s_rawwindsaveas; - t_symbol *s_read; - t_symbol *s_readonly; - t_symbol *s_realclass; - t_symbol *s_rebuilding; - t_symbol *s_recordbyindex; - t_symbol *s_recreate_invis; - t_symbol *s_recreate_vis; - t_symbol *s_rect; - t_symbol *s_rectangle; - t_symbol *s_rectangular; - t_symbol *s_red; - t_symbol *s_redostack; - t_symbol *s_redraw; - t_symbol *s_redrawcontents; - t_symbol *s_reference; - t_symbol *s_reffile; - t_symbol *s_refinequery; - t_symbol *s_refresh; - t_symbol *s_register; - t_symbol *s_remove; - t_symbol *s_removeattr; - t_symbol *s_removeattr_enable; - t_symbol *s_removeboxlayer; - t_symbol *s_removeclient; - t_symbol *s_removefrompresentation; - t_symbol *s_removelines; - t_symbol *s_removeobjects; - t_symbol *s_removesegment; - t_symbol *s_removeslot; - t_symbol *s_removewiretap; - t_symbol *s_rename; - t_symbol *s_renumberslot; - t_symbol *s_replace; - t_symbol *s_replaced_args; - t_symbol *s_reschedule; - t_symbol *s_reset; - t_symbol *s_resize; - t_symbol *s_resizeaction; - t_symbol *s_resized; - t_symbol *s_resizelimits; - t_symbol *s_resizenotify; - t_symbol *s_resolve_name; - t_symbol *s_resolve_raw; - t_symbol *s_resort; - t_symbol *s_resource; - t_symbol *s_respondtoclick; - t_symbol *s_restore; - t_symbol *s_restrict_dim; - t_symbol *s_restrict_planecount; - t_symbol *s_restrict_type; - t_symbol *s_result; - t_symbol *s_retain; - t_symbol *s_revealinfinder; - t_symbol *s_reverse; - t_symbol *s_rgb; - t_symbol *s_rgba; - t_symbol *s_rolename; - t_symbol *s_rotate; - t_symbol *s_rounded; - t_symbol *s_rowcolorchanged; - t_symbol *s_rowcomponent; - t_symbol *s_rowenabled; - t_symbol *s_rowhead; - t_symbol *s_rowheightchanged; - t_symbol *s_safebang; - t_symbol *s_safeclear; - t_symbol *s_samples; - t_symbol *s_save; - t_symbol *s_save2; - t_symbol *s_saveas; - t_symbol *s_saveboxprototype; - t_symbol *s_saved_object_attributes; - t_symbol *s_savefilepath; - t_symbol *s_savelasttab; - t_symbol *s_savequery; - t_symbol *s_saveto; - t_symbol *s_savewindow; - t_symbol *s_savingdefault; - t_symbol *s_scale; - t_symbol *s_script; - t_symbol *s_scrollanimatetime; - t_symbol *s_scrolloffset; - t_symbol *s_scrollorigin; - t_symbol *s_scrollposition; - t_symbol *s_scrollselectedobjectsintoview; - t_symbol *s_scrollto; - t_symbol *s_scrollviewtoshow; - t_symbol *s_search; - t_symbol *s_searchterm; - t_symbol *s_searchtext; - t_symbol *s_select; - t_symbol *s_selectallonedit; - t_symbol *s_selectbox; - t_symbol *s_selectcategory; - t_symbol *s_selectcell; - t_symbol *s_selectdropped; - t_symbol *s_selected; - t_symbol *s_selectedboxes; - t_symbol *s_selectedlines; - t_symbol *s_selectedrow; - t_symbol *s_selectedrow_contextual; - t_symbol *s_selfsave; - t_symbol *s_selmode; - t_symbol *s_send; - t_symbol *s_sendbackward; - t_symbol *s_sendbox; - t_symbol *s_sendboxmsg; - t_symbol *s_senderclasssym; - t_symbol *s_sendtoback; - t_symbol *s_session_usage_count; - t_symbol *s_set; - t_symbol *s_setall; - t_symbol *s_setassoc; - t_symbol *s_setatoms; - t_symbol *s_setattr; - t_symbol *s_setboxrect; - t_symbol *s_setcellunits; - t_symbol *s_setcellvalue; - t_symbol *s_setcontainedcomponent; - t_symbol *s_setdata; - t_symbol *s_setdefaults; - t_symbol *s_setdirty; - t_symbol *s_seteditboxcaretposition; - t_symbol *s_seteditboxhighlightedregion; - t_symbol *s_seteditview; - t_symbol *s_setfilter; - t_symbol *s_setflags; - t_symbol *s_setfont; - t_symbol *s_setglobalcoords; - t_symbol *s_setinfo; - t_symbol *s_setinfo_ex; - t_symbol *s_setmethod; - t_symbol *s_setmidpoint; - t_symbol *s_setpatcherattr; - t_symbol *s_setptr; - t_symbol *s_setrect; - t_symbol *s_setspecialrow; - t_symbol *s_settext; - t_symbol *s_setunitsym; - t_symbol *s_setvalue; - t_symbol *s_setvalueof; - t_symbol *s_setvaluetext; - t_symbol *s_setwindowrect; - t_symbol *s_setwindowsize; - t_symbol *s_setzorder; - t_symbol *s_shortcut; - t_symbol *s_show; - t_symbol *s_showcaption; - t_symbol *s_showdoc; - t_symbol *s_showfind; - t_symbol *s_showpreview; - t_symbol *s_showrecent; - t_symbol *s_showrow; - t_symbol *s_showsaveable; - t_symbol *s_showtarget; - t_symbol *s_shuffle; - t_symbol *s_signal; - t_symbol *s_sinceyesterday; - t_symbol *s_singleinspector; - t_symbol *s_size; - t_symbol *s_sizeboxes; - t_symbol *s_slot_definition; - t_symbol *s_slot_modified; - t_symbol *s_slots; - t_symbol *s_smpte; - t_symbol *s_snaptogrid; - t_symbol *s_sort; - t_symbol *s_sortablechanged; - t_symbol *s_sortcolumn; - t_symbol *s_sortdata; - t_symbol *s_sorted; - t_symbol *s_sorted_by_column; - t_symbol *s_source; - t_symbol *s_spacing; - t_symbol *s_special; - t_symbol *s_specialclick; - t_symbol *s_specialcount; - t_symbol *s_sql; - t_symbol *s_sql2; - t_symbol *s_sqlite; - t_symbol *s_sqlite_result; - t_symbol *s_sqlstring; - t_symbol *s_sr; - t_symbol *s_start; - t_symbol *s_startdrag; - t_symbol *s_startmoveboxes; - t_symbol *s_startpoint; - t_symbol *s_startprobe; - t_symbol *s_starttransaction; - t_symbol *s_startwindow; - t_symbol *s_state; - t_symbol *s_sticky_attr; - t_symbol *s_sticky_method; - t_symbol *s_stop; - t_symbol *s_store; - t_symbol *s_straighten; - t_symbol *s_straightend; - t_symbol *s_straightstart; - t_symbol *s_straightthresh; - t_symbol *s_string; - t_symbol *s_style; - t_symbol *s_sub; - t_symbol *s_subpatcher; - t_symbol *s_surfacebuffer; - t_symbol *s_svg; - t_symbol *s_swap; - t_symbol *s_swatches; - t_symbol *s_symbol; - t_symbol *s_sysqelem; - t_symbol *s_t; - t_symbol *s_tab_bgcolor; - t_symbol *s_table; - t_symbol *s_tabledata; - t_symbol *s_tag; - t_symbol *s_tags; - t_symbol *s_tapcontroller_show; - t_symbol *s_tapwindow; - t_symbol *s_target; - t_symbol *s_template; - t_symbol *s_tempo; - t_symbol *s_text; - t_symbol *s_text_commaseparated; - t_symbol *s_text_large; - t_symbol *s_text_onesymbol; - t_symbol *s_textchanged; - t_symbol *s_textcolor; - t_symbol *s_textfield; - t_symbol *s_textfile; - t_symbol *s_textmargins; - t_symbol *s_textstyle; - t_symbol *s_thismonth; - t_symbol *s_thisweek; - t_symbol *s_threadpriority; - t_symbol *s_threadsafe; - t_symbol *s_three; - t_symbol *s_ticks; - t_symbol *s_time; - t_symbol *s_timeobj; - t_symbol *s_timesigchanged; - t_symbol *s_timeupdate; - t_symbol *s_tinge; - t_symbol *s_title; - t_symbol *s_titleassoc; - t_symbol *s_tobinbuf; - t_symbol *s_toc; - t_symbol *s_today; - t_symbol *s_todictionary; - t_symbol *s_togworld; - t_symbol *s_tool; - t_symbol *s_tool_paint; - t_symbol *s_tool_rowcomponent; - t_symbol *s_tool_setvalue; - t_symbol *s_tool_sort; - t_symbol *s_toolbarheight; - t_symbol *s_toolbarid; - t_symbol *s_toolbars; - t_symbol *s_toolbarvisible; - t_symbol *s_top_inset; - t_symbol *s_topmost; - t_symbol *s_toppatcher; - t_symbol *s_topredoname; - t_symbol *s_topundoname; - t_symbol *s_trackaction; - t_symbol *s_transparent; - t_symbol *s_transport; - t_symbol *s_traverse; - t_symbol *s_triangle; - t_symbol *s_tutorial; - t_symbol *s_two; - t_symbol *s_twobytecomment; - t_symbol *s_type; - t_symbol *s_typed_usage_count; - t_symbol *s_typedwrapper; - t_symbol *s_typelink; - t_symbol *s_types; - t_symbol *s_underline; - t_symbol *s_understands; - t_symbol *s_undo; - t_symbol *s_undostack; - t_symbol *s_unimbed; - t_symbol *s_uninitialized; - t_symbol *s_unique; - t_symbol *s_unit; - t_symbol *s_units; - t_symbol *s_unlocked_iocolor; - t_symbol *s_unlockedinteraction; - t_symbol *s_unset; - t_symbol *s_up; - t_symbol *s_update; - t_symbol *s_update_metadata; - t_symbol *s_updatecommand; - t_symbol *s_updatecontent; - t_symbol *s_updatefind; - t_symbol *s_updatelookandfeel; - t_symbol *s_updatemenu; - t_symbol *s_updateprototypes; - t_symbol *s_updatequery; - t_symbol *s_updatequerydict; - t_symbol *s_updaterect; - t_symbol *s_url; - t_symbol *s_us_ascii; - t_symbol *s_usage_count; - t_symbol *s_usedslotlist; - t_symbol *s_useellipsis; - t_symbol *s_useimagebuffer; - t_symbol *s_usemax; - t_symbol *s_usemin; - t_symbol *s_user; - t_symbol *s_usercanget; - t_symbol *s_usercanset; - t_symbol *s_utf_16; - t_symbol *s_utf_16be; - t_symbol *s_utf_16le; - t_symbol *s_utf_8; - t_symbol *s_val; - t_symbol *s_value; - t_symbol *s_value_endchange; - t_symbol *s_value_rowcomponent; - t_symbol *s_valuebyindex; - t_symbol *s_varname; - t_symbol *s_varname_set; - t_symbol *s_varname_unset; - t_symbol *s_version; - t_symbol *s_videofile; - t_symbol *s_views; - t_symbol *s_viewspan; - t_symbol *s_vignette; - t_symbol *s_vis; - t_symbol *s_visibilitychanged; - t_symbol *s_visible; - t_symbol *s_visiblecanvasrect; - t_symbol *s_vol; - t_symbol *s_vpicture; - t_symbol *s_vpreset; - t_symbol *s_wantfree; - t_symbol *s_wantsreturn; - t_symbol *s_wantstab; - t_symbol *s_watch; - t_symbol *s_watchpoint_flags; - t_symbol *s_watchpoint_id; - t_symbol *s_wclose; - t_symbol *s_webpage; - t_symbol *s_weeks; - t_symbol *s_wind; - t_symbol *s_window; - t_symbol *s_windowbounds; - t_symbol *s_windowrect; - t_symbol *s_windsave; - t_symbol *s_wiretap; - t_symbol *s_withinlast; - t_symbol *s_wobjectname; - t_symbol *s_wordwrap; - t_symbol *s_workspace; - t_symbol *s_write; - t_symbol *s_writedictionary; - t_symbol *s_xmlfile; - t_symbol *s_years; - t_symbol *s_zero; - t_symbol *s_zoom; - t_symbol *s_zoombox; - t_symbol *s_zoomfactor; - t_symbol *s_zorder; - t_symbol *s_zzz; - t_symbol *s_Sans_Serif; - -} t_common_symbols_table; - -#define _sym__preset (_common_symbols->s__preset) -#define _sym_abbrev (_common_symbols->s_abbrev) -#define _sym_abbrev_rowcomponent (_common_symbols->s_abbrev_rowcomponent) -#define _sym_abbrev_setvalue (_common_symbols->s_abbrev_setvalue) -#define _sym_acceptsdrag (_common_symbols->s_acceptsdrag) -#define _sym_acceptsdrag_locked (_common_symbols->s_acceptsdrag_locked) -#define _sym_acceptsdrag_unlocked (_common_symbols->s_acceptsdrag_unlocked) -#define _sym_action (_common_symbols->s_action) -#define _sym_action_rowcomponent (_common_symbols->s_action_rowcomponent) -#define _sym_action_setvalue (_common_symbols->s_action_setvalue) -#define _sym_activate (_common_symbols->s_activate) -#define _sym_active (_common_symbols->s_active) -#define _sym_activetab (_common_symbols->s_activetab) -#define _sym_activetabname (_common_symbols->s_activetabname) -#define _sym_activewindow (_common_symbols->s_activewindow) -#define _sym_adapt (_common_symbols->s_adapt) -#define _sym_add (_common_symbols->s_add) -#define _sym_addattr (_common_symbols->s_addattr) -#define _sym_addattr_enable (_common_symbols->s_addattr_enable) -#define _sym_addclient (_common_symbols->s_addclient) -#define _sym_addfolder (_common_symbols->s_addfolder) -#define _sym_addfolderandsave (_common_symbols->s_addfolderandsave) -#define _sym_addquerydict (_common_symbols->s_addquerydict) -#define _sym_addquerydictfromfile (_common_symbols->s_addquerydictfromfile) -#define _sym_addslot (_common_symbols->s_addslot) -#define _sym_addtopresentation (_common_symbols->s_addtopresentation) -#define _sym_addwiretap (_common_symbols->s_addwiretap) -#define _sym_adornments (_common_symbols->s_adornments) -#define _sym_alias (_common_symbols->s_alias) -#define _sym_alignboxes (_common_symbols->s_alignboxes) -#define _sym_alignconnections (_common_symbols->s_alignconnections) -#define _sym_alignlines (_common_symbols->s_alignlines) -#define _sym_all (_common_symbols->s_all) -#define _sym_allkinds (_common_symbols->s_allkinds) -#define _sym_allowmod (_common_symbols->s_allowmod) -#define _sym_alpha (_common_symbols->s_alpha) -#define _sym_annotation (_common_symbols->s_annotation) -#define _sym_annotation_name (_common_symbols->s_annotation_name) -#define _sym_anydate (_common_symbols->s_anydate) -#define _sym_anykind (_common_symbols->s_anykind) -#define _sym_anything (_common_symbols->s_anything) -#define _sym_append (_common_symbols->s_append) -#define _sym_append_sql (_common_symbols->s_append_sql) -#define _sym_appendatoms (_common_symbols->s_appendatoms) -#define _sym_appendtodictionary (_common_symbols->s_appendtodictionary) -#define _sym_apply (_common_symbols->s_apply) -#define _sym_applyboxprototype (_common_symbols->s_applyboxprototype) -#define _sym_applydeep (_common_symbols->s_applydeep) -#define _sym_applydeepif (_common_symbols->s_applydeepif) -#define _sym_applyif (_common_symbols->s_applyif) -#define _sym_args (_common_symbols->s_args) -#define _sym_argument (_common_symbols->s_argument) -#define _sym_arguments (_common_symbols->s_arguments) -#define _sym_argv (_common_symbols->s_argv) -#define _sym_ascending (_common_symbols->s_ascending) -#define _sym_aspect (_common_symbols->s_aspect) -#define _sym_assist (_common_symbols->s_assist) -#define _sym_assoc (_common_symbols->s_assoc) -#define _sym_atbclick (_common_symbols->s_atbclick) -#define _sym_atom (_common_symbols->s_atom) -#define _sym_atomarray (_common_symbols->s_atomarray) -#define _sym_attach (_common_symbols->s_attach) -#define _sym_attr_filter_clip (_common_symbols->s_attr_filter_clip) -#define _sym_attr_get (_common_symbols->s_attr_get) -#define _sym_attr_getnames (_common_symbols->s_attr_getnames) -#define _sym_attr_gettarget (_common_symbols->s_attr_gettarget) -#define _sym_attr_modified (_common_symbols->s_attr_modified) -#define _sym_attr_offset_array (_common_symbols->s_attr_offset_array) -#define _sym_attr_renamed (_common_symbols->s_attr_renamed) -#define _sym_attr_setdisabled (_common_symbols->s_attr_setdisabled) -#define _sym_attr_setinvisible (_common_symbols->s_attr_setinvisible) -#define _sym_attribute (_common_symbols->s_attribute) -#define _sym_attributes (_common_symbols->s_attributes) -#define _sym_attrname (_common_symbols->s_attrname) -#define _sym_audiofile (_common_symbols->s_audiofile) -#define _sym_audioplugin (_common_symbols->s_audioplugin) -#define _sym_author (_common_symbols->s_author) -#define _sym_autocompletion (_common_symbols->s_autocompletion) -#define _sym_autocompletion_query (_common_symbols->s_autocompletion_query) -#define _sym_autofixwidth (_common_symbols->s_autofixwidth) -#define _sym_autoheightchanged (_common_symbols->s_autoheightchanged) -#define _sym_autoscroll (_common_symbols->s_autoscroll) -#define _sym_back (_common_symbols->s_back) -#define _sym_background (_common_symbols->s_background) -#define _sym_bang (_common_symbols->s_bang) -#define _sym_bbu (_common_symbols->s_bbu) -#define _sym_bclear (_common_symbols->s_bclear) -#define _sym_bcopy (_common_symbols->s_bcopy) -#define _sym_bcut (_common_symbols->s_bcut) -#define _sym_begineditbox (_common_symbols->s_begineditbox) -#define _sym_beginswith (_common_symbols->s_beginswith) -#define _sym_beginswithorcontains (_common_symbols->s_beginswithorcontains) -#define _sym_bfixwidth (_common_symbols->s_bfixwidth) -#define _sym_bfont (_common_symbols->s_bfont) -#define _sym_bgcolor (_common_symbols->s_bgcolor) -#define _sym_bgcount (_common_symbols->s_bgcount) -#define _sym_bghidden (_common_symbols->s_bghidden) -#define _sym_bglocked (_common_symbols->s_bglocked) -#define _sym_bgmode (_common_symbols->s_bgmode) -#define _sym_blue (_common_symbols->s_blue) -#define _sym_bogus (_common_symbols->s_bogus) -#define _sym_bold (_common_symbols->s_bold) -#define _sym_border (_common_symbols->s_border) -#define _sym_borderchanged (_common_symbols->s_borderchanged) -#define _sym_bottom_inset (_common_symbols->s_bottom_inset) -#define _sym_boundingbox (_common_symbols->s_boundingbox) -#define _sym_bounds (_common_symbols->s_bounds) -#define _sym_box (_common_symbols->s_box) -#define _sym_box1 (_common_symbols->s_box1) -#define _sym_box2 (_common_symbols->s_box2) -#define _sym_boxalpha (_common_symbols->s_boxalpha) -#define _sym_boxanimatetime (_common_symbols->s_boxanimatetime) -#define _sym_boxcomponent (_common_symbols->s_boxcomponent) -#define _sym_boxcontextitems (_common_symbols->s_boxcontextitems) -#define _sym_boxcontextmenu (_common_symbols->s_boxcontextmenu) -#define _sym_boxes (_common_symbols->s_boxes) -#define _sym_boxlayer (_common_symbols->s_boxlayer) -#define _sym_boxnotify (_common_symbols->s_boxnotify) -#define _sym_boxscreenrectchanged (_common_symbols->s_boxscreenrectchanged) -#define _sym_bpaste (_common_symbols->s_bpaste) -#define _sym_bpastepic (_common_symbols->s_bpastepic) -#define _sym_bpatcher (_common_symbols->s_bpatcher) -#define _sym_bpatcher_holder (_common_symbols->s_bpatcher_holder) -#define _sym_bpm (_common_symbols->s_bpm) -#define _sym_bracket_default (_common_symbols->s_bracket_default) -#define _sym_bracket_none (_common_symbols->s_bracket_none) -#define _sym_break (_common_symbols->s_break) -#define _sym_bredo (_common_symbols->s_bredo) -#define _sym_brgba (_common_symbols->s_brgba) -#define _sym_bringforward (_common_symbols->s_bringforward) -#define _sym_bringtofront (_common_symbols->s_bringtofront) -#define _sym_bubblesize (_common_symbols->s_bubblesize) -#define _sym_build (_common_symbols->s_build) -#define _sym_buildcolumns (_common_symbols->s_buildcolumns) -#define _sym_bundo (_common_symbols->s_bundo) -#define _sym_button (_common_symbols->s_button) -#define _sym_c74object (_common_symbols->s_c74object) -#define _sym_canback (_common_symbols->s_canback) -#define _sym_cancopychanged (_common_symbols->s_cancopychanged) -#define _sym_candropfiles (_common_symbols->s_candropfiles) -#define _sym_canforward (_common_symbols->s_canforward) -#define _sym_canhilite (_common_symbols->s_canhilite) -#define _sym_canmovebackward (_common_symbols->s_canmovebackward) -#define _sym_canmoveforward (_common_symbols->s_canmoveforward) -#define _sym_canpastechanged (_common_symbols->s_canpastechanged) -#define _sym_canremove (_common_symbols->s_canremove) -#define _sym_cansave (_common_symbols->s_cansave) -#define _sym_canschedule (_common_symbols->s_canschedule) -#define _sym_canselectchanged (_common_symbols->s_canselectchanged) -#define _sym_canvastoscreen (_common_symbols->s_canvastoscreen) -#define _sym_caption (_common_symbols->s_caption) -#define _sym_catcolors (_common_symbols->s_catcolors) -#define _sym_category (_common_symbols->s_category) -#define _sym_category_first (_common_symbols->s_category_first) -#define _sym_cell (_common_symbols->s_cell) -#define _sym_cell_clue (_common_symbols->s_cell_clue) -#define _sym_cellclue (_common_symbols->s_cellclue) -#define _sym_cellenabled (_common_symbols->s_cellenabled) -#define _sym_cellschanged (_common_symbols->s_cellschanged) -#define _sym_char (_common_symbols->s_char) -#define _sym_char_comma (_common_symbols->s_char_comma) -#define _sym_char_minus (_common_symbols->s_char_minus) -#define _sym_char_semi (_common_symbols->s_char_semi) -#define _sym_char_space (_common_symbols->s_char_space) -#define _sym_charset_converter (_common_symbols->s_charset_converter) -#define _sym_checkbox (_common_symbols->s_checkbox) -#define _sym_choose (_common_symbols->s_choose) -#define _sym_chord (_common_symbols->s_chord) -#define _sym_chuck (_common_symbols->s_chuck) -#define _sym_chuckindex (_common_symbols->s_chuckindex) -#define _sym_class (_common_symbols->s_class) -#define _sym_class_jit_attribute (_common_symbols->s_class_jit_attribute) -#define _sym_class_jit_matrix (_common_symbols->s_class_jit_matrix) -#define _sym_class_jit_namespace (_common_symbols->s_class_jit_namespace) -#define _sym_classname (_common_symbols->s_classname) -#define _sym_classsym (_common_symbols->s_classsym) -#define _sym_clear (_common_symbols->s_clear) -#define _sym_clearactions (_common_symbols->s_clearactions) -#define _sym_clearcolumns (_common_symbols->s_clearcolumns) -#define _sym_clearitem (_common_symbols->s_clearitem) -#define _sym_clearslots (_common_symbols->s_clearslots) -#define _sym_click (_common_symbols->s_click) -#define _sym_clickaction (_common_symbols->s_clickaction) -#define _sym_clientcontext (_common_symbols->s_clientcontext) -#define _sym_clipboard (_common_symbols->s_clipboard) -#define _sym_clipping (_common_symbols->s_clipping) -#define _sym_clock (_common_symbols->s_clock) -#define _sym_close (_common_symbols->s_close) -#define _sym_closebang (_common_symbols->s_closebang) -#define _sym_clue_cell (_common_symbols->s_clue_cell) -#define _sym_clue_header (_common_symbols->s_clue_header) -#define _sym_clueclass (_common_symbols->s_clueclass) -#define _sym_cluelookupattr (_common_symbols->s_cluelookupattr) -#define _sym_cluename (_common_symbols->s_cluename) -#define _sym_clues (_common_symbols->s_clues) -#define _sym_colhead (_common_symbols->s_colhead) -#define _sym_coll (_common_symbols->s_coll) -#define _sym_collectfiles (_common_symbols->s_collectfiles) -#define _sym_collective (_common_symbols->s_collective) -#define _sym_color (_common_symbols->s_color) -#define _sym_colorvalue (_common_symbols->s_colorvalue) -#define _sym_columnadded (_common_symbols->s_columnadded) -#define _sym_columnclue (_common_symbols->s_columnclue) -#define _sym_columndeleted (_common_symbols->s_columndeleted) -#define _sym_columnheaderclue (_common_symbols->s_columnheaderclue) -#define _sym_columnminmaxchanged (_common_symbols->s_columnminmaxchanged) -#define _sym_columnnamechanged (_common_symbols->s_columnnamechanged) -#define _sym_columns (_common_symbols->s_columns) -#define _sym_columnwidthchanged (_common_symbols->s_columnwidthchanged) -#define _sym_com (_common_symbols->s_com) -#define _sym_command (_common_symbols->s_command) -#define _sym_command_enable (_common_symbols->s_command_enable) -#define _sym_commandgroup (_common_symbols->s_commandgroup) -#define _sym_commands (_common_symbols->s_commands) -#define _sym_comment (_common_symbols->s_comment) -#define _sym_comparison (_common_symbols->s_comparison) -#define _sym_comparisons (_common_symbols->s_comparisons) -#define _sym_completeconnection (_common_symbols->s_completeconnection) -#define _sym_connect (_common_symbols->s_connect) -#define _sym_connectcolor (_common_symbols->s_connectcolor) -#define _sym_containersizechange (_common_symbols->s_containersizechange) -#define _sym_contains (_common_symbols->s_contains) -#define _sym_contextmenu (_common_symbols->s_contextmenu) -#define _sym_contextualpaste (_common_symbols->s_contextualpaste) -#define _sym_controller (_common_symbols->s_controller) -#define _sym_convert (_common_symbols->s_convert) -#define _sym_copy (_common_symbols->s_copy) -#define _sym_copyatoms (_common_symbols->s_copyatoms) -#define _sym_copyjundo (_common_symbols->s_copyjundo) -#define _sym_coremidi (_common_symbols->s_coremidi) -#define _sym_count (_common_symbols->s_count) -#define _sym_create_backup (_common_symbols->s_create_backup) -#define _sym_createbpatcher (_common_symbols->s_createbpatcher) -#define _sym_createsubpatcher (_common_symbols->s_createsubpatcher) -#define _sym_current (_common_symbols->s_current) -#define _sym_cut (_common_symbols->s_cut) -#define _sym_data (_common_symbols->s_data) -#define _sym_date_created (_common_symbols->s_date_created) -#define _sym_date_lastaccessed (_common_symbols->s_date_lastaccessed) -#define _sym_date_modified (_common_symbols->s_date_modified) -#define _sym_days (_common_symbols->s_days) -#define _sym_dblclick (_common_symbols->s_dblclick) -#define _sym_debugwindow_show (_common_symbols->s_debugwindow_show) -#define _sym_decorator (_common_symbols->s_decorator) -#define _sym_default (_common_symbols->s_default) -#define _sym_default_fontface (_common_symbols->s_default_fontface) -#define _sym_default_fontname (_common_symbols->s_default_fontname) -#define _sym_default_fontsize (_common_symbols->s_default_fontsize) -#define _sym_default_matrixplcolor (_common_symbols->s_default_matrixplcolor) -#define _sym_default_plcolor (_common_symbols->s_default_plcolor) -#define _sym_default_query (_common_symbols->s_default_query) -#define _sym_default_sigplcolor (_common_symbols->s_default_sigplcolor) -#define _sym_defaultcommand (_common_symbols->s_defaultcommand) -#define _sym_defaultfocusbox (_common_symbols->s_defaultfocusbox) -#define _sym_defaultname (_common_symbols->s_defaultname) -#define _sym_defaultquery (_common_symbols->s_defaultquery) -#define _sym_defaults (_common_symbols->s_defaults) -#define _sym_defaultvaluechanged (_common_symbols->s_defaultvaluechanged) -#define _sym_definearg (_common_symbols->s_definearg) -#define _sym_defineargument (_common_symbols->s_defineargument) -#define _sym_definecomparison (_common_symbols->s_definecomparison) -#define _sym_definefield (_common_symbols->s_definefield) -#define _sym_definefolder (_common_symbols->s_definefolder) -#define _sym_definequantifier (_common_symbols->s_definequantifier) -#define _sym_definequery (_common_symbols->s_definequery) -#define _sym_defineslot (_common_symbols->s_defineslot) -#define _sym_definesort (_common_symbols->s_definesort) -#define _sym_defrect (_common_symbols->s_defrect) -#define _sym_delete (_common_symbols->s_delete) -#define _sym_deleteindex (_common_symbols->s_deleteindex) -#define _sym_deletemetadata (_common_symbols->s_deletemetadata) -#define _sym_deletequery (_common_symbols->s_deletequery) -#define _sym_depthbuffer (_common_symbols->s_depthbuffer) -#define _sym_descending (_common_symbols->s_descending) -#define _sym_description (_common_symbols->s_description) -#define _sym_dest_closing (_common_symbols->s_dest_closing) -#define _sym_destination (_common_symbols->s_destination) -#define _sym_destrect (_common_symbols->s_destrect) -#define _sym_destroy (_common_symbols->s_destroy) -#define _sym_detach (_common_symbols->s_detach) -#define _sym_devicerects (_common_symbols->s_devicerects) -#define _sym_dictionary (_common_symbols->s_dictionary) -#define _sym_digest (_common_symbols->s_digest) -#define _sym_dim (_common_symbols->s_dim) -#define _sym_dimlink (_common_symbols->s_dimlink) -#define _sym_dirty (_common_symbols->s_dirty) -#define _sym_disabled (_common_symbols->s_disabled) -#define _sym_disablewiretap (_common_symbols->s_disablewiretap) -#define _sym_disconnect (_common_symbols->s_disconnect) -#define _sym_do_get_shared_context (_common_symbols->s_do_get_shared_context) -#define _sym_document (_common_symbols->s_document) -#define _sym_docwindow_docrect (_common_symbols->s_docwindow_docrect) -#define _sym_docwindow_refrect (_common_symbols->s_docwindow_refrect) -#define _sym_docwindow_searchrect (_common_symbols->s_docwindow_searchrect) -#define _sym_docwindow_tocrect (_common_symbols->s_docwindow_tocrect) -#define _sym_docwindow_tutrect (_common_symbols->s_docwindow_tutrect) -#define _sym_domain (_common_symbols->s_domain) -#define _sym_done (_common_symbols->s_done) -#define _sym_donewobj (_common_symbols->s_donewobj) -#define _sym_dontsave (_common_symbols->s_dontsave) -#define _sym_doublebuffer (_common_symbols->s_doublebuffer) -#define _sym_doubleclick (_common_symbols->s_doubleclick) -#define _sym_doubleclickaction (_common_symbols->s_doubleclickaction) -#define _sym_doubleclicked (_common_symbols->s_doubleclicked) -#define _sym_down (_common_symbols->s_down) -#define _sym_downcaption (_common_symbols->s_downcaption) -#define _sym_downicon (_common_symbols->s_downicon) -#define _sym_drag (_common_symbols->s_drag) -#define _sym_dragactive (_common_symbols->s_dragactive) -#define _sym_dragdrop (_common_symbols->s_dragdrop) -#define _sym_dragenter (_common_symbols->s_dragenter) -#define _sym_dragexit (_common_symbols->s_dragexit) -#define _sym_draggablechanged (_common_symbols->s_draggablechanged) -#define _sym_dragmove (_common_symbols->s_dragmove) -#define _sym_dragrole (_common_symbols->s_dragrole) -#define _sym_dragtarget (_common_symbols->s_dragtarget) -#define _sym_drawfirstin (_common_symbols->s_drawfirstin) -#define _sym_drawinlast (_common_symbols->s_drawinlast) -#define _sym_drawsresizer (_common_symbols->s_drawsresizer) -#define _sym_dropaction (_common_symbols->s_dropaction) -#define _sym_dropaction_addapplyprototype (_common_symbols->s_dropaction_addapplyprototype) -#define _sym_dropaction_addconnectedmessage (_common_symbols->s_dropaction_addconnectedmessage) -#define _sym_dropaction_addcustom (_common_symbols->s_dropaction_addcustom) -#define _sym_dropaction_addcustom_extended (_common_symbols->s_dropaction_addcustom_extended) -#define _sym_dropaction_addobjectcreation (_common_symbols->s_dropaction_addobjectcreation) -#define _sym_dropaction_addopeninnewwindow (_common_symbols->s_dropaction_addopeninnewwindow) -#define _sym_dropaction_addprototypeobjectcreation (_common_symbols->s_dropaction_addprototypeobjectcreation) -#define _sym_dropfiles (_common_symbols->s_dropfiles) -#define _sym_droprole (_common_symbols->s_droprole) -#define _sym_droprole_locked (_common_symbols->s_droprole_locked) -#define _sym_droprole_unlocked (_common_symbols->s_droprole_unlocked) -#define _sym_dsp (_common_symbols->s_dsp) -#define _sym_dump (_common_symbols->s_dump) -#define _sym_dumpboxes (_common_symbols->s_dumpboxes) -#define _sym_dumpout (_common_symbols->s_dumpout) -#define _sym_duplicate (_common_symbols->s_duplicate) -#define _sym_edit (_common_symbols->s_edit) -#define _sym_edit_framecolor (_common_symbols->s_edit_framecolor) -#define _sym_editactive (_common_symbols->s_editactive) -#define _sym_editbox (_common_symbols->s_editbox) -#define _sym_editcell (_common_symbols->s_editcell) -#define _sym_editing_bgcolor (_common_symbols->s_editing_bgcolor) -#define _sym_editmetadata (_common_symbols->s_editmetadata) -#define _sym_editonclick (_common_symbols->s_editonclick) -#define _sym_editor (_common_symbols->s_editor) -#define _sym_elements (_common_symbols->s_elements) -#define _sym_embed (_common_symbols->s_embed) -#define _sym_emptytext (_common_symbols->s_emptytext) -#define _sym_enable (_common_symbols->s_enable) -#define _sym_enable_rowcomponent (_common_symbols->s_enable_rowcomponent) -#define _sym_enable_setvalue (_common_symbols->s_enable_setvalue) -#define _sym_enablehscroll (_common_symbols->s_enablehscroll) -#define _sym_enabler (_common_symbols->s_enabler) -#define _sym_enablevscroll (_common_symbols->s_enablevscroll) -#define _sym_enddrag (_common_symbols->s_enddrag) -#define _sym_endmoveboxes (_common_symbols->s_endmoveboxes) -#define _sym_endpoint (_common_symbols->s_endpoint) -#define _sym_endprobe (_common_symbols->s_endprobe) -#define _sym_endswith (_common_symbols->s_endswith) -#define _sym_endtransaction (_common_symbols->s_endtransaction) -#define _sym_enter (_common_symbols->s_enter) -#define _sym_entertext (_common_symbols->s_entertext) -#define _sym_enum (_common_symbols->s_enum) -#define _sym_enumindex (_common_symbols->s_enumindex) -#define _sym_enummsg (_common_symbols->s_enummsg) -#define _sym_enumtarget (_common_symbols->s_enumtarget) -#define _sym_enumvals (_common_symbols->s_enumvals) -#define _sym_equalto (_common_symbols->s_equalto) -#define _sym_error (_common_symbols->s_error) -#define _sym_eventinterval (_common_symbols->s_eventinterval) -#define _sym_everything (_common_symbols->s_everything) -#define _sym_excludebg (_common_symbols->s_excludebg) -#define _sym_exec (_common_symbols->s_exec) -#define _sym_execstring (_common_symbols->s_execstring) -#define _sym_execstring_safe (_common_symbols->s_execstring_safe) -#define _sym_execute (_common_symbols->s_execute) -#define _sym_executefind (_common_symbols->s_executefind) -#define _sym_extension (_common_symbols->s_extension) -#define _sym_extra (_common_symbols->s_extra) -#define _sym_ezquery (_common_symbols->s_ezquery) -#define _sym_fadetinge (_common_symbols->s_fadetinge) -#define _sym_fgcolor (_common_symbols->s_fgcolor) -#define _sym_fghidden (_common_symbols->s_fghidden) -#define _sym_field (_common_symbols->s_field) -#define _sym_fieldnamebyindex (_common_symbols->s_fieldnamebyindex) -#define _sym_fields (_common_symbols->s_fields) -#define _sym_file (_common_symbols->s_file) -#define _sym_filefolder (_common_symbols->s_filefolder) -#define _sym_fileformat (_common_symbols->s_fileformat) -#define _sym_filename (_common_symbols->s_filename) -#define _sym_filepath (_common_symbols->s_filepath) -#define _sym_filetypemessage (_common_symbols->s_filetypemessage) -#define _sym_fileusage (_common_symbols->s_fileusage) -#define _sym_filter (_common_symbols->s_filter) -#define _sym_filterget (_common_symbols->s_filterget) -#define _sym_filterset (_common_symbols->s_filterset) -#define _sym_find (_common_symbols->s_find) -#define _sym_find_enableselectall (_common_symbols->s_find_enableselectall) -#define _sym_findall (_common_symbols->s_findall) -#define _sym_finddoneclicked (_common_symbols->s_finddoneclicked) -#define _sym_findfirst (_common_symbols->s_findfirst) -#define _sym_findmaster (_common_symbols->s_findmaster) -#define _sym_findnextclicked (_common_symbols->s_findnextclicked) -#define _sym_findprevclicked (_common_symbols->s_findprevclicked) -#define _sym_findreturnkeypressed (_common_symbols->s_findreturnkeypressed) -#define _sym_findselectallclicked (_common_symbols->s_findselectallclicked) -#define _sym_findsize (_common_symbols->s_findsize) -#define _sym_findtextchanged (_common_symbols->s_findtextchanged) -#define _sym_first (_common_symbols->s_first) -#define _sym_firstline (_common_symbols->s_firstline) -#define _sym_firstobject (_common_symbols->s_firstobject) -#define _sym_firstview (_common_symbols->s_firstview) -#define _sym_five (_common_symbols->s_five) -#define _sym_fixed (_common_symbols->s_fixed) -#define _sym_fixwidth (_common_symbols->s_fixwidth) -#define _sym_flags (_common_symbols->s_flags) -#define _sym_flat (_common_symbols->s_flat) -#define _sym_float (_common_symbols->s_float) -#define _sym_float32 (_common_symbols->s_float32) -#define _sym_float64 (_common_symbols->s_float64) -#define _sym_floating (_common_symbols->s_floating) -#define _sym_flonum (_common_symbols->s_flonum) -#define _sym_flush (_common_symbols->s_flush) -#define _sym_focusgained (_common_symbols->s_focusgained) -#define _sym_focuslost (_common_symbols->s_focuslost) -#define _sym_focusonvis (_common_symbols->s_focusonvis) -#define _sym_fold (_common_symbols->s_fold) -#define _sym_folder (_common_symbols->s_folder) -#define _sym_folderdropped (_common_symbols->s_folderdropped) -#define _sym_folderpath (_common_symbols->s_folderpath) -#define _sym_font (_common_symbols->s_font) -#define _sym_fontchanged (_common_symbols->s_fontchanged) -#define _sym_fontface (_common_symbols->s_fontface) -#define _sym_fontfixwidth (_common_symbols->s_fontfixwidth) -#define _sym_fontinfochanged (_common_symbols->s_fontinfochanged) -#define _sym_fontname (_common_symbols->s_fontname) -#define _sym_fontnamechanged (_common_symbols->s_fontnamechanged) -#define _sym_fontpanel_isclientwindow (_common_symbols->s_fontpanel_isclientwindow) -#define _sym_fontpanelfontcolor (_common_symbols->s_fontpanelfontcolor) -#define _sym_fontpanelfontface (_common_symbols->s_fontpanelfontface) -#define _sym_fontpanelfontname (_common_symbols->s_fontpanelfontname) -#define _sym_fontpanelfontsize (_common_symbols->s_fontpanelfontsize) -#define _sym_fontsize (_common_symbols->s_fontsize) -#define _sym_fontsizechanged (_common_symbols->s_fontsizechanged) -#define _sym_fonttarget (_common_symbols->s_fonttarget) -#define _sym_forbidclose (_common_symbols->s_forbidclose) -#define _sym_forward (_common_symbols->s_forward) -#define _sym_four (_common_symbols->s_four) -#define _sym_fpic (_common_symbols->s_fpic) -#define _sym_free (_common_symbols->s_free) -#define _sym_freebang (_common_symbols->s_freebang) -#define _sym_freekeys (_common_symbols->s_freekeys) -#define _sym_freepatcherview (_common_symbols->s_freepatcherview) -#define _sym_frgb (_common_symbols->s_frgb) -#define _sym_frgba (_common_symbols->s_frgba) -#define _sym_fromdictionary (_common_symbols->s_fromdictionary) -#define _sym_fromgworld (_common_symbols->s_fromgworld) -#define _sym_frommatrix (_common_symbols->s_frommatrix) -#define _sym_frommatrix_trunc (_common_symbols->s_frommatrix_trunc) -#define _sym_front (_common_symbols->s_front) -#define _sym_frozen (_common_symbols->s_frozen) -#define _sym_frozen_box_attributes (_common_symbols->s_frozen_box_attributes) -#define _sym_frozen_object_attributes (_common_symbols->s_frozen_object_attributes) -#define _sym_frozen_pendingattrs (_common_symbols->s_frozen_pendingattrs) -#define _sym_frozen_text (_common_symbols->s_frozen_text) -#define _sym_fsaa (_common_symbols->s_fsaa) -#define _sym_fullname (_common_symbols->s_fullname) -#define _sym_fullscreen (_common_symbols->s_fullscreen) -#define _sym_funall (_common_symbols->s_funall) -#define _sym_function (_common_symbols->s_function) -#define _sym_g_inout_binlet (_common_symbols->s_g_inout_binlet) -#define _sym_g_max_newest (_common_symbols->s_g_max_newest) -#define _sym_g_max_newest_box (_common_symbols->s_g_max_newest_box) -#define _sym_gb (_common_symbols->s_gb) -#define _sym_genframe (_common_symbols->s_genframe) -#define _sym_get (_common_symbols->s_get) -#define _sym_get_jit_ob (_common_symbols->s_get_jit_ob) -#define _sym_getargumentlabel (_common_symbols->s_getargumentlabel) -#define _sym_getassoc (_common_symbols->s_getassoc) -#define _sym_getatoms (_common_symbols->s_getatoms) -#define _sym_getattrtext (_common_symbols->s_getattrtext) -#define _sym_getbounds (_common_symbols->s_getbounds) -#define _sym_getboxlayer (_common_symbols->s_getboxlayer) -#define _sym_getcaptioninfo (_common_symbols->s_getcaptioninfo) -#define _sym_getcellcolor (_common_symbols->s_getcellcolor) -#define _sym_getcelldescription (_common_symbols->s_getcelldescription) -#define _sym_getcelleditable (_common_symbols->s_getcelleditable) -#define _sym_getcellfiletypes (_common_symbols->s_getcellfiletypes) -#define _sym_getcellicon (_common_symbols->s_getcellicon) -#define _sym_getcellindentlevel (_common_symbols->s_getcellindentlevel) -#define _sym_getcellmenu (_common_symbols->s_getcellmenu) -#define _sym_getcelltext (_common_symbols->s_getcelltext) -#define _sym_getcelltextlength (_common_symbols->s_getcelltextlength) -#define _sym_getcellunits (_common_symbols->s_getcellunits) -#define _sym_getcellunitsyms (_common_symbols->s_getcellunitsyms) -#define _sym_getcellvalue (_common_symbols->s_getcellvalue) -#define _sym_getcolumnnames (_common_symbols->s_getcolumnnames) -#define _sym_getcomparisonlabel (_common_symbols->s_getcomparisonlabel) -#define _sym_getcomponent (_common_symbols->s_getcomponent) -#define _sym_getcontainedcomponent (_common_symbols->s_getcontainedcomponent) -#define _sym_getdata (_common_symbols->s_getdata) -#define _sym_getdefaultfocuscomponent (_common_symbols->s_getdefaultfocuscomponent) -#define _sym_getdefext (_common_symbols->s_getdefext) -#define _sym_getdeftype (_common_symbols->s_getdeftype) -#define _sym_getdrawparams (_common_symbols->s_getdrawparams) -#define _sym_getdst (_common_symbols->s_getdst) -#define _sym_getfieldlabel (_common_symbols->s_getfieldlabel) -#define _sym_getfindtext (_common_symbols->s_getfindtext) -#define _sym_getflags (_common_symbols->s_getflags) -#define _sym_getfolderpath (_common_symbols->s_getfolderpath) -#define _sym_getfonttarget (_common_symbols->s_getfonttarget) -#define _sym_getfontview (_common_symbols->s_getfontview) -#define _sym_getformat (_common_symbols->s_getformat) -#define _sym_gethintdelay (_common_symbols->s_gethintdelay) -#define _sym_getholder (_common_symbols->s_getholder) -#define _sym_getimage (_common_symbols->s_getimage) -#define _sym_getindex (_common_symbols->s_getindex) -#define _sym_getinfo (_common_symbols->s_getinfo) -#define _sym_getinports (_common_symbols->s_getinports) -#define _sym_getinput (_common_symbols->s_getinput) -#define _sym_getinputlist (_common_symbols->s_getinputlist) -#define _sym_getioproc (_common_symbols->s_getioproc) -#define _sym_getkeys (_common_symbols->s_getkeys) -#define _sym_getlastinsertid (_common_symbols->s_getlastinsertid) -#define _sym_getlayoutinfo (_common_symbols->s_getlayoutinfo) -#define _sym_getlogical (_common_symbols->s_getlogical) -#define _sym_getmatrix (_common_symbols->s_getmatrix) -#define _sym_getmethod (_common_symbols->s_getmethod) -#define _sym_getname (_common_symbols->s_getname) -#define _sym_getnamed (_common_symbols->s_getnamed) -#define _sym_getnamedbox (_common_symbols->s_getnamedbox) -#define _sym_getnextrecord (_common_symbols->s_getnextrecord) -#define _sym_getnthview (_common_symbols->s_getnthview) -#define _sym_getobject (_common_symbols->s_getobject) -#define _sym_getoffset (_common_symbols->s_getoffset) -#define _sym_getoutports (_common_symbols->s_getoutports) -#define _sym_getoutput (_common_symbols->s_getoutput) -#define _sym_getoutputlist (_common_symbols->s_getoutputlist) -#define _sym_getprobevalue (_common_symbols->s_getprobevalue) -#define _sym_getptr (_common_symbols->s_getptr) -#define _sym_getptr_forview (_common_symbols->s_getptr_forview) -#define _sym_getquantifierlabel (_common_symbols->s_getquantifierlabel) -#define _sym_getquery (_common_symbols->s_getquery) -#define _sym_getquerydict (_common_symbols->s_getquerydict) -#define _sym_getquerynames (_common_symbols->s_getquerynames) -#define _sym_getquerytype (_common_symbols->s_getquerytype) -#define _sym_getrect (_common_symbols->s_getrect) -#define _sym_getrowcolor (_common_symbols->s_getrowcolor) -#define _sym_getrowobject (_common_symbols->s_getrowobject) -#define _sym_getselected (_common_symbols->s_getselected) -#define _sym_getsize (_common_symbols->s_getsize) -#define _sym_getsort (_common_symbols->s_getsort) -#define _sym_getspecial (_common_symbols->s_getspecial) -#define _sym_getsrc (_common_symbols->s_getsrc) -#define _sym_getstackbase (_common_symbols->s_getstackbase) -#define _sym_getsyswind (_common_symbols->s_getsyswind) -#define _sym_gettextptr (_common_symbols->s_gettextptr) -#define _sym_gettitle (_common_symbols->s_gettitle) -#define _sym_gettype (_common_symbols->s_gettype) -#define _sym_gettypelist (_common_symbols->s_gettypelist) -#define _sym_getunitstext (_common_symbols->s_getunitstext) -#define _sym_getunitsyms (_common_symbols->s_getunitsyms) -#define _sym_getvalueof (_common_symbols->s_getvalueof) -#define _sym_getvisiblecanvasrect (_common_symbols->s_getvisiblecanvasrect) -#define _sym_getwind (_common_symbols->s_getwind) -#define _sym_getwindowrect (_common_symbols->s_getwindowrect) -#define _sym_gl_line_loop (_common_symbols->s_gl_line_loop) -#define _sym_gl_line_strip (_common_symbols->s_gl_line_strip) -#define _sym_gl_lines (_common_symbols->s_gl_lines) -#define _sym_gl_points (_common_symbols->s_gl_points) -#define _sym_gl_polygon (_common_symbols->s_gl_polygon) -#define _sym_gl_quad_grid (_common_symbols->s_gl_quad_grid) -#define _sym_gl_quad_strip (_common_symbols->s_gl_quad_strip) -#define _sym_gl_quads (_common_symbols->s_gl_quads) -#define _sym_gl_tri_fan (_common_symbols->s_gl_tri_fan) -#define _sym_gl_tri_grid (_common_symbols->s_gl_tri_grid) -#define _sym_gl_tri_strip (_common_symbols->s_gl_tri_strip) -#define _sym_gl_triangles (_common_symbols->s_gl_triangles) -#define _sym_global (_common_symbols->s_global) -#define _sym_globalpatchername (_common_symbols->s_globalpatchername) -#define _sym_go (_common_symbols->s_go) -#define _sym_grabfocus (_common_symbols->s_grabfocus) -#define _sym_greaterthan (_common_symbols->s_greaterthan) -#define _sym_green (_common_symbols->s_green) -#define _sym_grid (_common_symbols->s_grid) -#define _sym_gridonopen (_common_symbols->s_gridonopen) -#define _sym_gridsize (_common_symbols->s_gridsize) -#define _sym_gridsnap (_common_symbols->s_gridsnap) -#define _sym_gridsnaponopen (_common_symbols->s_gridsnaponopen) -#define _sym_group (_common_symbols->s_group) -#define _sym_grow (_common_symbols->s_grow) -#define _sym_growboth (_common_symbols->s_growboth) -#define _sym_growy (_common_symbols->s_growy) -#define _sym_hasclose (_common_symbols->s_hasclose) -#define _sym_hasdatatype (_common_symbols->s_hasdatatype) -#define _sym_hasgrow (_common_symbols->s_hasgrow) -#define _sym_hashorizscroll (_common_symbols->s_hashorizscroll) -#define _sym_hashtab_entry_free (_common_symbols->s_hashtab_entry_free) -#define _sym_hashtab_entry_new (_common_symbols->s_hashtab_entry_new) -#define _sym_hashtab_free (_common_symbols->s_hashtab_free) -#define _sym_hasmenu (_common_symbols->s_hasmenu) -#define _sym_hasminimize (_common_symbols->s_hasminimize) -#define _sym_hastitlebar (_common_symbols->s_hastitlebar) -#define _sym_hasvertscroll (_common_symbols->s_hasvertscroll) -#define _sym_haszoom (_common_symbols->s_haszoom) -#define _sym_head (_common_symbols->s_head) -#define _sym_height (_common_symbols->s_height) -#define _sym_help (_common_symbols->s_help) -#define _sym_helpfile (_common_symbols->s_helpfile) -#define _sym_helpmenu (_common_symbols->s_helpmenu) -#define _sym_helpname (_common_symbols->s_helpname) -#define _sym_hidden (_common_symbols->s_hidden) -#define _sym_hiddenconnect (_common_symbols->s_hiddenconnect) -#define _sym_hide (_common_symbols->s_hide) -#define _sym_hideablechanged (_common_symbols->s_hideablechanged) -#define _sym_hidecaption (_common_symbols->s_hidecaption) -#define _sym_hidewindow (_common_symbols->s_hidewindow) -#define _sym_hint (_common_symbols->s_hint) -#define _sym_hint_disabled (_common_symbols->s_hint_disabled) -#define _sym_hinttrack (_common_symbols->s_hinttrack) -#define _sym_history (_common_symbols->s_history) -#define _sym_history_entry (_common_symbols->s_history_entry) -#define _sym_hittest (_common_symbols->s_hittest) -#define _sym_holderoptions (_common_symbols->s_holderoptions) -#define _sym_hz (_common_symbols->s_hz) -#define _sym_icon (_common_symbols->s_icon) -#define _sym_id (_common_symbols->s_id) -#define _sym_identifier (_common_symbols->s_identifier) -#define _sym_ignoreclick (_common_symbols->s_ignoreclick) -#define _sym_image (_common_symbols->s_image) -#define _sym_imagefile (_common_symbols->s_imagefile) -#define _sym_imbed (_common_symbols->s_imbed) -#define _sym_imprint (_common_symbols->s_imprint) -#define _sym_includebg (_common_symbols->s_includebg) -#define _sym_index (_common_symbols->s_index) -#define _sym_info (_common_symbols->s_info) -#define _sym_init (_common_symbols->s_init) -#define _sym_inlet (_common_symbols->s_inlet) -#define _sym_inletinfo (_common_symbols->s_inletinfo) -#define _sym_inletnum (_common_symbols->s_inletnum) -#define _sym_inletoutlet (_common_symbols->s_inletoutlet) -#define _sym_inletscaleratio (_common_symbols->s_inletscaleratio) -#define _sym_inputcount (_common_symbols->s_inputcount) -#define _sym_insert (_common_symbols->s_insert) -#define _sym_insertboxtext (_common_symbols->s_insertboxtext) -#define _sym_insertindex (_common_symbols->s_insertindex) -#define _sym_insertpatcher (_common_symbols->s_insertpatcher) -#define _sym_insertsegment (_common_symbols->s_insertsegment) -#define _sym_insetchanged (_common_symbols->s_insetchanged) -#define _sym_insp (_common_symbols->s_insp) -#define _sym_inspectee (_common_symbols->s_inspectee) -#define _sym_inspectees (_common_symbols->s_inspectees) -#define _sym_inspector (_common_symbols->s_inspector) -#define _sym_inspector_clueclass (_common_symbols->s_inspector_clueclass) -#define _sym_inspector_color (_common_symbols->s_inspector_color) -#define _sym_inspector_customize (_common_symbols->s_inspector_customize) -#define _sym_inspector_editor (_common_symbols->s_inspector_editor) -#define _sym_inspector_fontattr (_common_symbols->s_inspector_fontattr) -#define _sym_inspector_rect (_common_symbols->s_inspector_rect) -#define _sym_inspector_tab (_common_symbols->s_inspector_tab) -#define _sym_inspector_tabheight (_common_symbols->s_inspector_tabheight) -#define _sym_inspector_title (_common_symbols->s_inspector_title) -#define _sym_inspector_toolbarid (_common_symbols->s_inspector_toolbarid) -#define _sym_inspectorchange (_common_symbols->s_inspectorchange) -#define _sym_instance_attributes (_common_symbols->s_instance_attributes) -#define _sym_instanceattr (_common_symbols->s_instanceattr) -#define _sym_int (_common_symbols->s_int) -#define _sym_int16 (_common_symbols->s_int16) -#define _sym_int24 (_common_symbols->s_int24) -#define _sym_int32 (_common_symbols->s_int32) -#define _sym_int8 (_common_symbols->s_int8) -#define _sym_interface (_common_symbols->s_interface) -#define _sym_interp (_common_symbols->s_interp) -#define _sym_interp_arg (_common_symbols->s_interp_arg) -#define _sym_interval (_common_symbols->s_interval) -#define _sym_invalidate (_common_symbols->s_invalidate) -#define _sym_invalidateallboxlayers (_common_symbols->s_invalidateallboxlayers) -#define _sym_invalidateboxlayer (_common_symbols->s_invalidateboxlayer) -#define _sym_invalidatetoolbar (_common_symbols->s_invalidatetoolbar) -#define _sym_invis (_common_symbols->s_invis) -#define _sym_invisaction (_common_symbols->s_invisaction) -#define _sym_invisible (_common_symbols->s_invisible) -#define _sym_invlabel (_common_symbols->s_invlabel) -#define _sym_invmsg (_common_symbols->s_invmsg) -#define _sym_ioname (_common_symbols->s_ioname) -#define _sym_ioproc (_common_symbols->s_ioproc) -#define _sym_is (_common_symbols->s_is) -#define _sym_iscolumnvisible (_common_symbols->s_iscolumnvisible) -#define _sym_isfile (_common_symbols->s_isfile) -#define _sym_isfirstin (_common_symbols->s_isfirstin) -#define _sym_isfolder (_common_symbols->s_isfolder) -#define _sym_iso_8859_1 (_common_symbols->s_iso_8859_1) -#define _sym_isproto (_common_symbols->s_isproto) -#define _sym_isselectedqueryremovable (_common_symbols->s_isselectedqueryremovable) -#define _sym_isselectionvalid (_common_symbols->s_isselectionvalid) -#define _sym_issystemquery (_common_symbols->s_issystemquery) -#define _sym_italic (_common_symbols->s_italic) -#define _sym_items (_common_symbols->s_items) -#define _sym_iterate (_common_symbols->s_iterate) -#define _sym_javascript (_common_symbols->s_javascript) -#define _sym_jbogus (_common_symbols->s_jbogus) -#define _sym_jbox (_common_symbols->s_jbox) -#define _sym_jbox_bytecount (_common_symbols->s_jbox_bytecount) -#define _sym_jbox_instances (_common_symbols->s_jbox_instances) -#define _sym_jboxattr (_common_symbols->s_jboxattr) -#define _sym_jdrag (_common_symbols->s_jdrag) -#define _sym_jed (_common_symbols->s_jed) -#define _sym_jgraphics (_common_symbols->s_jgraphics) -#define _sym_jit_attr_offset (_common_symbols->s_jit_attr_offset) -#define _sym_jit_attr_offset_array (_common_symbols->s_jit_attr_offset_array) -#define _sym_jit_attribute (_common_symbols->s_jit_attribute) -#define _sym_jit_gl_texture (_common_symbols->s_jit_gl_texture) -#define _sym_jit_linklist (_common_symbols->s_jit_linklist) -#define _sym_jit_matrix (_common_symbols->s_jit_matrix) -#define _sym_jit_mop (_common_symbols->s_jit_mop) -#define _sym_jit_namespace (_common_symbols->s_jit_namespace) -#define _sym_jpatcher (_common_symbols->s_jpatcher) -#define _sym_jpatcher_bytecount (_common_symbols->s_jpatcher_bytecount) -#define _sym_jpatcher_instances (_common_symbols->s_jpatcher_instances) -#define _sym_jpatchercontroller (_common_symbols->s_jpatchercontroller) -#define _sym_jpatcherholder (_common_symbols->s_jpatcherholder) -#define _sym_jpatchline (_common_symbols->s_jpatchline) -#define _sym_jpg (_common_symbols->s_jpg) -#define _sym_jsave (_common_symbols->s_jsave) -#define _sym_JSON (_common_symbols->s_JSON) -#define _sym_jsonreader (_common_symbols->s_jsonreader) -#define _sym_jsonwriter (_common_symbols->s_jsonwriter) -#define _sym_juibogus (_common_symbols->s_juibogus) -#define _sym_juiobject (_common_symbols->s_juiobject) -#define _sym_jundo_command (_common_symbols->s_jundo_command) -#define _sym_jundo_commandgroup (_common_symbols->s_jundo_commandgroup) -#define _sym_jweb_history (_common_symbols->s_jweb_history) -#define _sym_jwind (_common_symbols->s_jwind) -#define _sym_kb (_common_symbols->s_kb) -#define _sym_key (_common_symbols->s_key) -#define _sym_key_backslash (_common_symbols->s_key_backslash) -#define _sym_key_backspace (_common_symbols->s_key_backspace) -#define _sym_key_clear (_common_symbols->s_key_clear) -#define _sym_key_delete (_common_symbols->s_key_delete) -#define _sym_key_downarrow (_common_symbols->s_key_downarrow) -#define _sym_key_end (_common_symbols->s_key_end) -#define _sym_key_enter (_common_symbols->s_key_enter) -#define _sym_key_esc (_common_symbols->s_key_esc) -#define _sym_key_grave (_common_symbols->s_key_grave) -#define _sym_key_helpkey (_common_symbols->s_key_helpkey) -#define _sym_key_home (_common_symbols->s_key_home) -#define _sym_key_insert (_common_symbols->s_key_insert) -#define _sym_key_leftarrow (_common_symbols->s_key_leftarrow) -#define _sym_key_optionspace (_common_symbols->s_key_optionspace) -#define _sym_key_pagedown (_common_symbols->s_key_pagedown) -#define _sym_key_pageup (_common_symbols->s_key_pageup) -#define _sym_key_return (_common_symbols->s_key_return) -#define _sym_key_rightarrow (_common_symbols->s_key_rightarrow) -#define _sym_key_spacebar (_common_symbols->s_key_spacebar) -#define _sym_key_tab (_common_symbols->s_key_tab) -#define _sym_key_tilde (_common_symbols->s_key_tilde) -#define _sym_key_uparrow (_common_symbols->s_key_uparrow) -#define _sym_key_vertbar (_common_symbols->s_key_vertbar) -#define _sym_keyaction (_common_symbols->s_keyaction) -#define _sym_keyfilter (_common_symbols->s_keyfilter) -#define _sym_keyfocuschanged (_common_symbols->s_keyfocuschanged) -#define _sym_keymessage (_common_symbols->s_keymessage) -#define _sym_kind (_common_symbols->s_kind) -#define _sym_kindenum (_common_symbols->s_kindenum) -#define _sym_kindis (_common_symbols->s_kindis) -#define _sym_kindmenu (_common_symbols->s_kindmenu) -#define _sym_label (_common_symbols->s_label) -#define _sym_labels (_common_symbols->s_labels) -#define _sym_last (_common_symbols->s_last) -#define _sym_last_access (_common_symbols->s_last_access) -#define _sym_lastmessage (_common_symbols->s_lastmessage) -#define _sym_lastmodified (_common_symbols->s_lastmodified) -#define _sym_lastobject (_common_symbols->s_lastobject) -#define _sym_latency (_common_symbols->s_latency) -#define _sym_lessthan (_common_symbols->s_lessthan) -#define _sym_linear (_common_symbols->s_linear) -#define _sym_linechanged (_common_symbols->s_linechanged) -#define _sym_linecontextmenu (_common_symbols->s_linecontextmenu) -#define _sym_linecount (_common_symbols->s_linecount) -#define _sym_linenotify (_common_symbols->s_linenotify) -#define _sym_lines (_common_symbols->s_lines) -#define _sym_lineup (_common_symbols->s_lineup) -#define _sym_list (_common_symbols->s_list) -#define _sym_list_rowcomponent (_common_symbols->s_list_rowcomponent) -#define _sym_list_setvalue (_common_symbols->s_list_setvalue) -#define _sym_listboxprototype (_common_symbols->s_listboxprototype) -#define _sym_listfiles (_common_symbols->s_listfiles) -#define _sym_listwindow (_common_symbols->s_listwindow) -#define _sym_loadbang (_common_symbols->s_loadbang) -#define _sym_local (_common_symbols->s_local) -#define _sym_lock (_common_symbols->s_lock) -#define _sym_locked (_common_symbols->s_locked) -#define _sym_locked_iocolor (_common_symbols->s_locked_iocolor) -#define _sym_lockeddragscroll (_common_symbols->s_lockeddragscroll) -#define _sym_lockedpatchercontextmenu (_common_symbols->s_lockedpatchercontextmenu) -#define _sym_log (_common_symbols->s_log) -#define _sym_long (_common_symbols->s_long) -#define _sym_lookup (_common_symbols->s_lookup) -#define _sym_lookupcommand (_common_symbols->s_lookupcommand) -#define _sym_loop (_common_symbols->s_loop) -#define _sym_macroman (_common_symbols->s_macroman) -#define _sym_mainsearchentry (_common_symbols->s_mainsearchentry) -#define _sym_makearray (_common_symbols->s_makearray) -#define _sym_makeview (_common_symbols->s_makeview) -#define _sym_margin (_common_symbols->s_margin) -#define _sym_matchdragrole (_common_symbols->s_matchdragrole) -#define _sym_matchinspectees (_common_symbols->s_matchinspectees) -#define _sym_matrix (_common_symbols->s_matrix) -#define _sym_matrix_calc (_common_symbols->s_matrix_calc) -#define _sym_matrixctrl (_common_symbols->s_matrixctrl) -#define _sym_matrixname (_common_symbols->s_matrixname) -#define _sym_max (_common_symbols->s_max) -#define _sym_max_jit_classex (_common_symbols->s_max_jit_classex) -#define _sym_maxapplication (_common_symbols->s_maxapplication) -#define _sym_maxclass (_common_symbols->s_maxclass) -#define _sym_maxdebug (_common_symbols->s_maxdebug) -#define _sym_maxdim (_common_symbols->s_maxdim) -#define _sym_maximize (_common_symbols->s_maximize) -#define _sym_maxmessage (_common_symbols->s_maxmessage) -#define _sym_maxplanecount (_common_symbols->s_maxplanecount) -#define _sym_maxwindow (_common_symbols->s_maxwindow) -#define _sym_mb (_common_symbols->s_mb) -#define _sym_measuretext (_common_symbols->s_measuretext) -#define _sym_menu (_common_symbols->s_menu) -#define _sym_menubar (_common_symbols->s_menubar) -#define _sym_menus (_common_symbols->s_menus) -#define _sym_menus_runtime (_common_symbols->s_menus_runtime) -#define _sym_message (_common_symbols->s_message) -#define _sym_messages (_common_symbols->s_messages) -#define _sym_metadata (_common_symbols->s_metadata) -#define _sym_metadatalist (_common_symbols->s_metadatalist) -#define _sym_metadatawindow (_common_symbols->s_metadatawindow) -#define _sym_methodall (_common_symbols->s_methodall) -#define _sym_methodindex (_common_symbols->s_methodindex) -#define _sym_methods (_common_symbols->s_methods) -#define _sym_midpoints (_common_symbols->s_midpoints) -#define _sym_min (_common_symbols->s_min) -#define _sym_mindim (_common_symbols->s_mindim) -#define _sym_minimize (_common_symbols->s_minimize) -#define _sym_minplanecount (_common_symbols->s_minplanecount) -#define _sym_minus (_common_symbols->s_minus) -#define _sym_mode (_common_symbols->s_mode) -#define _sym_modified (_common_symbols->s_modified) -#define _sym_monitor (_common_symbols->s_monitor) -#define _sym_months (_common_symbols->s_months) -#define _sym_mousedoubleclick (_common_symbols->s_mousedoubleclick) -#define _sym_mousedown (_common_symbols->s_mousedown) -#define _sym_mousedownonchar (_common_symbols->s_mousedownonchar) -#define _sym_mousedrag (_common_symbols->s_mousedrag) -#define _sym_mousedragdelta (_common_symbols->s_mousedragdelta) -#define _sym_mouseenter (_common_symbols->s_mouseenter) -#define _sym_mouseleave (_common_symbols->s_mouseleave) -#define _sym_mousemove (_common_symbols->s_mousemove) -#define _sym_mousescale (_common_symbols->s_mousescale) -#define _sym_mouseup (_common_symbols->s_mouseup) -#define _sym_mousewheel (_common_symbols->s_mousewheel) -#define _sym_move (_common_symbols->s_move) -#define _sym_moveboxes (_common_symbols->s_moveboxes) -#define _sym_moved (_common_symbols->s_moved) -#define _sym_moveifoffdisplay (_common_symbols->s_moveifoffdisplay) -#define _sym_movelines (_common_symbols->s_movelines) -#define _sym_movesegment (_common_symbols->s_movesegment) -#define _sym_moviedim (_common_symbols->s_moviedim) -#define _sym_moviefile (_common_symbols->s_moviefile) -#define _sym_ms (_common_symbols->s_ms) -#define _sym_ms_ansi (_common_symbols->s_ms_ansi) -#define _sym_mulaw (_common_symbols->s_mulaw) -#define _sym_mult (_common_symbols->s_mult) -#define _sym_multiboxcontextmenu (_common_symbols->s_multiboxcontextmenu) -#define _sym_multilinecontextmenu (_common_symbols->s_multilinecontextmenu) -#define _sym_mute (_common_symbols->s_mute) -#define _sym_name (_common_symbols->s_name) -#define _sym_name_changed (_common_symbols->s_name_changed) -#define _sym_name_rowcomponent (_common_symbols->s_name_rowcomponent) -#define _sym_name_setvalue (_common_symbols->s_name_setvalue) -#define _sym_name_textcolor (_common_symbols->s_name_textcolor) -#define _sym_name_textstyle (_common_symbols->s_name_textstyle) -#define _sym_name_width (_common_symbols->s_name_width) -#define _sym_nameinspector (_common_symbols->s_nameinspector) -#define _sym_nativewindow (_common_symbols->s_nativewindow) -#define _sym_navkey (_common_symbols->s_navkey) -#define _sym_new (_common_symbols->s_new) -#define _sym_newcopy (_common_symbols->s_newcopy) -#define _sym_newdefault (_common_symbols->s_newdefault) -#define _sym_newex (_common_symbols->s_newex) -#define _sym_newfilebrowser (_common_symbols->s_newfilebrowser) -#define _sym_newfolder (_common_symbols->s_newfolder) -#define _sym_newlines (_common_symbols->s_newlines) -#define _sym_newobj (_common_symbols->s_newobj) -#define _sym_newobject (_common_symbols->s_newobject) -#define _sym_newobjects (_common_symbols->s_newobjects) -#define _sym_newpatcherview (_common_symbols->s_newpatcherview) -#define _sym_newpatchline (_common_symbols->s_newpatchline) -#define _sym_newquery (_common_symbols->s_newquery) -#define _sym_next (_common_symbols->s_next) -#define _sym_nextline (_common_symbols->s_nextline) -#define _sym_nextobject (_common_symbols->s_nextobject) -#define _sym_nextrecord (_common_symbols->s_nextrecord) -#define _sym_nextview (_common_symbols->s_nextview) -#define _sym_nfilters (_common_symbols->s_nfilters) -#define _sym_No (_common_symbols->s_No) -#define _sym_noactivate (_common_symbols->s_noactivate) -#define _sym_nobox (_common_symbols->s_nobox) -#define _sym_noclipse (_common_symbols->s_noclipse) -#define _sym_noclose (_common_symbols->s_noclose) -#define _sym_noedit (_common_symbols->s_noedit) -#define _sym_noeval (_common_symbols->s_noeval) -#define _sym_nofloat (_common_symbols->s_nofloat) -#define _sym_nofontpanel (_common_symbols->s_nofontpanel) -#define _sym_nogrow (_common_symbols->s_nogrow) -#define _sym_nomad (_common_symbols->s_nomad) -#define _sym_nomenu (_common_symbols->s_nomenu) -#define _sym_nominimize (_common_symbols->s_nominimize) -#define _sym_none (_common_symbols->s_none) -#define _sym_nonomad (_common_symbols->s_nonomad) -#define _sym_normalheight (_common_symbols->s_normalheight) -#define _sym_normalwidth (_common_symbols->s_normalwidth) -#define _sym_noscroll (_common_symbols->s_noscroll) -#define _sym_not (_common_symbols->s_not) -#define _sym_notevalues (_common_symbols->s_notevalues) -#define _sym_nothing (_common_symbols->s_nothing) -#define _sym_notify (_common_symbols->s_notify) -#define _sym_notifyall (_common_symbols->s_notifyall) -#define _sym_notifyall_delete (_common_symbols->s_notifyall_delete) -#define _sym_notifyall_new (_common_symbols->s_notifyall_new) -#define _sym_notitle (_common_symbols->s_notitle) -#define _sym_nozoom (_common_symbols->s_nozoom) -#define _sym_nth (_common_symbols->s_nth) -#define _sym_number (_common_symbols->s_number) -#define _sym_number_paint (_common_symbols->s_number_paint) -#define _sym_number_rowcomponent (_common_symbols->s_number_rowcomponent) -#define _sym_number_setvalue (_common_symbols->s_number_setvalue) -#define _sym_numfields (_common_symbols->s_numfields) -#define _sym_nummidpoints (_common_symbols->s_nummidpoints) -#define _sym_numrecords (_common_symbols->s_numrecords) -#define _sym_numresults (_common_symbols->s_numresults) -#define _sym_numrowschanged (_common_symbols->s_numrowschanged) -#define _sym_numtabs (_common_symbols->s_numtabs) -#define _sym_numviews (_common_symbols->s_numviews) -#define _sym_numwindowviews (_common_symbols->s_numwindowviews) -#define _sym_ob_sym (_common_symbols->s_ob_sym) -#define _sym_obex_container (_common_symbols->s_obex_container) -#define _sym_objargs (_common_symbols->s_objargs) -#define _sym_object (_common_symbols->s_object) -#define _sym_object_id (_common_symbols->s_object_id) -#define _sym_objectcount (_common_symbols->s_objectcount) -#define _sym_objectfilename (_common_symbols->s_objectfilename) -#define _sym_objectlist (_common_symbols->s_objectlist) -#define _sym_objectpalette (_common_symbols->s_objectpalette) -#define _sym_objectview_doubleclick (_common_symbols->s_objectview_doubleclick) -#define _sym_objectview_selected (_common_symbols->s_objectview_selected) -#define _sym_objptr2index (_common_symbols->s_objptr2index) -#define _sym_objtype (_common_symbols->s_objtype) -#define _sym_obtrusiveerror (_common_symbols->s_obtrusiveerror) -#define _sym_offset (_common_symbols->s_offset) -#define _sym_offset_rowcomponent (_common_symbols->s_offset_rowcomponent) -#define _sym_offset_setvalue (_common_symbols->s_offset_setvalue) -#define _sym_offsetfrom (_common_symbols->s_offsetfrom) -#define _sym_offsetmidpoints (_common_symbols->s_offsetmidpoints) -#define _sym_okclose (_common_symbols->s_okclose) -#define _sym_oksize (_common_symbols->s_oksize) -#define _sym_one (_common_symbols->s_one) -#define _sym_onoff (_common_symbols->s_onoff) -#define _sym_opaque (_common_symbols->s_opaque) -#define _sym_open (_common_symbols->s_open) -#define _sym_openassoc (_common_symbols->s_openassoc) -#define _sym_openfile (_common_symbols->s_openfile) -#define _sym_openinpresentation (_common_symbols->s_openinpresentation) -#define _sym_openquery (_common_symbols->s_openquery) -#define _sym_openrect (_common_symbols->s_openrect) -#define _sym_openweb (_common_symbols->s_openweb) -#define _sym_optional (_common_symbols->s_optional) -#define _sym_optionsdirty (_common_symbols->s_optionsdirty) -#define _sym_order (_common_symbols->s_order) -#define _sym_order_by (_common_symbols->s_order_by) -#define _sym_orderbefore (_common_symbols->s_orderbefore) -#define _sym_orderfront (_common_symbols->s_orderfront) -#define _sym_orientation (_common_symbols->s_orientation) -#define _sym_outlet (_common_symbols->s_outlet) -#define _sym_outletnum (_common_symbols->s_outletnum) -#define _sym_outline (_common_symbols->s_outline) -#define _sym_outmode (_common_symbols->s_outmode) -#define _sym_output (_common_symbols->s_output) -#define _sym_outputcount (_common_symbols->s_outputcount) -#define _sym_outputmatrix (_common_symbols->s_outputmatrix) -#define _sym_outputmode (_common_symbols->s_outputmode) -#define _sym_overdrive (_common_symbols->s_overdrive) -#define _sym_owner (_common_symbols->s_owner) -#define _sym_ownervis (_common_symbols->s_ownervis) -#define _sym_p (_common_symbols->s_p) -#define _sym_paint (_common_symbols->s_paint) -#define _sym_paintsbackground (_common_symbols->s_paintsbackground) -#define _sym_palette_action (_common_symbols->s_palette_action) -#define _sym_palette_caption (_common_symbols->s_palette_caption) -#define _sym_palette_category (_common_symbols->s_palette_category) -#define _sym_palette_numerical_order (_common_symbols->s_palette_numerical_order) -#define _sym_palette_order (_common_symbols->s_palette_order) -#define _sym_palette_protocount (_common_symbols->s_palette_protocount) -#define _sym_palette_tab_action (_common_symbols->s_palette_tab_action) -#define _sym_parameter_enable (_common_symbols->s_parameter_enable) -#define _sym_parent (_common_symbols->s_parent) -#define _sym_parentclass (_common_symbols->s_parentclass) -#define _sym_parentpatcher (_common_symbols->s_parentpatcher) -#define _sym_parse (_common_symbols->s_parse) -#define _sym_parsefile (_common_symbols->s_parsefile) -#define _sym_paste (_common_symbols->s_paste) -#define _sym_pastefileintoobject (_common_symbols->s_pastefileintoobject) -#define _sym_pastefrom (_common_symbols->s_pastefrom) -#define _sym_pastereplace (_common_symbols->s_pastereplace) -#define _sym_patcher (_common_symbols->s_patcher) -#define _sym_patchercomponent (_common_symbols->s_patchercomponent) -#define _sym_patchercontextmenu (_common_symbols->s_patchercontextmenu) -#define _sym_patchereditor (_common_symbols->s_patchereditor) -#define _sym_patchername (_common_symbols->s_patchername) -#define _sym_patchernotify (_common_symbols->s_patchernotify) -#define _sym_patcherview (_common_symbols->s_patcherview) -#define _sym_patcherview_instances (_common_symbols->s_patcherview_instances) -#define _sym_patcherview_invis (_common_symbols->s_patcherview_invis) -#define _sym_patcherview_notify_locked (_common_symbols->s_patcherview_notify_locked) -#define _sym_patcherview_notify_presentation (_common_symbols->s_patcherview_notify_presentation) -#define _sym_patcherview_vis (_common_symbols->s_patcherview_vis) -#define _sym_patching_position (_common_symbols->s_patching_position) -#define _sym_patching_rect (_common_symbols->s_patching_rect) -#define _sym_patching_size (_common_symbols->s_patching_size) -#define _sym_patchline (_common_symbols->s_patchline) -#define _sym_path (_common_symbols->s_path) -#define _sym_pattrstorage (_common_symbols->s_pattrstorage) -#define _sym_pclose (_common_symbols->s_pclose) -#define _sym_pending (_common_symbols->s_pending) -#define _sym_pic (_common_symbols->s_pic) -#define _sym_pictctrl (_common_symbols->s_pictctrl) -#define _sym_plane (_common_symbols->s_plane) -#define _sym_planecount (_common_symbols->s_planecount) -#define _sym_planelink (_common_symbols->s_planelink) -#define _sym_plugconfig (_common_symbols->s_plugconfig) -#define _sym_plus (_common_symbols->s_plus) -#define _sym_png (_common_symbols->s_png) -#define _sym_pointer (_common_symbols->s_pointer) -#define _sym_popupmenu (_common_symbols->s_popupmenu) -#define _sym_portenable (_common_symbols->s_portenable) -#define _sym_position (_common_symbols->s_position) -#define _sym_postname (_common_symbols->s_postname) -#define _sym_pound_B (_common_symbols->s_pound_B) -#define _sym_pound_D (_common_symbols->s_pound_D) -#define _sym_pound_N (_common_symbols->s_pound_N) -#define _sym_pound_P (_common_symbols->s_pound_P) -#define _sym_pound_X (_common_symbols->s_pound_X) -#define _sym_preferences (_common_symbols->s_preferences) -#define _sym_preload (_common_symbols->s_preload) -#define _sym_presentation (_common_symbols->s_presentation) -#define _sym_presentation_linecount (_common_symbols->s_presentation_linecount) -#define _sym_presentation_position (_common_symbols->s_presentation_position) -#define _sym_presentation_rect (_common_symbols->s_presentation_rect) -#define _sym_presentation_size (_common_symbols->s_presentation_size) -#define _sym_preset (_common_symbols->s_preset) -#define _sym_preset_data (_common_symbols->s_preset_data) -#define _sym_preview (_common_symbols->s_preview) -#define _sym_preview_image (_common_symbols->s_preview_image) -#define _sym_previewheight (_common_symbols->s_previewheight) -#define _sym_previewimagedata (_common_symbols->s_previewimagedata) -#define _sym_prevobject (_common_symbols->s_prevobject) -#define _sym_print (_common_symbols->s_print) -#define _sym_priority (_common_symbols->s_priority) -#define _sym_prototype (_common_symbols->s_prototype) -#define _sym_prototype_binbuf (_common_symbols->s_prototype_binbuf) -#define _sym_prototypename (_common_symbols->s_prototypename) -#define _sym_psave (_common_symbols->s_psave) -#define _sym_pulsate (_common_symbols->s_pulsate) -#define _sym_pupdate (_common_symbols->s_pupdate) -#define _sym_quantifier (_common_symbols->s_quantifier) -#define _sym_quantifier_exists (_common_symbols->s_quantifier_exists) -#define _sym_quantifiers (_common_symbols->s_quantifiers) -#define _sym_quantize (_common_symbols->s_quantize) -#define _sym_queries (_common_symbols->s_queries) -#define _sym_query (_common_symbols->s_query) -#define _sym_query_selected (_common_symbols->s_query_selected) -#define _sym_querycontroller (_common_symbols->s_querycontroller) -#define _sym_queryid (_common_symbols->s_queryid) -#define _sym_querylist (_common_symbols->s_querylist) -#define _sym_queryname (_common_symbols->s_queryname) -#define _sym_querypreview (_common_symbols->s_querypreview) -#define _sym_querysearch (_common_symbols->s_querysearch) -#define _sym_quickmap (_common_symbols->s_quickmap) -#define _sym_quit (_common_symbols->s_quit) -#define _sym_quitting (_common_symbols->s_quitting) -#define _sym_radial (_common_symbols->s_radial) -#define _sym_range (_common_symbols->s_range) -#define _sym_rawfind (_common_symbols->s_rawfind) -#define _sym_rawwindsave (_common_symbols->s_rawwindsave) -#define _sym_rawwindsaveas (_common_symbols->s_rawwindsaveas) -#define _sym_read (_common_symbols->s_read) -#define _sym_readonly (_common_symbols->s_readonly) -#define _sym_realclass (_common_symbols->s_realclass) -#define _sym_rebuilding (_common_symbols->s_rebuilding) -#define _sym_recordbyindex (_common_symbols->s_recordbyindex) -#define _sym_recreate_invis (_common_symbols->s_recreate_invis) -#define _sym_recreate_vis (_common_symbols->s_recreate_vis) -#define _sym_rect (_common_symbols->s_rect) -#define _sym_rectangle (_common_symbols->s_rectangle) -#define _sym_rectangular (_common_symbols->s_rectangular) -#define _sym_red (_common_symbols->s_red) -#define _sym_redostack (_common_symbols->s_redostack) -#define _sym_redraw (_common_symbols->s_redraw) -#define _sym_redrawcontents (_common_symbols->s_redrawcontents) -#define _sym_reference (_common_symbols->s_reference) -#define _sym_reffile (_common_symbols->s_reffile) -#define _sym_refinequery (_common_symbols->s_refinequery) -#define _sym_refresh (_common_symbols->s_refresh) -#define _sym_register (_common_symbols->s_register) -#define _sym_remove (_common_symbols->s_remove) -#define _sym_removeattr (_common_symbols->s_removeattr) -#define _sym_removeattr_enable (_common_symbols->s_removeattr_enable) -#define _sym_removeboxlayer (_common_symbols->s_removeboxlayer) -#define _sym_removeclient (_common_symbols->s_removeclient) -#define _sym_removefrompresentation (_common_symbols->s_removefrompresentation) -#define _sym_removelines (_common_symbols->s_removelines) -#define _sym_removeobjects (_common_symbols->s_removeobjects) -#define _sym_removesegment (_common_symbols->s_removesegment) -#define _sym_removeslot (_common_symbols->s_removeslot) -#define _sym_removewiretap (_common_symbols->s_removewiretap) -#define _sym_rename (_common_symbols->s_rename) -#define _sym_renumberslot (_common_symbols->s_renumberslot) -#define _sym_replace (_common_symbols->s_replace) -#define _sym_replaced_args (_common_symbols->s_replaced_args) -#define _sym_reschedule (_common_symbols->s_reschedule) -#define _sym_reset (_common_symbols->s_reset) -#define _sym_resize (_common_symbols->s_resize) -#define _sym_resizeaction (_common_symbols->s_resizeaction) -#define _sym_resized (_common_symbols->s_resized) -#define _sym_resizelimits (_common_symbols->s_resizelimits) -#define _sym_resizenotify (_common_symbols->s_resizenotify) -#define _sym_resolve_name (_common_symbols->s_resolve_name) -#define _sym_resolve_raw (_common_symbols->s_resolve_raw) -#define _sym_resort (_common_symbols->s_resort) -#define _sym_resource (_common_symbols->s_resource) -#define _sym_respondtoclick (_common_symbols->s_respondtoclick) -#define _sym_restore (_common_symbols->s_restore) -#define _sym_restrict_dim (_common_symbols->s_restrict_dim) -#define _sym_restrict_planecount (_common_symbols->s_restrict_planecount) -#define _sym_restrict_type (_common_symbols->s_restrict_type) -#define _sym_result (_common_symbols->s_result) -#define _sym_retain (_common_symbols->s_retain) -#define _sym_revealinfinder (_common_symbols->s_revealinfinder) -#define _sym_reverse (_common_symbols->s_reverse) -#define _sym_rgb (_common_symbols->s_rgb) -#define _sym_rgba (_common_symbols->s_rgba) -#define _sym_rolename (_common_symbols->s_rolename) -#define _sym_rotate (_common_symbols->s_rotate) -#define _sym_rounded (_common_symbols->s_rounded) -#define _sym_rowcolorchanged (_common_symbols->s_rowcolorchanged) -#define _sym_rowcomponent (_common_symbols->s_rowcomponent) -#define _sym_rowenabled (_common_symbols->s_rowenabled) -#define _sym_rowhead (_common_symbols->s_rowhead) -#define _sym_rowheightchanged (_common_symbols->s_rowheightchanged) -#define _sym_safebang (_common_symbols->s_safebang) -#define _sym_safeclear (_common_symbols->s_safeclear) -#define _sym_samples (_common_symbols->s_samples) -#define _sym_save (_common_symbols->s_save) -#define _sym_save2 (_common_symbols->s_save2) -#define _sym_saveas (_common_symbols->s_saveas) -#define _sym_saveboxprototype (_common_symbols->s_saveboxprototype) -#define _sym_saved_object_attributes (_common_symbols->s_saved_object_attributes) -#define _sym_savefilepath (_common_symbols->s_savefilepath) -#define _sym_savelasttab (_common_symbols->s_savelasttab) -#define _sym_savequery (_common_symbols->s_savequery) -#define _sym_saveto (_common_symbols->s_saveto) -#define _sym_savewindow (_common_symbols->s_savewindow) -#define _sym_savingdefault (_common_symbols->s_savingdefault) -#define _sym_scale (_common_symbols->s_scale) -#define _sym_script (_common_symbols->s_script) -#define _sym_scrollanimatetime (_common_symbols->s_scrollanimatetime) -#define _sym_scrolloffset (_common_symbols->s_scrolloffset) -#define _sym_scrollorigin (_common_symbols->s_scrollorigin) -#define _sym_scrollposition (_common_symbols->s_scrollposition) -#define _sym_scrollselectedobjectsintoview (_common_symbols->s_scrollselectedobjectsintoview) -#define _sym_scrollto (_common_symbols->s_scrollto) -#define _sym_scrollviewtoshow (_common_symbols->s_scrollviewtoshow) -#define _sym_search (_common_symbols->s_search) -#define _sym_searchterm (_common_symbols->s_searchterm) -#define _sym_searchtext (_common_symbols->s_searchtext) -#define _sym_select (_common_symbols->s_select) -#define _sym_selectallonedit (_common_symbols->s_selectallonedit) -#define _sym_selectbox (_common_symbols->s_selectbox) -#define _sym_selectcategory (_common_symbols->s_selectcategory) -#define _sym_selectcell (_common_symbols->s_selectcell) -#define _sym_selectdropped (_common_symbols->s_selectdropped) -#define _sym_selected (_common_symbols->s_selected) -#define _sym_selectedboxes (_common_symbols->s_selectedboxes) -#define _sym_selectedlines (_common_symbols->s_selectedlines) -#define _sym_selectedrow (_common_symbols->s_selectedrow) -#define _sym_selectedrow_contextual (_common_symbols->s_selectedrow_contextual) -#define _sym_selfsave (_common_symbols->s_selfsave) -#define _sym_selmode (_common_symbols->s_selmode) -#define _sym_send (_common_symbols->s_send) -#define _sym_sendbackward (_common_symbols->s_sendbackward) -#define _sym_sendbox (_common_symbols->s_sendbox) -#define _sym_sendboxmsg (_common_symbols->s_sendboxmsg) -#define _sym_senderclasssym (_common_symbols->s_senderclasssym) -#define _sym_sendtoback (_common_symbols->s_sendtoback) -#define _sym_session_usage_count (_common_symbols->s_session_usage_count) -#define _sym_set (_common_symbols->s_set) -#define _sym_setall (_common_symbols->s_setall) -#define _sym_setassoc (_common_symbols->s_setassoc) -#define _sym_setatoms (_common_symbols->s_setatoms) -#define _sym_setattr (_common_symbols->s_setattr) -#define _sym_setboxrect (_common_symbols->s_setboxrect) -#define _sym_setcellunits (_common_symbols->s_setcellunits) -#define _sym_setcellvalue (_common_symbols->s_setcellvalue) -#define _sym_setcontainedcomponent (_common_symbols->s_setcontainedcomponent) -#define _sym_setdata (_common_symbols->s_setdata) -#define _sym_setdefaults (_common_symbols->s_setdefaults) -#define _sym_setdirty (_common_symbols->s_setdirty) -#define _sym_seteditboxcaretposition (_common_symbols->s_seteditboxcaretposition) -#define _sym_seteditboxhighlightedregion (_common_symbols->s_seteditboxhighlightedregion) -#define _sym_seteditview (_common_symbols->s_seteditview) -#define _sym_setfilter (_common_symbols->s_setfilter) -#define _sym_setflags (_common_symbols->s_setflags) -#define _sym_setfont (_common_symbols->s_setfont) -#define _sym_setglobalcoords (_common_symbols->s_setglobalcoords) -#define _sym_setinfo (_common_symbols->s_setinfo) -#define _sym_setinfo_ex (_common_symbols->s_setinfo_ex) -#define _sym_setmethod (_common_symbols->s_setmethod) -#define _sym_setmidpoint (_common_symbols->s_setmidpoint) -#define _sym_setpatcherattr (_common_symbols->s_setpatcherattr) -#define _sym_setptr (_common_symbols->s_setptr) -#define _sym_setrect (_common_symbols->s_setrect) -#define _sym_setspecialrow (_common_symbols->s_setspecialrow) -#define _sym_settext (_common_symbols->s_settext) -#define _sym_setunitsym (_common_symbols->s_setunitsym) -#define _sym_setvalue (_common_symbols->s_setvalue) -#define _sym_setvalueof (_common_symbols->s_setvalueof) -#define _sym_setvaluetext (_common_symbols->s_setvaluetext) -#define _sym_setwindowrect (_common_symbols->s_setwindowrect) -#define _sym_setwindowsize (_common_symbols->s_setwindowsize) -#define _sym_setzorder (_common_symbols->s_setzorder) -#define _sym_shortcut (_common_symbols->s_shortcut) -#define _sym_show (_common_symbols->s_show) -#define _sym_showcaption (_common_symbols->s_showcaption) -#define _sym_showdoc (_common_symbols->s_showdoc) -#define _sym_showfind (_common_symbols->s_showfind) -#define _sym_showpreview (_common_symbols->s_showpreview) -#define _sym_showrecent (_common_symbols->s_showrecent) -#define _sym_showrow (_common_symbols->s_showrow) -#define _sym_showsaveable (_common_symbols->s_showsaveable) -#define _sym_showtarget (_common_symbols->s_showtarget) -#define _sym_shuffle (_common_symbols->s_shuffle) -#define _sym_signal (_common_symbols->s_signal) -#define _sym_sinceyesterday (_common_symbols->s_sinceyesterday) -#define _sym_singleinspector (_common_symbols->s_singleinspector) -#define _sym_size (_common_symbols->s_size) -#define _sym_sizeboxes (_common_symbols->s_sizeboxes) -#define _sym_slot_definition (_common_symbols->s_slot_definition) -#define _sym_slot_modified (_common_symbols->s_slot_modified) -#define _sym_slots (_common_symbols->s_slots) -#define _sym_smpte (_common_symbols->s_smpte) -#define _sym_snaptogrid (_common_symbols->s_snaptogrid) -#define _sym_sort (_common_symbols->s_sort) -#define _sym_sortablechanged (_common_symbols->s_sortablechanged) -#define _sym_sortcolumn (_common_symbols->s_sortcolumn) -#define _sym_sortdata (_common_symbols->s_sortdata) -#define _sym_sorted (_common_symbols->s_sorted) -#define _sym_sorted_by_column (_common_symbols->s_sorted_by_column) -#define _sym_source (_common_symbols->s_source) -#define _sym_spacing (_common_symbols->s_spacing) -#define _sym_special (_common_symbols->s_special) -#define _sym_specialclick (_common_symbols->s_specialclick) -#define _sym_specialcount (_common_symbols->s_specialcount) -#define _sym_sql (_common_symbols->s_sql) -#define _sym_sql2 (_common_symbols->s_sql2) -#define _sym_sqlite (_common_symbols->s_sqlite) -#define _sym_sqlite_result (_common_symbols->s_sqlite_result) -#define _sym_sqlstring (_common_symbols->s_sqlstring) -#define _sym_sr (_common_symbols->s_sr) -#define _sym_start (_common_symbols->s_start) -#define _sym_startdrag (_common_symbols->s_startdrag) -#define _sym_startmoveboxes (_common_symbols->s_startmoveboxes) -#define _sym_startpoint (_common_symbols->s_startpoint) -#define _sym_startprobe (_common_symbols->s_startprobe) -#define _sym_starttransaction (_common_symbols->s_starttransaction) -#define _sym_startwindow (_common_symbols->s_startwindow) -#define _sym_state (_common_symbols->s_state) -#define _sym_sticky_attr (_common_symbols->s_sticky_attr) -#define _sym_sticky_method (_common_symbols->s_sticky_method) -#define _sym_stop (_common_symbols->s_stop) -#define _sym_store (_common_symbols->s_store) -#define _sym_straighten (_common_symbols->s_straighten) -#define _sym_straightend (_common_symbols->s_straightend) -#define _sym_straightstart (_common_symbols->s_straightstart) -#define _sym_straightthresh (_common_symbols->s_straightthresh) -#define _sym_string (_common_symbols->s_string) -#define _sym_style (_common_symbols->s_style) -#define _sym_sub (_common_symbols->s_sub) -#define _sym_subpatcher (_common_symbols->s_subpatcher) -#define _sym_surfacebuffer (_common_symbols->s_surfacebuffer) -#define _sym_svg (_common_symbols->s_svg) -#define _sym_swap (_common_symbols->s_swap) -#define _sym_swatches (_common_symbols->s_swatches) -#define _sym_symbol (_common_symbols->s_symbol) -#define _sym_sysqelem (_common_symbols->s_sysqelem) -#define _sym_t (_common_symbols->s_t) -#define _sym_tab_bgcolor (_common_symbols->s_tab_bgcolor) -#define _sym_table (_common_symbols->s_table) -#define _sym_tabledata (_common_symbols->s_tabledata) -#define _sym_tag (_common_symbols->s_tag) -#define _sym_tags (_common_symbols->s_tags) -#define _sym_tapcontroller_show (_common_symbols->s_tapcontroller_show) -#define _sym_tapwindow (_common_symbols->s_tapwindow) -#define _sym_target (_common_symbols->s_target) -#define _sym_template (_common_symbols->s_template) -#define _sym_tempo (_common_symbols->s_tempo) -#define _sym_text (_common_symbols->s_text) -#define _sym_text_commaseparated (_common_symbols->s_text_commaseparated) -#define _sym_text_large (_common_symbols->s_text_large) -#define _sym_text_onesymbol (_common_symbols->s_text_onesymbol) -#define _sym_textchanged (_common_symbols->s_textchanged) -#define _sym_textcolor (_common_symbols->s_textcolor) -#define _sym_textfield (_common_symbols->s_textfield) -#define _sym_textfile (_common_symbols->s_textfile) -#define _sym_textmargins (_common_symbols->s_textmargins) -#define _sym_textstyle (_common_symbols->s_textstyle) -#define _sym_thismonth (_common_symbols->s_thismonth) -#define _sym_thisweek (_common_symbols->s_thisweek) -#define _sym_threadpriority (_common_symbols->s_threadpriority) -#define _sym_threadsafe (_common_symbols->s_threadsafe) -#define _sym_three (_common_symbols->s_three) -#define _sym_ticks (_common_symbols->s_ticks) -#define _sym_time (_common_symbols->s_time) -#define _sym_timeobj (_common_symbols->s_timeobj) -#define _sym_timesigchanged (_common_symbols->s_timesigchanged) -#define _sym_timeupdate (_common_symbols->s_timeupdate) -#define _sym_tinge (_common_symbols->s_tinge) -#define _sym_title (_common_symbols->s_title) -#define _sym_titleassoc (_common_symbols->s_titleassoc) -#define _sym_tobinbuf (_common_symbols->s_tobinbuf) -#define _sym_toc (_common_symbols->s_toc) -#define _sym_today (_common_symbols->s_today) -#define _sym_todictionary (_common_symbols->s_todictionary) -#define _sym_togworld (_common_symbols->s_togworld) -#define _sym_tool (_common_symbols->s_tool) -#define _sym_tool_paint (_common_symbols->s_tool_paint) -#define _sym_tool_rowcomponent (_common_symbols->s_tool_rowcomponent) -#define _sym_tool_setvalue (_common_symbols->s_tool_setvalue) -#define _sym_tool_sort (_common_symbols->s_tool_sort) -#define _sym_toolbarheight (_common_symbols->s_toolbarheight) -#define _sym_toolbarid (_common_symbols->s_toolbarid) -#define _sym_toolbars (_common_symbols->s_toolbars) -#define _sym_toolbarvisible (_common_symbols->s_toolbarvisible) -#define _sym_top_inset (_common_symbols->s_top_inset) -#define _sym_topmost (_common_symbols->s_topmost) -#define _sym_toppatcher (_common_symbols->s_toppatcher) -#define _sym_topredoname (_common_symbols->s_topredoname) -#define _sym_topundoname (_common_symbols->s_topundoname) -#define _sym_trackaction (_common_symbols->s_trackaction) -#define _sym_transparent (_common_symbols->s_transparent) -#define _sym_transport (_common_symbols->s_transport) -#define _sym_traverse (_common_symbols->s_traverse) -#define _sym_triangle (_common_symbols->s_triangle) -#define _sym_tutorial (_common_symbols->s_tutorial) -#define _sym_two (_common_symbols->s_two) -#define _sym_twobytecomment (_common_symbols->s_twobytecomment) -#define _sym_type (_common_symbols->s_type) -#define _sym_typed_usage_count (_common_symbols->s_typed_usage_count) -#define _sym_typedwrapper (_common_symbols->s_typedwrapper) -#define _sym_typelink (_common_symbols->s_typelink) -#define _sym_types (_common_symbols->s_types) -#define _sym_underline (_common_symbols->s_underline) -#define _sym_understands (_common_symbols->s_understands) -#define _sym_undo (_common_symbols->s_undo) -#define _sym_undostack (_common_symbols->s_undostack) -#define _sym_unimbed (_common_symbols->s_unimbed) -#define _sym_uninitialized (_common_symbols->s_uninitialized) -#define _sym_unique (_common_symbols->s_unique) -#define _sym_unit (_common_symbols->s_unit) -#define _sym_units (_common_symbols->s_units) -#define _sym_unlocked_iocolor (_common_symbols->s_unlocked_iocolor) -#define _sym_unlockedinteraction (_common_symbols->s_unlockedinteraction) -#define _sym_unset (_common_symbols->s_unset) -#define _sym_up (_common_symbols->s_up) -#define _sym_update (_common_symbols->s_update) -#define _sym_update_metadata (_common_symbols->s_update_metadata) -#define _sym_updatecommand (_common_symbols->s_updatecommand) -#define _sym_updatecontent (_common_symbols->s_updatecontent) -#define _sym_updatefind (_common_symbols->s_updatefind) -#define _sym_updatelookandfeel (_common_symbols->s_updatelookandfeel) -#define _sym_updatemenu (_common_symbols->s_updatemenu) -#define _sym_updateprototypes (_common_symbols->s_updateprototypes) -#define _sym_updatequery (_common_symbols->s_updatequery) -#define _sym_updatequerydict (_common_symbols->s_updatequerydict) -#define _sym_updaterect (_common_symbols->s_updaterect) -#define _sym_url (_common_symbols->s_url) -#define _sym_us_ascii (_common_symbols->s_us_ascii) -#define _sym_usage_count (_common_symbols->s_usage_count) -#define _sym_usedslotlist (_common_symbols->s_usedslotlist) -#define _sym_useellipsis (_common_symbols->s_useellipsis) -#define _sym_useimagebuffer (_common_symbols->s_useimagebuffer) -#define _sym_usemax (_common_symbols->s_usemax) -#define _sym_usemin (_common_symbols->s_usemin) -#define _sym_user (_common_symbols->s_user) -#define _sym_usercanget (_common_symbols->s_usercanget) -#define _sym_usercanset (_common_symbols->s_usercanset) -#define _sym_utf_16 (_common_symbols->s_utf_16) -#define _sym_utf_16be (_common_symbols->s_utf_16be) -#define _sym_utf_16le (_common_symbols->s_utf_16le) -#define _sym_utf_8 (_common_symbols->s_utf_8) -#define _sym_val (_common_symbols->s_val) -#define _sym_value (_common_symbols->s_value) -#define _sym_value_endchange (_common_symbols->s_value_endchange) -#define _sym_value_rowcomponent (_common_symbols->s_value_rowcomponent) -#define _sym_valuebyindex (_common_symbols->s_valuebyindex) -#define _sym_varname (_common_symbols->s_varname) -#define _sym_varname_set (_common_symbols->s_varname_set) -#define _sym_varname_unset (_common_symbols->s_varname_unset) -#define _sym_version (_common_symbols->s_version) -#define _sym_videofile (_common_symbols->s_videofile) -#define _sym_views (_common_symbols->s_views) -#define _sym_viewspan (_common_symbols->s_viewspan) -#define _sym_vignette (_common_symbols->s_vignette) -#define _sym_vis (_common_symbols->s_vis) -#define _sym_visibilitychanged (_common_symbols->s_visibilitychanged) -#define _sym_visible (_common_symbols->s_visible) -#define _sym_visiblecanvasrect (_common_symbols->s_visiblecanvasrect) -#define _sym_vol (_common_symbols->s_vol) -#define _sym_vpicture (_common_symbols->s_vpicture) -#define _sym_vpreset (_common_symbols->s_vpreset) -#define _sym_wantfree (_common_symbols->s_wantfree) -#define _sym_wantsreturn (_common_symbols->s_wantsreturn) -#define _sym_wantstab (_common_symbols->s_wantstab) -#define _sym_watch (_common_symbols->s_watch) -#define _sym_watchpoint_flags (_common_symbols->s_watchpoint_flags) -#define _sym_watchpoint_id (_common_symbols->s_watchpoint_id) -#define _sym_wclose (_common_symbols->s_wclose) -#define _sym_webpage (_common_symbols->s_webpage) -#define _sym_weeks (_common_symbols->s_weeks) -#define _sym_wind (_common_symbols->s_wind) -#define _sym_window (_common_symbols->s_window) -#define _sym_windowbounds (_common_symbols->s_windowbounds) -#define _sym_windowrect (_common_symbols->s_windowrect) -#define _sym_windsave (_common_symbols->s_windsave) -#define _sym_wiretap (_common_symbols->s_wiretap) -#define _sym_withinlast (_common_symbols->s_withinlast) -#define _sym_wobjectname (_common_symbols->s_wobjectname) -#define _sym_wordwrap (_common_symbols->s_wordwrap) -#define _sym_workspace (_common_symbols->s_workspace) -#define _sym_write (_common_symbols->s_write) -#define _sym_writedictionary (_common_symbols->s_writedictionary) -#define _sym_xmlfile (_common_symbols->s_xmlfile) -#define _sym_years (_common_symbols->s_years) -#define _sym_zero (_common_symbols->s_zero) -#define _sym_zoom (_common_symbols->s_zoom) -#define _sym_zoombox (_common_symbols->s_zoombox) -#define _sym_zoomfactor (_common_symbols->s_zoomfactor) -#define _sym_zorder (_common_symbols->s_zorder) -#define _sym_zzz (_common_symbols->s_zzz) -#define _sym_Sans_Serif (_common_symbols->s_Sans_Serif) - -extern t_common_symbols_table *_common_symbols; - -void common_symbols_init(void); -t_common_symbols_table *common_symbols_gettable(void); - -END_USING_C_LINKAGE - -#endif // __COMMON_SYMBOLS_H__ diff --git a/source/c74support/max-includes/ext.h b/source/c74support/max-includes/ext.h deleted file mode 100755 index d8bcd43d..00000000 --- a/source/c74support/max-includes/ext.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef _EXT_H_ -#define _EXT_H_ - -#define C74_MAX_SDK_VERSION 0x0701 - -#include "ext_infer_system.h" - -#include "ext_common.h" - -// include max_types before ext_prefix to get C74_X64 definition -#include "max_types.h" // core type definitions -#include "ext_prefix.h" - -#include "ext_mess.h" -#include "ext_assist.h" - -#define clock_free freeobject -#define binbuf_free freeobject -#define wind_free freeobject - -/** - This macro being defined means that getbytes and sysmem APIs for memory management are unified. - This is correct for Max 5, but should be commented out when compiling for older max targets. - @ingroup memory -*/ -#define MM_UNIFIED - -#include "ext_maxtypes.h" -#include "ext_byteorder.h" - -#include "ext_sysmem.h" -#include "ext_sysfile.h" -#include "ext_systime.h" -#include "ext_expr.h" -#include "ext_path.h" - -#include "ext_wind.h" - -#include "ext_proto.h" - -#include "ext_atomarray.h" -#include "ext_atombuf.h" -#include "ext_obstring.h" -#include "ext_hashtab.h" -#include "ext_dictionary.h" -#include "ext_obex_util.h" -#include "commonsyms.h" -#include "ext_strings.h" -#include "ext_obex.h" -#include "ext_systhread.h" -#include "ext_drag.h" -#include "jpatcher_api.h" -#include "ext_charset.h" -#include "ext_typelist.h" -#include "ext_post.h" - -// the old post() and error() functions should be avoided since their names are generic and -// could be overloaded by earlier-loading frameworks/dlls in the plugin context. -// for now, we simply redefine post() and error() usage to the object_ variation. See #4779. -#define post(...) object_post(NULL, __VA_ARGS__) -#define error(...) object_error(NULL, __VA_ARGS__) - -BEGIN_USING_C_LINKAGE -/** ext_main() is the entry point for an extern to be loaded, which all externs must implement - this shared/common prototype ensures that it will be exported correctly on all platforms. - - @ingroup class - @param r Pointer to resources for the external, if applicable. - @see @ref chapter_anatomy - @version Introduced in Max 6.1.9 -*/ -void C74_EXPORT ext_main(void *r); -END_USING_C_LINKAGE - -#endif /* _EXT_H_ */ diff --git a/source/c74support/max-includes/ext_anim.h b/source/c74support/max-includes/ext_anim.h deleted file mode 100755 index 64e520d2..00000000 --- a/source/c74support/max-includes/ext_anim.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_ANIM_H_ -#define _EXT_ANIM_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_ANIM_H_ */ diff --git a/source/c74support/max-includes/ext_assist.h b/source/c74support/max-includes/ext_assist.h deleted file mode 100644 index 8c1d2f91..00000000 --- a/source/c74support/max-includes/ext_assist.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _EXT_ASSIST_H_ -#define _EXT_ASSIST_H_ - -#include "max_types.h" -#include "ext_prefix.h" -#include "ext_mess.h" - -#define ASSIST_INLET 1 -#define ASSIST_OUTLET 2 - -// external object assist methods should limit returned string lengths to this -#define ASSIST_MAX_STRING_LEN 500 - -BEGIN_USING_C_LINKAGE - -void stdinletinfo(t_object *s, void *b, long a, char *t); - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_ASSIST_H_ diff --git a/source/c74support/max-includes/ext_atomarray.h b/source/c74support/max-includes/ext_atomarray.h deleted file mode 100644 index aab17f68..00000000 --- a/source/c74support/max-includes/ext_atomarray.h +++ /dev/null @@ -1,319 +0,0 @@ - -#ifndef _EXT_ATOMARRAY_H_ -#define _EXT_ATOMARRAY_H_ - -#include "max_types.h" -#include "ext_prefix.h" -#include "ext_mess.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** The atomarray flags. Currently the only flag is ATOMARRAY_FLAG_FREECHILDREN. - If set via atomarray_flags() the atomarray will free any contained A_OBJ atoms when the - atomarray is freed. - - @ingroup atomarray -*/ - -#define ATOMARRAY_FLAG_FREECHILDREN (1) - -#ifndef C74_X64 - -union word64 -{ - t_int64 w_long; - double w_float; - struct symbol *w_sym; - struct object *w_obj; -}; - -typedef struct atom64 -{ - short a_type; - union word64 a_w; -} t_atom64; - -#else - -#define t_atom64 t_atom - -#endif - - -/** The atomarray object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup atomarray - */ -typedef struct _atomarray -{ - t_object ob; - long ac; - t_atom *av; - long flags; -#ifndef C74_X64 - t_atom64 *av64; -#endif -} t_atomarray; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -BEGIN_USING_C_LINKAGE - -/** - Create a new atomarray object. - Note that atoms provided to this function will be copied. The copies stored internally to the atomarray instance. - You can free the atomarray by calling object_free(). - - @ingroup atomarray - @param ac The number of atoms to be initially contained in the atomarray. - @param av A pointer to the first of an array of atoms to initially copy into the atomarray. - @return Pointer to the new atomarray object. - - @remark Note that due to the unusual prototype of this method that you cannot instantiate this object using the - object_new_typed() function. If you wish to use the dynamically bound creator to instantiate the object, - you should instead should use object_new() as demonstrated below. The primary reason that you might choose - to instantiate an atomarray using object_new() instead of atomarray_new() is for using the atomarray object - in code that is also intended to run in Max 4. - @code - object_new(CLASS_NOBOX, gensym("atomarray"), argc, argv); - @endcode - - @see atomarray_duplicate() -*/ -t_atomarray *atomarray_new(long ac, t_atom *av); - -/** - Set the atomarray flags. - - @ingroup atomarray - - @param x The atomarray instance. - @param flags The new value for the flags. -*/ -void atomarray_flags(t_atomarray *x, long flags); - -/** - Get the atomarray flags. - - @ingroup atomarray - - @param x The atomarray instance. - @return The current value of the atomarray flags. -*/ -long atomarray_getflags(t_atomarray *x); - -/** - Replace the existing array contents with a new set of atoms - Note that atoms provided to this function will be copied. The copies stored internally to the atomarray instance. - - @ingroup atomarray - - @param x The atomarray instance. - @param ac The number of atoms to be initially contained in the atomarray. - @param av A pointer to the first of an array of atoms to initially copy into the atomarray. - @return A Max error code. -*/ -t_max_err atomarray_setatoms(t_atomarray *x, long ac, t_atom *av); - - -/** - Retrieve a pointer to the first atom in the internal array of atoms. - This method does not copy the atoms, btu simply provides access to them. - To retrieve a copy of the atoms use atomarray_copyatoms(). - - @ingroup atomarray - - @param x The atomarray instance. - @param ac The address of a long where the number of atoms will be set. - @param av The address of a #t_atom pointer where the address of the first atom of the array will be set. - @return A Max error code. - - @see atomarray_copyatoms() -*/ -t_max_err atomarray_getatoms(t_atomarray *x, long *ac, t_atom **av); - - -/** - Retrieve a copy of the atoms in the array. - To retrieve a pointer to the contained atoms use atomarray_getatoms(). - - @ingroup atomarray - - @param x The atomarray instance. - @param ac The address of a long where the number of atoms will be set. - @param av The address of a #t_atom pointer where the atoms will be allocated and copied. - @return A Max error code. - - @remark You are responsible for freeing memory allocated for the copy of the atoms returned. - @code - long ac = 0; - t_atom *av = NULL; - - atomarray_copyatoms(anAtomarray, &ac, &av); - if(ac && av){ - // do something with ac and av here... - sysmem_freeptr(av); - } - @endcode - - @see atomarray_getatoms() -*/ -t_max_err atomarray_copyatoms(t_atomarray *x, long *ac, t_atom **av); - - -/** - Return the number of atoms in the array. - - @ingroup atomarray - @param x The atomarray instance. - @return The number of atoms in the array. -*/ -t_atom_long atomarray_getsize(t_atomarray *x); - - -/** - Copy an a specific atom from the array. - - @ingroup atomarray - @param x The atomarray instance. - @param index The zero-based index into the array from which to retrieve an atom pointer. - @param av The address of an atom to contain the copy. - @return A Max error code. - - @remark Example: - @code - { - t_atom a; - - // fetch a copy of the second atom in a previously existing array - atomarray_getindex(anAtomarray, 1, &a); - // do something with the atom here... - } - @endcode -*/ -t_max_err atomarray_getindex(t_atomarray *x, long index, t_atom *av); - - -// not exported yet -t_max_err atomarray_setindex(t_atomarray *x, long index, t_atom *av); - - -/** - Create a new atomarray object which is a copy of another atomarray object. - - @ingroup atomarray - @param x The atomarray instance which is to be copied. - @return A new atomarray which is copied from x. - - @see atomarray_new() -*/ -void *atomarray_duplicate(t_atomarray *x); - - -/** - Create a new atomarray object which is a full clone of another atomarray object. - - @ingroup atomarray - @param x The atomarray instance which is to be copied. - @return A new atomarray which is copied from x. - - @see atomarray_new() - */ -void *atomarray_clone(t_atomarray *x); - -/** - Copy a new atom onto the end of the array. - - @ingroup atomarray - @param x The atomarray instance. - @param a A pointer to the new atom to append to the end of the array. - - @see atomarray_appendatoms() - @see atomarray_setatoms() -*/ -void atomarray_appendatom(t_atomarray *x, t_atom *a); - - -/** - Copy multiple new atoms onto the end of the array. - - @ingroup atomarray - @param x The atomarray instance. - @param ac The number of new atoms to be appended to the array. - @param av A pointer to the first of the new atoms to append to the end of the array. - - @see atomarray_appendatom() - @see atomarray_setatoms() -*/ -void atomarray_appendatoms(t_atomarray *x, long ac, t_atom *av); - - -/** - Remove an atom from any location within the array. - The array will be resized and collapsed to fill in the gap. - - @ingroup atomarray - @param x The atomarray instance. - @param index The zero-based index of the atom to remove from the array. -*/ -void atomarray_chuckindex(t_atomarray *x, long index); - - -/** - Clear the array. Frees all of the atoms and sets the size to zero. - This function does not perform a 'deep' free, meaning that any #A_OBJ atoms will not have their object's freed. - Only the references to those objects contained in the atomarray will be freed. - - @ingroup atomarray - @param x The atomarray instance. - @return The number of atoms in the array. -*/ -void atomarray_clear(t_atomarray *x); - - -/** - Call the specified function for every item in the atom array. - - @ingroup atomarray - @param x The atomarray instance. - @param fun The function to call, specified as function pointer cast to a Max #method. - @param arg An argument that you would like to pass to the function being called. - @return A max error code. - - @remark The atomarray_funall() method will call your function for every item in the list. - It will pass both a pointer to the item in the list, and any argument that you - provide. The following example shows a function that could be called by hashtab_funall(). - @code - void myFun(t_atom *a, void *myArg) - { - // do something with a and myArg here - // a is the atom in the atom array - } - @endcode - - @see linklist_funall() - @see hashtab_funall() -*/ -void atomarray_funall(t_atomarray *x, method fun, void *arg); - -#ifndef C74_X64 -#define atom64_setfloat(x, f) ((x)->a_type = A_FLOAT, (x)->a_w.w_float = (f)) -#define atom64_getfloat(x) (((t_atom64*)x)->a_w.w_float); -#else -#define atom64_setfloat(x, f) atom_setfloat(x, f) -#define atom64_getfloat(x) atom_getfloat(x) -#endif - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_ATOMARRAY_H_ diff --git a/source/c74support/max-includes/ext_atombuf.h b/source/c74support/max-includes/ext_atombuf.h deleted file mode 100644 index 7e37b177..00000000 --- a/source/c74support/max-includes/ext_atombuf.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef _EXT_ATOMBUF_H_ -#define _EXT_ATOMBUF_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -/** The atombuf struct provides a way to pass a collection of atoms. - @ingroup atombuf -*/ -typedef struct atombuf { - long a_argc; ///< the number of atoms - t_atom a_argv[1]; ///< the first of the array of atoms -} t_atombuf; - -// atombuf functions - -BEGIN_USING_C_LINKAGE - -/** - Use atombuf_new() to create a new Atombuf from an array of t_atoms. - - @ingroup atombuf - @param argc Number of t_atoms in the argv array. May be 0. - @param argv Array of t_atoms. If creating an empty Atombuf, you may pass 0. - @return atombuf_new() create a new #t_atombuf and returns a pointer to it. - If 0 is returned, insufficient memory was available. -*/ -void *atombuf_new(long argc, t_atom *argv); - - -/** - Use atombuf_free() to dispose of the memory used by a #t_atombuf. - - @ingroup atombuf - @param x The #t_atombuf to free. -*/ -void atombuf_free(t_atombuf *x); - - -/** - Use atombuf_text() to convert text to a #t_atom array in a #t_atombuf. - To use this routine to create a new Atombuf from the text buffer, first - create a new empty t_atombuf with a call to atombuf_new(0,NULL). - - @ingroup atombuf - @param x Pointer to existing atombuf variable. - The variable will be replaced by a new Atombuf containing the converted text. - @param text Handle to the text to be converted. It need not be zero-terminated. - @param size Number of characters in the text. -*/ -void atombuf_text(t_atombuf **x, char **text, long size); - -// undocumented - -short atombuf_totext(t_atombuf *x, char **text, long *size); -short atombuf_count(t_atombuf *x); -void atombuf_set(t_atombuf *x, long start, long num); -long atombuf_replacepoundargs(t_atombuf *x, long argc, t_atom *argv); -short atombuf_next(t_atombuf* x, long* count, t_atom* atom); -void atombuf_replace(t_atombuf** x, t_symbol* s, long ac, t_atom* av); -void atombuf_prepend(t_atombuf** x, t_symbol* s, long ac, t_atom* av); -void atombuf_append(t_atombuf** x, t_symbol* s, long ac, t_atom* av); -void* atombuf_eval(t_atombuf* x, long ac, t_atom* av, t_object* to); - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_ATOMBUF_H_ diff --git a/source/c74support/max-includes/ext_atomic.h b/source/c74support/max-includes/ext_atomic.h deleted file mode 100644 index 40b2a819..00000000 --- a/source/c74support/max-includes/ext_atomic.h +++ /dev/null @@ -1,169 +0,0 @@ -// ext_atomic.h copyright 2008 cycling '74 - -#ifndef __EXT_ATOMIC_H__ -#define __EXT_ATOMIC_H__ - -#if __GNUC__ && !defined(MAC_VERSION) -#define USE_GNUC_ATOMICS -#endif - -#ifdef USE_GNUC_ATOMICS - -#include - -typedef volatile int32_t t_int32_atomic; -typedef volatile int64_t t_int64_atomic; -typedef volatile uint32_t t_uint32_atomic; -typedef volatile uint64_t t_uint64_atomic; - -/** increment an atomic int value - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_INCREMENT(atomicptr) (__atomic_add_fetch(atomicptr, 1, __ATOMIC_RELAXED)) - -/** increment an atomic int value with a memory barrier - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_INCREMENT_BARRIER(atomicptr) (__atomic_add_fetch(atomicptr, 1, __ATOMIC_SEQ_CST)) - -/** decrement an atomic int value - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_DECREMENT(atomicptr) (__atomic_sub_fetch(atomicptr, 1, __ATOMIC_RELAXED)) - -/** decrement an atomic int value with a memory barrier - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_DECREMENT_BARRIER(atomicptr) (__atomic_sub_fetch(atomicptr, 1, __ATOMIC_SEQ_CST)) - - -static -#ifdef __cplusplus -bool -#else -_Bool -#endif -atomic_compare_and_swap_32(t_int32_atomic *ptr, t_int32_atomic old, t_int32_atomic new_) -{ - return __atomic_compare_exchange_n(ptr, (int32_t *)&old, new_, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); -} - -static -#ifdef __cplusplus -bool -#else -_Bool -#endif -atomic_compare_and_swap_64(t_int64_atomic *ptr, t_int64_atomic old, t_int64_atomic new_) -{ - return __atomic_compare_exchange_n(ptr, (int64_t *)&old, new_, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); -} - -#define ATOMIC_COMPARE_SWAP32(oldvalue, newvalue, atomicptr) atomic_compare_and_swap_32(atomicptr, oldvalue, newvalue) -#define ATOMIC_COMPARE_SWAP64(oldvalue, newvalue, atomicptr) atomic_compare_and_swap_64(atomicptr, oldvalue, newvalue) - - -#else // USE_GNUC_ATOMICS - -#ifdef MAC_VERSION - -#include -#include - -typedef volatile int32_t t_int32_atomic; -typedef volatile int64_t t_int64_atomic; -typedef volatile u_int32_t t_uint32_atomic; -typedef volatile u_int64_t t_uint64_atomic; - -/** increment an atomic int value - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_INCREMENT(atomicptr) OSAtomicIncrement32((int32_t *)atomicptr) - -/** increment an atomic int value with a memory barrier - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_INCREMENT_BARRIER(atomicptr) OSAtomicIncrement32Barrier((int32_t *)atomicptr) - -/** decrement an atomic int value - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_DECREMENT(atomicptr) OSAtomicDecrement32((int32_t *)atomicptr) - -/** decrement an atomic int value with a memory barrier - @ingroup threading - return value of ATOMIC_INCREMENT and ATOMIC_DECREMENT is the *new* value after performing the operation -*/ -#define ATOMIC_DECREMENT_BARRIER(atomicptr) OSAtomicDecrement32Barrier((int32_t *)atomicptr) - -#define ATOMIC_COMPARE_SWAP32(oldvalue, newvalue, atomicptr) (OSAtomicCompareAndSwap32Barrier(oldvalue, newvalue, atomicptr)) -#define ATOMIC_COMPARE_SWAP64(oldvalue, newvalue, atomicptr) (OSAtomicCompareAndSwap64Barrier(oldvalue, newvalue, atomicptr)) - -#else // WIN_VERSION - -// rbs: intrin.h is not compatible with C, only C++ -// #include -typedef volatile long t_int32_atomic; -typedef volatile __int64 t_int64_atomic; -typedef volatile unsigned long t_uint32_atomic; -typedef volatile unsigned __int64 t_uint64_atomic; - -BEGIN_USING_C_LINKAGE - -LONG __cdecl _InterlockedIncrement(LONG volatile *Addend); -LONG __cdecl _InterlockedDecrement(LONG volatile *Addend); -LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp); -__int64 __cdecl _InterlockedCompareExchange64(__int64 volatile *Dest, __int64 Exchange, __int64 Comp); -// LONG __cdecl _InterlockedExchange(LPLONG volatile Target, LONG Value); -// LONG __cdecl _InterlockedExchangeAdd(LPLONG volatile Addend, LONG Value); - -END_USING_C_LINKAGE - -#pragma intrinsic (_InterlockedIncrement) -#pragma intrinsic (_InterlockedDecrement) -#pragma intrinsic (_InterlockedCompareExchange) -#pragma intrinsic (_InterlockedCompareExchange64) - -/** Use this routine for incrementing a global counter using a threadsafe and multiprocessor safe method. - @ingroup threading - @param atomicptr pointer to the (int) counter. -*/ - -// on windows I don't think there are non-barrier atomic increment / decrement functions -// perhaps could be done with inline assembly? - -#define ATOMIC_INCREMENT(atomicptr) (_InterlockedIncrement(atomicptr)) -#define ATOMIC_INCREMENT_BARRIER(atomicptr) (_InterlockedIncrement(atomicptr)) - - -/** Use this routine for decrementing a global counter using a threadsafe and multiprocessor safe method. - @ingroup threading - @param atomicptr pointer to the (int) counter. -*/ -#define ATOMIC_DECREMENT(atomicptr) (_InterlockedDecrement(atomicptr)) -#define ATOMIC_DECREMENT_BARRIER(atomicptr) (_InterlockedDecrement(atomicptr)) - -/** atomic compare exchange does this: - - if (*atomicptr == oldvalue) *atomicptr = newvalue; - - all of above done atomically - - return value is boolean: true if exchange was done - @ingroup threading - @param atomicptr pointer to the atomic value - @param newvalue value that will be assigned to *atomicptr if test succeeds - @param oldvalue newvalue is only stored if original value equals oldvalue -*/ -#define ATOMIC_COMPARE_SWAP32(oldvalue, newvalue, atomicptr) (_InterlockedCompareExchange(atomicptr, newvalue, oldvalue)==oldvalue) -#define ATOMIC_COMPARE_SWAP64(oldvalue, newvalue, atomicptr) (_InterlockedCompareExchange64(atomicptr, newvalue, oldvalue)==oldvalue) - -#endif // WIN_VERSION - -#endif // USE_GNUC_ATOMICS - -#endif // #ifndef __EXT_ATOMIC_H__ diff --git a/source/c74support/max-includes/ext_backgroundtask.h b/source/c74support/max-includes/ext_backgroundtask.h deleted file mode 100644 index 08140a1a..00000000 --- a/source/c74support/max-includes/ext_backgroundtask.h +++ /dev/null @@ -1,45 +0,0 @@ -// ext_backgroundtask.h -#ifndef __BACKGROUNDTASK_H__ -#define __BACKGROUNDTASK_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH -#pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK -#pragma pack(2) -#endif - -BEGIN_USING_C_LINKAGE - -#ifndef __BACKGROUNDTASK_H_INTERNAL__ - -typedef struct _backgroundtask -{ - void *opaque; -} t_backgroundtask; - -#endif // __BACKGROUNDTASK_H_INTERNAL__ - -typedef enum { - BACKGROUNDTASK_FLAG_COMPLETE_MAINTHREAD = 0x00000001L // call cbcomplete callback from main thread -} e_backgroundtask_execute_flags; - -long backgroundtask_execute(t_object *owner, void *args, method cbtask, method cbcomplete, t_backgroundtask **task, long flags); -long backgroundtask_execute_method(t_object *obtask, t_symbol *mtask, long actask, t_atom *avtask, - t_object *obcomp, t_symbol *mcomp, long accomp, t_atom *avcomp, t_backgroundtask **task, long flags); -void backgroundtask_purge_object(t_object *owner); -void backgroundtask_join_object(t_object *owner); -long backgroundtask_cancel(t_backgroundtask *task); -long backgroundtask_join(t_backgroundtask *task); - -END_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH -#pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK -#pragma pack() -#endif - -#endif // __BACKGROUNDTASK_H__ diff --git a/source/c74support/max-includes/ext_boxstyle.h b/source/c74support/max-includes/ext_boxstyle.h deleted file mode 100644 index f6181487..00000000 --- a/source/c74support/max-includes/ext_boxstyle.h +++ /dev/null @@ -1,267 +0,0 @@ -#ifndef _EXT_BOXSTYLE_H_ -#define _EXT_BOXSTYLE_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#include "jgraphics.h" - -BEGIN_USING_C_LINKAGE - - -/** Add an attribute to the current style. - @ingroup styles - - @param c The class whose attribute will be added to the style. - @param s The name of the attribute to be added to the style. - @see The 'uitextfield' example project in the SDK. -*/ -void class_attr_setstyle(t_class *c, const char *s); - - -/** Add an alias to the current style. - This is used for backward compatibility where an attribute using an old name will want a style applied to it from a different name. - Typically you will use one of the macros such as #CLASS_ATTR_STYLE_ALIAS_NOSAVE rather than using this function directly. - @ingroup styles - - @param c The class for whom the alias will be created. - @param name The name of the attribute of the style. - @param aliasname The name of the alias. - @param legacy Always pass 0 for this argument. - @see #CLASS_ATTR_STYLE_ALIAS_NOSAVE - @see The 'jslider' project in the SDK. -*/ -void class_attr_style_alias(t_class *c, const char *name, const char *aliasname, long legacy); - - -/** Flag indicating we want this fill attribute saved (creates attrs). - @ingroup styles - @see class_attr_setfill() - @see The 'uitextfield' example project in the SDK. -*/ -#define FILL_ATTR_SAVE 1 - - -/** Specify that an attr requires a fill. - @ingroup styles - - @param c The class whose attribute is a fill. - @param name The name of the attribute. - @param flags 0 for none, or #FILL_ATTR_SAVE. - @see The 'uitextfield' example project in the SDK. -*/ -void class_attr_setfill(t_class *c, const char *name, long flags); - - -/** Fill using the current value of a named style color that exists either in the object or the defined style. - Abdridged example from the 'attrui' object: - @code - long is_fill = object_attr_getfill(destination, x->j_attr); - - if (is_fill) { - jgraphics_attr_fillrect((t_object *)destination, g, x->j_attr, rect); - jgraphics_rectangle(g, rect->x, rect->y, rect->width, rect->height); // ready to be stroked - } - else { - object_attr_getjrgba(destination, x->j_attr, &color); - jgraphics_set_source_jrgba(g, &color); - jgraphics_rectangle(g, rect->x, rect->y, rect->width, rect->height); - jgraphics_fill_preserve(g); - } - - jgraphics_set_source_jrgba(g, &bordercolor); - jgraphics_stroke(g); - @endcode - - @ingroup styles - - @param b The instance of your object. - @param g The jgraphics context. - @param attrname The name of the attribute whose fill style you want. - @param area The rect area to be filled. -*/ -void jgraphics_attr_fillrect(t_object *b, t_jgraphics *g, t_symbol *attrname, t_rect *area); - - -/** Fill using the current value of a named style color that exists either in the object or the defined style. - Example from the 'panel' object: - @code - t_rect r; - - r.x = r.y = thick * 0.5; - r.width = rect->width - thick; - r.height = rect->height - thick; - - pat = jgraphics_attr_setfill((t_object *)x, g, ps_bgfillcolor, &r); - jgraphics_rectangle_rounded(g, r.x, r.y, r.width, r.height, round, round); - jgraphics_fill_preserve(g); - jgraphics_pattern_destroy(pat); - - object_attr_getjrgba(x, ps_bordercolor, &color); - jgraphics_set_source_jrgba(g, &color); - jgraphics_set_line_width(g, thick); - jgraphics_stroke(g); - @endcode - - @ingroup styles - - @param b The instance of your object. - @param g The jgraphics context. - @param attrname The name of the attribute whose fill style you want. - @param area The rect area to be filled. - @return The pattern. -*/ -t_jpattern *jgraphics_attr_setfill(t_object *b, t_jgraphics *g, t_symbol *attrname, t_rect *area); - - -/** Determine the color at a given position in a fill. - @ingroup styles - @param b The instance of your object. - @param attrname The name of the attribute to query. - @param pos The position in a range of [0.0, 1.0]. - @param c A valid #t_jrgba whose members will be filled-in upon return. - @return true if the object is a fill, otherwise false. -*/ -void object_attr_getfillcolor_atposition(t_object *b, const char *attrname, double pos, t_jrgba *c); - - -/** Determine if an attribute is a fill. - @ingroup styles - @param obj The instance of your object. - @param attrname The name of the attribute to query. - @return true if the object is a fill, otherwise false. -*/ -long object_attr_getfill(t_object *obj, t_symbol *attrname); - -void object_style_setfillattribute(t_object *x, t_symbol *fillattr, t_symbol *entry, long argc, t_atom *argv); - - -/** Associate the name of an attribute of your class with the name of an attribute of a style. - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param mapname The name of the attribute from the style. - @see 'jslider' example project in the SDK. -*/ -void class_attr_stylemap(t_class *c, const char *attrname, const char *mapname); - -t_symbol *object_attr_attrname_forstylemap(t_object *x, t_symbol *mapname); // internal use only -t_symbol *object_attr_stylemapname(t_object *x, t_symbol *attrname); // internal use only - - -// menus of named styles - -t_jpopupmenu *style_getmenu(t_object *context, t_symbol *current, long mask, long *selecteditem, long *headercount); // internal use only -void style_handlemenu(t_object *context, long itemindex, t_symbol **current); // internal use only - -// Attribute Macros for simple and maintainable style attribute definitions - -// CLASS_ATTR_STYLE_RGBA defines an RGBA style attribute with standard settings -// and replaces RGBA style definitions of the following pattern, with and without "preview" and saving: -/* - CLASS_ATTR_RGBA(c,"accentcolor",0, t_jnumber, j_tricolor); - CLASS_ATTR_SAVE(c, "accentcolor", 0); - CLASS_ATTR_PAINT(c, "accentcolor", 0); - CLASS_ATTR_STYLE_LABEL(c, "accentcolor", 0 , "rgba", "Triangle Color"); - class_attr_setstyle(c, "accentcolor"); - CLASS_ATTR_ATTR_PARSE(c, "accentcolor", "preview", USESYM(symbol), 0, "triangle_fill"); - */ - -/** Define an RGBA style attribute with standard settings. - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param label A human-friendly label for the Max inspector. - @see #CLASS_ATTR_STYLE_RGBA is a variant that saves the state with the patcher. - @see #CLASS_ATTR_STYLE_RGBA_PREVIEW is a variant that provides a style preview. - @see class_attr_setstyle() is the lower level function used to provide the style part of the attribute definition. -*/ -#define CLASS_ATTR_STYLE_RGBA_NOSAVE(c,attrname,flags,structname,structmember,label) \ -{ CLASS_ATTR_DOUBLE_ARRAY(c,attrname,flags,structname,structmember,4); \ - CLASS_ATTR_ACCESSORS(c,attrname,NULL,jgraphics_attr_setrgba); \ - CLASS_ATTR_PAINT(c,attrname,0); \ - CLASS_ATTR_STYLE_LABEL(c,attrname,0,"rgba",label); \ - class_attr_setstyle(c,attrname); } - - -/** Define an RGBA style attribute with standard settings. - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param label A human-friendly label for the Max inspector. - @see #CLASS_ATTR_STYLE_RGBA_NOSAVE is a variant that does not save the state with the patcher. - @see #CLASS_ATTR_STYLE_RGBA_PREVIEW is a variant that provides a style preview. - @see class_attr_setstyle() is the lower level function used to provide the style part of the attribute definition. -*/ -#define CLASS_ATTR_STYLE_RGBA(c,attrname,flags,structname,structmember,label) \ -{ CLASS_ATTR_STYLE_RGBA_NOSAVE(c,attrname,flags,structname,structmember,label) \ - CLASS_ATTR_SAVE(c,attrname,0); } - - -/** Define an RGBA style attribute with standard settings. - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param label A human-friendly label for the Max inspector. - @param previewtype Type of preview to use in the style bar, e.g. "triangle_fill" - @see #CLASS_ATTR_STYLE_RGBA_NOSAVE is a variant that does not save the state with the patcher. - @see #CLASS_ATTR_STYLE_RGBA is a variant that saves the state with the patcher but does not provide the preview. - @see class_attr_setstyle() is the lower level function used to provide the style part of the attribute definition. -*/ -#define CLASS_ATTR_STYLE_RGBA_PREVIEW(c,attrname,flags,structname,structmember,label,previewtype) \ -{ CLASS_ATTR_STYLE_RGBA(c,attrname,flags,structname,structmember,label); \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"preview",USESYM(symbol),0,previewtype); } - - -/** Define an unsaved alias. - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param aliasname The name of the alias. - @see 'jslider' example project in the SDK. -*/ -#define CLASS_ATTR_STYLE_ALIAS_NOSAVE(c,attrname,aliasname) \ -{ class_attr_style_alias(c,attrname,aliasname,false); \ - CLASS_ATTR_INVISIBLE(c,aliasname,0); \ - CLASS_ATTR_PAINT(c,aliasname,0); } - - -/** Define a Max 5/6 saved compatibility alias - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param aliasname The name of the alias. -*/ -#define CLASS_ATTR_STYLE_ALIAS_COMPATIBILITY(c,attrname,aliasname) \ -{ class_attr_style_alias(c,attrname,aliasname,false); \ - CLASS_ATTR_INVISIBLE(c,aliasname,0); \ - CLASS_ATTR_SAVE(c,aliasname,0); \ - CLASS_ATTR_PAINT(c,aliasname,0); } - - -/** Define a Max 4 legacy RGB attribute alias - @ingroup styles - @param c The class whose attribute will be added to the style. - @param attrname The name of the attribute of your class. - @param aliasname The name of the alias. - @see 'jslider' example project in the SDK. -*/ -#define CLASS_ATTR_STYLE_ALIAS_RGBA_LEGACY(c,attrname,aliasname) \ -{ class_attr_style_alias(c,attrname,aliasname,false); \ - CLASS_ATTR_INVISIBLE(c,aliasname,0); \ - CLASS_ATTR_PAINT(c,aliasname,0); \ - CLASS_ATTR_ACCESSORS(c,aliasname,NULL,jgraphics_attr_setrgb_alias); } - - -END_USING_C_LINKAGE - -#endif // _EXT_BOXSTYLE_H diff --git a/source/c74support/max-includes/ext_byteorder.h b/source/c74support/max-includes/ext_byteorder.h deleted file mode 100644 index c8792d18..00000000 --- a/source/c74support/max-includes/ext_byteorder.h +++ /dev/null @@ -1,303 +0,0 @@ -#ifndef _BYTEORDER_H_ -#define _BYTEORDER_H_ - -#include "ext_prefix.h" -#include "ext_common.h" - -#ifdef MAC_VERSION -#if TARGET_RT_LITTLE_ENDIAN -#define C74_LITTLE_ENDIAN 1 -#define C74_BIG_ENDIAN 0 -#else -#define C74_LITTLE_ENDIAN 0 -#define C74_BIG_ENDIAN 1 -#endif - -#elif defined (__BYTE_ORDER__) - -#define C74_LITTLE_ENDIAN (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) -#define C74_BIG_ENDIAN (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) - -#else // WIN_VERSION - -/** - A macro that indicates whether or not the current architecture uses Litte-endian byte ordering - (such as is used on an i386 processor). - Note that this macro is always defined; it will be either a 0 or a 1. - @ingroup byteorder -*/ -#define C74_LITTLE_ENDIAN 1 - -/** - A macro that indicates whether or not the current architecture uses Big-endian byte ordering - (such as is used on a PPC processor). - Note that this macro is always defined; it will be either a 0 or a 1. - @ingroup byteorder -*/ -#define C74_BIG_ENDIAN 0 - -#endif // WIN_VERSION - - -/** - Switch the byte ordering of a short integer. - @ingroup byteorder - @param x A short integer. - @return A short integer with the byte-ordering swapped. -*/ -#define BYTEORDER_SWAPW16(x) ((t_int16)(((((t_uint16)(x))>>8)&0x00ff)+ \ - ((((t_uint16)(x))<<8)&0xff00))) - - -/** - Switch the byte ordering of an integer. - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped. -*/ -#define BYTEORDER_SWAPW32(x) ((t_int32)(((((t_uint32)(x))>>24L)&0x000000ff)+ \ - ((((t_uint32)(x))>> 8L)&0x0000ff00)+ \ - ((((t_uint32)(x))<< 8L)&0x00ff0000)+ \ - ((((t_uint32)(x))<<24L)&0xff000000))) - - -/** - Switch the byte ordering of an integer. - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped. -*/ -#define BYTEORDER_SWAPW64(x) ((t_int64)(((((t_uint64)(x))>>56L)&0x00000000000000ff)+ \ - ((((t_uint64)(x))>>40L)&0x000000000000ff00)+ \ - ((((t_uint64)(x))>>24L)&0x0000000000ff0000)+ \ - ((((t_uint64)(x))>> 8L)&0x00000000ff000000)+ \ - ((((t_uint64)(x))<< 8L)&0x000000ff00000000)+ \ - ((((t_uint64)(x))<<24L)&0x0000ff0000000000)+ \ - ((((t_uint64)(x))<<40L)&0x00ff000000000000)+ \ - ((((t_uint64)(x))<<56L)&0xff00000000000000))) - - -/** - Switch the byte ordering of a float. - @ingroup byteorder - @param x A float. - @return A float with the byte-ordering swapped. -*/ -#define BYTEORDER_SWAPF32 byteorder_swapf32 - -/** - Switch the byte ordering of a double. - @ingroup byteorder - @param x A double. - @return A double. -*/ -#define BYTEORDER_SWAPF64 byteorder_swapf64 - -// To be documented -#define BYTEORDER_SWAPF32_PTR(x) byteorder_swap_pointer_32((unsigned char*)(x)) -#define BYTEORDER_SWAPF64_PTR(x) byteorder_swap_pointer_64((unsigned char*)(x)) -#define BYTEORDER_SWAPF32_PTR_TO_PTR(x, y) byteorder_swap_pointer_32_copy((unsigned char*)(x), (unsigned char*)(y)) -#define BYTEORDER_SWAPF64_PTR_TO_PTR(x, y) byteorder_swap_pointer_64_copy((unsigned char*)(x), (unsigned char*)(y)) -#define BYTEORDER_SWAPF32_FROM_PTR(x) byteorder_swap_pointer_32_to_float32((unsigned char*)(x)) -#define BYTEORDER_SWAPF64_FROM_PTR(x) byteorder_swap_pointer_64_to_float64((unsigned char*)(x)) - - -BEGIN_USING_C_LINKAGE - -// Undocumented, use the above macros. -// OBSOLETE. don't use. not safe to pass byteswapped floats in registers -C74_DEPRECATED( float byteorder_swapf32(float f) ); -C74_DEPRECATED( double byteorder_swapf64(double f) ); -C74_DEPRECATED( float swapf32(float f) ); -C74_DEPRECATED( double swapf64(double f) ); - -// these functions are inplace -void byteorder_swap_pointer_16(unsigned char *p); -void byteorder_swap_pointer_32(unsigned char *p); -void byteorder_swap_pointer_64(unsigned char *p); -// these function copy from one pointer to another (src!=dst) -void byteorder_swap_pointer_16_copy(unsigned char *src, unsigned char *dst); -void byteorder_swap_pointer_32_copy(unsigned char *src, unsigned char *dst); -void byteorder_swap_pointer_64_copy(unsigned char *src, unsigned char *dst); -// these functions return floating point values from a byteswapped pointer -float byteorder_swap_pointer_32_to_float32(unsigned char *p); -double byteorder_swap_pointer_64_to_float64(unsigned char *p); - -END_USING_C_LINKAGE - - -#if C74_BIG_ENDIAN -#define BYTEORDER_LSBW16(x) BYTEORDER_SWAPW16(x) -#define BYTEORDER_LSBW32(x) BYTEORDER_SWAPW32(x) -#define BYTEORDER_LSBF32(x) BYTEORDER_SWAPF32(x) -#define BYTEORDER_LSBF64(x) BYTEORDER_SWAPF64(x) -#define BYTEORDER_LSBF32_PTR(x) BYTEORDER_SWAPF32_PTR((unsigned char *)(x)) -#define BYTEORDER_LSBF64_PTR(x) BYTEORDER_SWAPF64_PTR((unsigned char *)(x)) -#define BYTEORDER_LSBF32_FROM_PTR(x) BYTEORDER_SWAPF32_FROM_PTR((unsigned char *)(x)) -#define BYTEORDER_LSBF64_FROM_PTR(x) BYTEORDER_SWAPF64_FROM_PTR((unsigned char *)(x)) -#define BYTEORDER_LSBF32_PTR_TO_PTR(x,y) BYTEORDER_SWAPF32_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define BYTEORDER_LSBF64_PTR_TO_PTR(x,y) BYTEORDER_SWAPF64_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define BYTEORDER_MSBW16(x) (x) -#define BYTEORDER_MSBW32(x) (x) -#define BYTEORDER_MSBW64(x) (x) -#define BYTEORDER_MSBF32(x) (x) -#define BYTEORDER_MSBF64(x) (x) -#define BYTEORDER_MSBF32_PTR(x) -#define BYTEORDER_MSBF64_PTR(x) -#define BYTEORDER_MSBF32_FROM_PTR(x) (*(float *)(x)) -#define BYTEORDER_MSBF64_FROM_PTR(x) (*(double *)(x)) -#define BYTEORDER_MSBF32_PTR_TO_PTR(x,y) ((*(float *)(y))=(*(float *)(x))) -#define BYTEORDER_MSBF64_PTR_TO_PTR(x,y) ((*(double *)(y))=(*(double *)(x))) -#else -/** - Switch the byte ordering of a short integer from the native swapping to Little-endian (Least Significant Byte). - If the current environment is already Little-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A short integer. - @return A short integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_LSBW16(x) (x) - -/** - Switch the byte ordering of an integer from the native swapping to Little-endian (Least Significant Byte). - If the current environment is already Little-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_LSBW32(x) (x) - -/** - Switch the byte ordering of an integer from the native swapping to Little-endian (Least Significant Byte). - If the current environment is already Little-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_LSBW64(x) (x) - -/** - Switch the byte ordering of a float from the native swapping to Little-endian (Least Significant Byte). - If the current environment is already Little-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A float. - @return A float with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_LSBF32(x) (x) - -/** - Switch the byte ordering of a double from the native swapping to Little-endian (Least Significant Byte). - If the current environment is already Little-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A double. - @return A double with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_LSBF64(x) (x) - -/** - Switch the byte ordering of a short integer from the native swapping to Big-endian (Most Significant Byte). - If the current environment is already Big-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A short integer. - @return A short integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_MSBW16(x) BYTEORDER_SWAPW16(x) - -/** - Switch the byte ordering of an integer from the native swapping to Big-endian (Most Significant Byte). - If the current environment is already Big-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_MSBW32(x) BYTEORDER_SWAPW32(x) - -/** - Switch the byte ordering of an integer from the native swapping to Big-endian (Most Significant Byte). - If the current environment is already Big-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x An integer. - @return An integer with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_MSBW64(x) BYTEORDER_SWAPW64(x) - -/** - Switch the byte ordering of a float from the native swapping to Big-endian (Most Significant Byte). - If the current environment is already Big-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A float. - @return A float with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_MSBF32(x) BYTEORDER_SWAPF32(x) - -/** - Switch the byte ordering of a double from the native swapping to Big-endian (Most Significant Byte). - If the current environment is already Big-endian, then the returned value is not byteswapped. - - @ingroup byteorder - @param x A double. - @return A double with the byte-ordering swapped if neccessary. -*/ -#define BYTEORDER_MSBF64(x) BYTEORDER_SWAPF64(x) - - -// To be documented. -#define BYTEORDER_LSBF32_PTR(x) -#define BYTEORDER_LSBF64_PTR(x) -#define BYTEORDER_LSBF32_FROM_PTR(x) (*(float *)(x)) -#define BYTEORDER_LSBF64_FROM_PTR(x) (*(double *)(x)) -#define BYTEORDER_LSBF32_PTR_TO_PTR(x,y) ((*(float *)(y))=(*(float *)(x))) -#define BYTEORDER_LSBF64_PTR_TO_PTR(x,y) ((*(double *)(y))=(*(double *)(x))) -#define BYTEORDER_MSBF32_PTR(x) BYTEORDER_SWAPF32_PTR((unsigned char *)(x)) -#define BYTEORDER_MSBF64_PTR(x) BYTEORDER_SWAPF64_PTR((unsigned char *)(x)) -#define BYTEORDER_MSBF32_FROM_PTR(x) BYTEORDER_SWAPF32_FROM_PTR((unsigned char *)(x)) -#define BYTEORDER_MSBF64_FROM_PTR(x) BYTEORDER_SWAPF64_FROM_PTR((unsigned char *)(x)) -#define BYTEORDER_MSBF32_PTR_TO_PTR(x,y) BYTEORDER_SWAPF32_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) -#define BYTEORDER_MSBF64_PTR_TO_PTR(x,y) BYTEORDER_SWAPF64_PTR_TO_PTR((unsigned char *)(x),(unsigned char *)(y)) - -#endif - - -#if C74_LITTLE_ENDIAN - -#define C74_FOUR_CHAR_CODE(x) (x) - - -#define STR_TO_FOURCC(x) ((x) = \ - (((t_uint32) ((x) & 0x000000FF)) << 24) | \ - (((t_uint32) ((x) & 0x0000FF00)) << 8) | \ - (((t_uint32) ((x) & 0x00FF0000)) >> 8) | \ - (((t_uint32) ((x) & 0xFF000000)) >> 24))\ - -#else - -#define C74_FOUR_CHAR_CODE(x) (((t_uint32) ((x) & 0x000000FF)) << 24) \ - | (((t_uint32) ((x) & 0x0000FF00)) << 8) \ - | (((t_uint32) ((x) & 0x00FF0000)) >> 8) \ - | (((t_uint32) ((x) & 0xFF000000)) >> 24) - -/* - Swap the byte ordering, if neccessary, for a Four Character Code. - The bytes are swapped in-place, thus there is no return value. - - @ingroup byteorder - @param x An integer (32bit) containing the four char code. - If byte-swapping is needed, it will be byte-swapped in-place. -*/ -#define STR_TO_FOURCC(x) (x) -#endif // C74_LITTLE_ENDIAN - -#ifndef FOUR_CHAR_CODE -#define FOUR_CHAR_CODE(x) C74_FOUR_CHAR_CODE(x) -#endif - -#endif // _BYTEORDER_H diff --git a/source/c74support/max-includes/ext_charset.h b/source/c74support/max-includes/ext_charset.h deleted file mode 100644 index 429c70eb..00000000 --- a/source/c74support/max-includes/ext_charset.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * charset.h - * - * Created by Jeremy Bernstein on 24.05.06. - * Copyright 2006 Cycling '74. All rights reserved. - * - */ - -#ifndef _EXT_CHARSET_H_ -#define _EXT_CHARSET_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** The charset_converter object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup unicode -*/ -typedef struct _charset_converter -{ - t_object ob; - void *conv; - void *src_encoding; - void *dst_encoding; -} t_charset_converter; - - -/** A convenience function that simplifies usage by wrapping the other charset functions. - @ingroup unicode - - @param src_encoding The name encoding of the input. - @param in The input string. - @param inbytes The number of bytes in the input string. - @param dest_encoding The name of the encoding to use for the output. - @param out The address of a char*, which will be allocated and filled with the string in the new encoding. - @param outbytes The address of a value that will hold the number of bytes long the output is upon return. - @return A Max error code. - @remark Remember to call sysmem_freeptr(*out) to free any allocated memory. -*/ -t_max_err charset_convert(t_symbol *src_encoding, const char *in, long inbytes, t_symbol *dest_encoding, char **out, long *outbytes); - - -/** Convert a UTF8 C-String into a 16-bit-wide-character array. - @ingroup unicode - @param s The string to be converted to unicode. - @param outlen The address of a variable to hold the size of the number of chars - but does not include the NULL terminator in the count. - @return A pointer to the buffer of unicode (wide) characters. -*/ -unsigned short *charset_utf8tounicode(char *s, long *outlen); - - -/** Convert a 16-bit-wide-character array into a UTF C-string. - Accepts either null termination, or not (len is zero in the latter case). - @ingroup unicode - @param s An array of wide (16-bit) unicode characters. - @param len The length of s. - @param outlen The address of a variable to hold the size of the number of chars - but does not include the NULL terminator in the count. - @return A UTF8-encoded C-string. - -*/ -char *charset_unicodetoutf8(unsigned short *s, long len, long *outlen); - - -/** Returns utf8 character count, and optionally bytecount. - @ingroup unicode - @param utf8 The UTF-8 encoded string whose characters are to be counted. - @param bytecount The address of a variable to hold the byte count on return. - Pass NULL if you don't require the byte count. - @return The number of characters in the UTF8 string. -*/ -long charset_utf8_count(char *utf8, long *bytecount); - - -/** Returns utf8 character offset (positive or negative), and optionally byte offset. - @ingroup unicode - @param utf8 A UTF-8 encoded string. - @param charoffset The char offset into the string at which to find the byte offset. - @param byteoffset The address of a variable to hold the byte offset on return. - Pass NULL if you don't require the byte offset. - @return The character offset. -*/ -char *charset_utf8_offset(char *utf8, long charoffset, long *byteoffset); - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_CHARSET_H_ diff --git a/source/c74support/max-includes/ext_colors.h b/source/c74support/max-includes/ext_colors.h deleted file mode 100755 index 46fed8d2..00000000 --- a/source/c74support/max-includes/ext_colors.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _EXT_COLORS_H_ -#define _EXT_COLORS_H_ - -/* -#define P_WHITE 0 -#define P_BLACK 1 -#define P_GRAYULITE 20 -#define P_GRAYVLITE 21 -#define P_GRAYLITE 22 -#define P_GRAYMED 25 -#define P_GRAYDARK 27 -#define P_COLOR1 4 -#define P_COLOR16 19 -#define P_YELLOW 32 -#define P_RED 33 -*/ - -#endif /* _EXT_COLORS_H_ */ diff --git a/source/c74support/max-includes/ext_common.h b/source/c74support/max-includes/ext_common.h deleted file mode 100755 index d1310926..00000000 --- a/source/c74support/max-includes/ext_common.h +++ /dev/null @@ -1,108 +0,0 @@ -/* common.h -- those things we define often */ -#ifndef _EXT_COMMON_H_ -#define _EXT_COMMON_H_ - -#include "ext_infer_system.h" - -#ifdef WIN_VERSION -#define C74_EXPORT __declspec(dllexport) -#define C74_HIDDEN -#define C74_MUST_CHECK -#else // MAC_VERSION - -#define C74_EXPORT __attribute__((visibility("default"))) -#define C74_HIDDEN __attribute__((visibility("hidden"))) - -/** If the result of a function is unused, force a compiler warning about it. */ -#define C74_MUST_CHECK __attribute__((warn_unused_result)) - -#endif - - -#if C74_NO_CONST -#define C74_CONST -#else -#define C74_CONST const -#endif - -#ifdef C74_NO_DEPRECATION -#define C74_DEPRECATED(func) func -#endif - -#ifndef C74_DEPRECATED -#ifdef __GNUC__ -#define C74_DEPRECATED(func) func __attribute__ ((deprecated)) -#elif defined(_MSC_VER) -#define C74_DEPRECATED(func) __declspec(deprecated) func -#else -#define C74_DEPRECATED(func) func -#endif -#endif // C74_DEPRECATED - - -/** - If a value is within the specified range, then return true. Otherwise return false. - - @ingroup misc - @param v The value to test. - @param lo The low bound for the range. - @param hi The high bound for the range. - @return Returns true if within range, otherwise false. -*/ -#define INRANGE(v,lo,hi) ((v)<=(hi)&&(v)>=(lo)) - - -/** - Return the higher of two values. - - @ingroup misc - @param a The first value to compare. - @param b The second value to compare. - @return Returns the higher of a or b. -*/ -#ifndef MAX -#define MAX(a,b) ((a)>(b)?(a):(b)) -#endif - - -/** - Return the lower of two values. - - @ingroup misc - @param a The first value to compare. - @param b The second value to compare. - @return Returns the lower of a or b. -*/ -#ifndef MIN -#define MIN(a,b) ((a)<(b)?(a):(b)) -#endif - - -/** - Limit values to within a specified range. - - @ingroup misc - @param a The value to constrain. NB: CLIP_ASSIGN modifies param 'a' but CLAMP only returns limited value - @param lo The low bound for the range. - @param hi The high bound for the range. - @return Returns the value a constrained to the range specified by lo and hi. -*/ -#define CLAMP(a, lo, hi) ( (a)>(lo)?( (a)<(hi)?(a):(hi) ):(lo) ) -#define CLIP_ASSIGN(a, lo, hi) ((a) = ( (a)>(lo)?( (a)<(hi)?(a):(hi) ):(lo) )) - -#ifndef ABS -#define ABS(x) ((x)<0?-(x):(x)) -#endif - -#if defined(MAC_VERSION) || defined(LINUX_VERSION) -#define strcmp_case_insensitive strcasecmp -#endif -#ifdef WIN_VERSION -#if _MSC_VER < 1400 -#define strcmp_case_insensitive strcmpi -#else -#define strcmp_case_insensitive _strcmpi -#endif -#endif - -#endif /* _EXT_COMMON_H_ */ diff --git a/source/c74support/max-includes/ext_critical.h b/source/c74support/max-includes/ext_critical.h deleted file mode 100644 index 52680e72..00000000 --- a/source/c74support/max-includes/ext_critical.h +++ /dev/null @@ -1,103 +0,0 @@ -// critical.h -- platform-independent way to define critical regions - -#ifndef _EXT_CRITICAL_H_ -#define _EXT_CRITICAL_H_ - -#include "ext_prefix.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#ifdef WIN_VERSION - -typedef LPCRITICAL_SECTION t_critical; ///< a critical region @ingroup critical - -#endif // WIN_VERSION - - -#if defined(MAC_VERSION) || defined(LINUX_VERSION) - -#include - -typedef pthread_mutex_t* t_critical; ///< a critical region @ingroup critical - -#endif // WIN_VERSION - - - - - -/** - Create a new critical region. - Normally, you do not need to create your own critical region, because - you can use Max’s global critical region. Only use this function (in - your object’s instance creation method) if you are certain you are not - able to use the global critical region. - - @ingroup critical - @param x A #t_critical struct will be returned to you via this pointer. -*/ -void critical_new(t_critical *x); - - -/** - Enter a critical region. - Typically you will want the argument to be zero to enter the global - critical region, although you could pass your own critical created with - critical_new(). It is important to try to keep the amount of code in - the critical region to a minimum. - Exit the critical region with critical_exit(). - - @ingroup critical - @param x A pointer to a #t_critical struct, or zero to uses Max’s global critical region. - @see critical_exit() -*/ -void critical_enter(t_critical x); - - -/** - Leave a critical region. - Typically you will want the argument to be zero to exit the global - critical region, although, you if you are using your own critical regions - you will want to pass the same one that you previously passed to - critical_enter(). - - @ingroup critical - @param x A pointer to a #t_critical struct, or zero to uses Max’s global critical region. -*/ -void critical_exit(t_critical x); - - -/** - Free a critical region created with critical_new(). - If you created your own critical region, you will need to free it in your object’s free method. - - @ingroup critical - @param x The #t_critical struct that will be freed. -*/ -void critical_free(t_critical x); - - -/** Try to enter a critical region if it is not locked. - @ingroup critical - @param x A pointer to a #t_critical struct, or zero to uses Max’s global critical region. - @return returns non-zero if there was a problem entering - @see critical_enter() -*/ -short critical_tryenter(t_critical x); - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_CRITICAL_H_ diff --git a/source/c74support/max-includes/ext_database.h b/source/c74support/max-includes/ext_database.h deleted file mode 100755 index 5a8fea8e..00000000 --- a/source/c74support/max-includes/ext_database.h +++ /dev/null @@ -1,336 +0,0 @@ -/* - ext_database.h - Copyright 2008 - Cycling '74 - Timothy Place, tim@cycling74.com -*/ - -#ifndef _EXT_DATABASE_H_ -#define _EXT_DATABASE_H_ - -#if !defined( DEBUG ) && !defined ( NDEBUG ) && !defined (_MAX_CORE_H_) -#include "ext.h" -#include "ext_obex.h" -#endif - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "stdarg.h" - -/** A database object. - Use db_open() and db_close() to create and free database objects. - @ingroup database */ -typedef t_object t_database; - - -/** A database result object. - This is what the database object returns when a query is executed. - @ingroup database */ -typedef t_object t_db_result; - - -/** A database view object. - A database view wraps a query and a result for a given database, and is always updated and in-sync with the database. - @ingroup database */ -typedef t_object t_db_view; - - -BEGIN_USING_C_LINKAGE - - -/** Create an instance of a database. - @ingroup database - @param dbname The name of the database. - @param fullpath If a database with this dbname is not already open, - this will specify a full path to the location where the database is stored on disk. - If NULL is passed for this argument, the database will reside in memory only. - The path should be formatted as a Max style path. - @param db The address of a #t_database pointer that will be set to point to the new database instance. - If the pointer is not NULL, then it will be treated as a pre-existing database instance - and thus will be freed. - @return An error code. */ -t_max_err db_open(t_symbol *dbname, const char *fullpath, t_database **db); - -typedef enum _db_open_flags { - DB_OPEN_FLAGS_NONE = 0, - DB_OPEN_FLAGS_READONLY = 0x01 -} t_db_open_flags; - -/** Create an instance of a database. - @ingroup database - @param dbname The name of the database. - @param fullpath If a database with this dbname is not already open, - this will specify a full path to the location where the database is stored on disk. - If NULL is passed for this argument, the database will reside in memory only. - The path should be formatted as a Max style path. - @param db The address of a #t_database pointer that will be set to point to the new database instance. - If the pointer is not NULL, then it will be treated as a pre-existing database instance - and thus will be freed. - @param flags Any flags to be passed to the database backend while opening the db. At this time, - DB_OPEN_FLAGS_READONLY (0x01) is the only flag available. - @return An error code. */ -t_max_err db_open_ext(t_symbol *dbname, const char *fullpath, t_database **db, long flags); - - -/** Close an open database. - @ingroup database - @param db The address of the #t_database pointer for your database instance. - The pointer will be freed and set NULL upon return. - @return An error code. */ -t_max_err db_close(t_database **db); - - -/** Execute a SQL query on the database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param dbresult The address of a #t_db_result pointer. - If the pointer is passed-in set to NULL then a new dbresult will be created. - If the pointer is not NULL then it is assumed to be a valid dbresult, which will be filled in with the query results. - When you are done with the dbresult you should free it with object_free(). - @param sql A C-string containing a valid SQL query, possibly with sprintf() formatting codes. - @param ... If an sprintf() formatting codes are used in the sql string, these values will be interpolated into the sql string. - @return An error code. */ -t_max_err db_query(t_database *db, t_db_result **dbresult, const char *sql, ...); - - -/** Execute a SQL query on the database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param dbresult The address of a #t_db_result pointer. - If the pointer is passed-in set to NULL then a new dbresult will be created. - If the pointer is not NULL then it is assumed to be a valid dbresult, which will be filled in with the query results. - When you are done with the dbresult you should free it with object_free(). - @param sql A C-string containing a valid SQL query, possibly with sprintf() formatting codes. - @param ap va_list containing any additional arguments necessary for sprintf()-format processing of the sql string. - @return An error code. */ -t_max_err db_vquery(t_database *db, t_db_result **dbresult, const char *s, va_list ap); - - -/** Execute a SQL query on the database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param dbresult The address of a #t_db_result pointer. - If the pointer is passed-in set to NULL then a new dbresult will be created. - If the pointer is not NULL then it is assumed to be a valid dbresult, which will be filled in with the query results. - When you are done with the dbresult you should free it with object_free(). - @param sql A C-string containing a valid SQL query. - @return An error code. */ -t_max_err db_query_direct(t_database *db, t_db_result **dbresult, const char *sql); - - -/** Execute a SQL query on the database, temporarily overriding the database's error logging attribute. - @ingroup database - @param db The #t_database pointer for your database instance. - @param dbresult The address of a #t_db_result pointer. - If the pointer is passed-in set to NULL then a new dbresult will be created. - If the pointer is not NULL then it is assumed to be a valid dbresult, which will be filled in with the query results. - When you are done with the dbresult you should free it with object_free(). - @param sql A C-string containing a valid SQL query, possibly with sprintf() formatting codes. - @param ... If an sprintf() formatting codes are used in the sql string, these values will be interpolated into the sql string. - @return An error code. */ -t_max_err db_query_silent(t_database *db, t_db_result **dbresult, const char *sql, ...); - - -/** Determine the id (key) number for the most recent INSERT query executed on the database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param id The address of a variable to hold the result on return. - @return An error code. */ -t_max_err db_query_getlastinsertid(t_database *db, long *id); - - -/** Create a new table in a database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param tablename The name to use for the new table. - The new table will be created with one column, which holds the primary key for the table, - and is named according the form {tablename}_id. - @return An error code. */ -t_max_err db_query_table_new(t_database *db, const char *tablename); - - -/** Add a new column to an existing table in a database. - @ingroup database - @param db The #t_database pointer for your database instance. - @param tablename The name of the table to which the column should be added. - @param columnname The name to use for the new column. - @param columntype The SQL type for the data that will be stored in the column. - For example: "INTEGER" or "VARCHAR" - @param flags If you wish to specify any additional information for the column, then pass that here. - Otherwise pass NULL. - @return An error code. */ -t_max_err db_query_table_addcolumn(t_database *db, const char *tablename, const char *columnname, const char *columntype, const char *flags); - - -/** Begin a database transaction. - When you are working with a file-based database, then the database will not be flushed to disk until db_transacation_end() is called. - This means that you can _much_ more efficiently execute a sequence of queries in one transaction rather than independently. - - That database object reference counts transactions, so it is possible nest calls to db_transacation_start() and db_transacation_end(). - It is important to balance all calls with db_transacation_end() or the database contents will never be flushed to disk. - - @ingroup database - @param db The #t_database pointer for your database instance. - @return An error code. */ -t_max_err db_transaction_start(t_database *db); - - -/** Finalize a database transaction. - @ingroup database - @param db The #t_database pointer for your database instance. - @return An error code. */ -t_max_err db_transaction_end(t_database *db); - - -/** Force any open transactions to close. - @ingroup database - @param db The #t_database pointer for your database instance. - @return An error code. */ -t_max_err db_transaction_flush(t_database *db); - - -// DB VIEWS - -/** A database view is a way of looking at a particular set of records in the database. - This particular set of records is defined with a standard SQL query, - and the view maintains a copy of the results of the query internally. - Any time the database is modified the internal result set is updated, - and any objects listening to the view are notified via object_notify(). - - @ingroup database - @param db The #t_database pointer for your database instance. - @param sql A SQL query that defines the set of results provided by the view. - @param dbview The address of a NULL #t_db_view pointer which will be set with the new view upon return. - @return An error code. */ -t_max_err db_view_create(t_database *db, const char *sql, t_db_view **dbview); - - -/** Remove a database view created using db_view_create(). - @ingroup database - @param db The #t_database pointer for your database instance for which this view was created. - @param dbview The address of the #t_db_view pointer for the view. - This pointer will be freed and set NULL upon return. - @return An error code. */ -t_max_err db_view_remove(t_database *db, t_db_view **dbview); - - -/** Fetch the pointer for a #t_db_view's query result. - @ingroup database - @param dbview The #t_db_view pointer for your database view instance. - @param result The address of a pointer to a #t_db_result object. - This pointer will be overwritten with the view's result pointer upon return. - @return An error code. */ -t_max_err db_view_getresult(t_db_view *dbview, t_db_result **result); - - -/** Set the query used by the view. - @ingroup database - @param dbview The #t_db_view pointer for your database view instance. - @param newquery The SQL string to define a new query for the view, replacing the old query. - @return An error code. */ -t_max_err db_view_setquery(t_db_view *dbview, char *newquery); - - -// DB RESULTS - -/** Return the next record from a set of results that you are walking. - When you are returned a result from a query of the database, - the result is prepared for walking the results from the beginning. - You can also reset the result manually to the beginning of the record list - by calling db_result_reset(). - - @ingroup database - @param result The #t_db_result pointer for your query results. - @return An array of C-Strings with the values for every requested column (field) of a database record. - To find out how many columns are represented in the array, use db_result_numfields(). */ -char** db_result_nextrecord(t_db_result *result); - - -/** Reset the interface for walking a result's record list to the first record. - @ingroup database - @param result The #t_db_result pointer for your query results. */ -void db_result_reset(t_db_result *result); - - -/** Zero-out a database result. - @ingroup database - @param result The #t_db_result pointer for your query results. */ -void db_result_clear(t_db_result *result); - - -/** Return a count of all records in the query result. - @ingroup database - @param result The #t_db_result pointer for your query results. - @return The count of records in the query result. */ -long db_result_numrecords(t_db_result *result); - - -/** Return a count of all fields (columns) in the query result. - @ingroup database - @param result The #t_db_result pointer for your query results. - @return The count of fields in the query result. */ -long db_result_numfields(t_db_result *result); - - -/** Return the name of a field specified by its index number. - @ingroup database - @param result The #t_db_result pointer for your query results. - @param fieldindex The zero-based index number of the field (column) in the result. - @return A C-String with the name of the field. */ -char* db_result_fieldname(t_db_result *result, long fieldindex); - - -/** Return a single value from a result according to its index and field coordinates. - @ingroup database - @param result The #t_db_result pointer for your query results. - @param recordindex The zero-based index number of the record (row) in the result. - @param fieldindex The zero-based index number of the field (column) in the result. - @return A C-String with the content of the specified cell in the result. */ -char* db_result_string(t_db_result *result, long recordindex, long fieldindex); - -/** Return a single value from a result according to its index and field coordinates. - @ingroup database - @param result The #t_db_result pointer for your query results. - @param recordindex The zero-based index number of the record (row) in the result. - @param fieldindex The zero-based index number of the field (column) in the result. - @return The content of the specified cell from the result scanned out to a long int. */ -long db_result_long(t_db_result *result, long recordindex, long fieldindex); - -/** Return a single value from a result according to its index and field coordinates. - @ingroup database - @param result The #t_db_result pointer for your query results. - @param recordindex The zero-based index number of the record (row) in the result. - @param fieldindex The zero-based index number of the field (column) in the result. - @return The content of the specified cell from the result scanned out to a float. */ -float db_result_float(t_db_result *result, long recordindex, long fieldindex); - -/** Return a single value from a result according to its index and field coordinates. - The value will be coerced from an expected datetime field into seconds. - @ingroup database - @param result The #t_db_result pointer for your query results. - @param recordindex The zero-based index number of the record (row) in the result. - @param fieldindex The zero-based index number of the field (column) in the result. - @return The datetime represented in seconds. */ -t_ptr_uint db_result_datetimeinseconds(t_db_result *result, long recordindex, long fieldindex); - - -// UTILITIES - -/** A utility to convert from a sql datetime string into seconds. - @ingroup database - @param string A C-string containing a date and time in SQL format. - @param date The datetime represented in seconds upon return. */ -void db_util_stringtodate(const char *string, t_ptr_uint *date); - - -/** A utility to convert from seconds into a sql-ready datetime string. - @ingroup database - @param date The datetime represented in seconds. - @param string The address of a valid C-string - whose contents will be set to a SQL-ready string format upon return. */ -void db_util_datetostring(const t_ptr_uint date, char *string); - - -END_USING_C_LINKAGE - - -#endif // _EXT_DATABASE_H_ diff --git a/source/c74support/max-includes/ext_default.h b/source/c74support/max-includes/ext_default.h deleted file mode 100644 index 783cc4a6..00000000 --- a/source/c74support/max-includes/ext_default.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef __EXT_DEFAULT_H__ -#define __EXT_DEFAULT_H__ - -#define DEFAULT_GLOBAL (void *)-1L // this will be changed to NULL once hashtab supports it - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -t_max_err patcher_setdefault(t_object *patcher, t_symbol *key, long argc, t_atom *argv); -t_max_err patcher_getdefault(t_object *patcher, t_symbol *key, long *argc, t_atom *argv); -t_max_err patcher_removedefault(t_object *patcher, t_symbol *key); - -END_USING_C_LINKAGE - -#endif // __EXT_DEFAULT_H__ diff --git a/source/c74support/max-includes/ext_dictionary.h b/source/c74support/max-includes/ext_dictionary.h deleted file mode 100644 index 79122fe9..00000000 --- a/source/c74support/max-includes/ext_dictionary.h +++ /dev/null @@ -1,876 +0,0 @@ -// ext_dictionary.h -- copyright 2012 Cycling '74 -- All rights reserved - -#ifndef __EXT_DICTIONARY_H__ -#define __EXT_DICTIONARY_H__ - -#include "ext_prefix.h" - -#include "max_types.h" -#include "ext_hashtab.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** A dictionary entry. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup dictionary - @see t_dictionary -*/ -typedef struct _dictionary_entry { - t_object e_obj; - t_symbol *e_key; // redundant with hashtab, but allows getting key during linklist traversal - t_atom e_value; - long e_flags; -} t_dictionary_entry; - - -/** The dictionary object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup dictionary - @see t_dictionary -*/ -typedef struct _dictionary -{ - t_object d_obj; - t_hashtab *d_hashtab; - t_linklist *d_linklist; - void *d_transaction_mutex; // currently having header inclusion issues this is a t_systhread_mutex - char d_use_transaction; // always lock transaction mutex with low level dictionary calls -} t_dictionary; - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - - -/** - Create a new dictionary object. - You can free the dictionary by calling object_free(). - However, you should keep in mind the guidelines provided in @ref when_to_free_a_dictionary. - - @ingroup dictionary - @return Pointer to the new dictionary object. - - @see object_free() -*/ -t_dictionary* dictionary_new(void); - -/** - Add a long integer value to the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendlong(t_dictionary *d, t_symbol *key, t_atom_long value); - - -/** - Add a double-precision float value to the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendfloat(t_dictionary *d, t_symbol *key, double value); - - -/** - Add a #t_symbol* value to the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendsym(t_dictionary *d, t_symbol *key, t_symbol *value); - - -/** - Add a #t_atom* value to the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendatom(t_dictionary *d, t_symbol *key, t_atom *value); - - -// private -t_max_err dictionary_appendattribute(t_dictionary *d, t_symbol *key, t_symbol *attrname, t_object *obj); - - -/** - Add a C-string to the dictionary. Internally this uses the #t_string object. - It is useful to use the #t_string in dictionaries rather than the #t_symbol - to avoid bloating Max's symbol table unnecessarily. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendstring(t_dictionary *d, t_symbol *key, const char *value); - - -/** - Add an array of atoms to the dictionary. - Internally these atoms will be copied into a #t_atomarray object, which will be appended to the dictionary - with the given key. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param argc The number of atoms to append to the dictionary. - @param argv The address of the first atom in the array to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendatoms(t_dictionary *d, t_symbol *key, long argc, t_atom *argv); - -// internal use only -t_max_err dictionary_appendatoms_flags(t_dictionary *d, t_symbol *key, long argc, t_atom *argv, long flags); - - -/** - Add an @ref atomarray object to the dictionary. - Note that from this point on that you should not free the #t_atomarray*, because the atomarray is now owned by - the dictionary, and freeing the dictionary will free the atomarray as discussed in @ref when_to_free_a_dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendatomarray(t_dictionary *d, t_symbol *key, t_object *value); - - -/** - Add a dictionary object to the dictionary. - Note that from this point on that you should not free the #t_dictionary* that is being added, - because the newly-added dictionary is now owned by the dictionary to which it has been added, - as discussed in @ref when_to_free_a_dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appenddictionary(t_dictionary *d, t_symbol *key, t_object *value); - - -/** - Add an object to the dictionary. - Note that from this point on that you should not free the #t_object* that is being added, - because the newly-added object is now owned by the dictionary to which it has been added, - as discussed in @ref when_to_free_a_dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The name of the key used to index the new value. - All keys must be unique. If the key name already exists, - then the existing value associated with the key will be freed prior to the new value's assignment. - @param value The new value to append to the dictionary. - @return A Max error code. -*/ -t_max_err dictionary_appendobject(t_dictionary *d, t_symbol *key, t_object *value); - - -t_max_err dictionary_appendobject_flags(t_dictionary *d, t_symbol *key, t_object *value, long flags); - - -t_max_err dictionary_appendbinbuf(t_dictionary *d, t_symbol *key, void *value); - - -/** - Retrieve a long integer from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getlong(C74_CONST t_dictionary *d, t_symbol *key, t_atom_long *value); - - -/** - Retrieve a double-precision float from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getfloat(C74_CONST t_dictionary *d, t_symbol *key, double *value); - - -/** - Retrieve a #t_symbol* from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getsym(C74_CONST t_dictionary *d, t_symbol *key, t_symbol **value); - - -/** - Copy a #t_atom from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getatom(C74_CONST t_dictionary *d, t_symbol *key, t_atom *value); - - -// private -t_max_err dictionary_getattribute(const t_dictionary *d, t_symbol *key, t_symbol *attrname, t_object *obj); - - -/** - Retrieve a C-string pointer from the dictionary. - The retrieved pointer references the string in the dictionary, it is not a copy. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getstring(C74_CONST t_dictionary *d, t_symbol *key, const char **value); - - -/** - Retrieve the address of a #t_atom array of in the dictionary. - The retrieved pointer references the t_atoms in the dictionary. - To fetch a copy of the t_atoms from the dictionary, use dictionary_copyatoms(). - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param argc The address of a variable to hold the number of atoms in the array. - @param argv The address of a variable to hold a pointer to the first atom in the array. - @return A Max error code. - - @see dictionary_copyatoms() - @see dictionary_getatoms_ext() -*/ -t_max_err dictionary_getatoms(C74_CONST t_dictionary *d, t_symbol *key, long *argc, t_atom **argv); - -/** - Retrieve the address of a #t_atom array in the dictionary. - The retrieved pointer references the t_atoms in the dictionary. - Optionally convert strings to symbols. - To fetch a copy of the t_atoms from the dictionary, use dictionary_copyatoms(). - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param stringstosymbols The flag to convert strings to symbols (true,false). - @param argc The address of a variable to hold the number of atoms in the array. - @param argv The address of a variable to hold a pointer to the first atom in the array. - @return A Max error code. - - @see dictionary_copyatoms() - @see dictionary_getatoms() -*/ -t_max_err dictionary_getatoms_ext(const t_dictionary *d, t_symbol *key, long stringstosymbols, long *argc, t_atom **argv); - -/** - Retrieve copies of a #t_atom array in the dictionary. - The retrieved pointer of t_atoms in the dictionary has memory allocated and copied to it from within the function. - You are responsible for freeing it with sysmem_freeptr(). - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param argc The address of a variable to hold the number of atoms in the array. - @param argv The address of a variable to hold a pointer to the first atom in the array. - You should initialize this pointer to NULL prior to passing it to dictionary_copyatoms(). - @return A Max error code. - - @see dictionary_getatoms() -*/ -t_max_err dictionary_copyatoms(C74_CONST t_dictionary *d, t_symbol *key, long *argc, t_atom **argv); - - -/** - Retrieve a #t_atomarray pointer from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getatomarray(C74_CONST t_dictionary *d, t_symbol *key, t_object **value); - - -/** - Retrieve a #t_dictionary pointer from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getdictionary(C74_CONST t_dictionary *d, t_symbol *key, t_object **value); - -/** - Retrieve the address of a #t_atom array of in the dictionary within nested dictionaries. - The address can index into nested dictionaries using the '::' operator. For example, - the key "field::subfield" will look for the value at key "field" and then look for the - value "subfield" in the value found at "field". - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param ac The number of return values - @param av The return values - @param errstr An error message if an error code was returned. Optional, pass NULL if you don't want it. - @return A Max error code. -*/ -t_max_err dictionary_get_ex(t_dictionary *d, t_symbol *key, long *ac, t_atom **av, char *errstr); - - -/** - Retrieve a #t_object pointer from the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to lookup. - @param value The address of variable to hold the value associated with the key. - @return A Max error code. -*/ -t_max_err dictionary_getobject(C74_CONST t_dictionary *d, t_symbol *key, t_object **value); - - -/** - Test a key to set if the data stored with that key contains a #t_string object. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to test. - @return Returns true if the key contains a #t_string, otherwise returns false. -*/ -long dictionary_entryisstring(C74_CONST t_dictionary *d, t_symbol *key); - - -/** - Test a key to set if the data stored with that key contains a #t_atomarray object. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to test. - @return Returns true if the key contains a #t_atomarray, otherwise returns false. -*/ -long dictionary_entryisatomarray(C74_CONST t_dictionary *d, t_symbol *key); - - -/** - Test a key to set if the data stored with that key contains a #t_dictionary object. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to test. - @return Returns true if the key contains a #t_dictionary, otherwise returns false. -*/ -long dictionary_entryisdictionary(C74_CONST t_dictionary *d, t_symbol *key); - - -/** - Test a key to set if it exists in the dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @param key The key associated with the value to test. - @return Returns true if the key exists, otherwise returns false. -*/ -long dictionary_hasentry(C74_CONST t_dictionary *d, t_symbol *key); - - -/** - Return the number of keys in a dictionary. - - @ingroup dictionary - @param d The dictionary instance. - @return The number of keys in the dictionary. -*/ -t_atom_long dictionary_getentrycount(C74_CONST t_dictionary *d); - - -/** - Retrieve all of the key names stored in a dictionary. - - The numkeys and keys parameters should be initialized to zero. - The dictionary_getkeys() method will allocate memory for the keys it returns. - You are then responsible for freeing this memory using dictionary_freekeys(). - You must use dictionary_freekeys(), not some other method for freeing the memory. - - @ingroup dictionary - @param d The dictionary instance. - @param numkeys The address of a long where the number of keys retrieved will be set. - @param keys The address of the first of an array #t_symbol pointers where the retrieved keys will be set. - @return A max error code. - - @remark The following example demonstrates fetching all of the keys from a dictionary named 'd' - in order to iterate through each item stored in the dictionary. - @code - t_symbol **keys = NULL; - long numkeys = 0; - long i; - t_object *anItem; - - dictionary_getkeys(d, &numkeys, &keys); - for(i=0; icopy of that dictionary - When you are done, do not call dictobj_release() on the dictionary, - because you are working on a copy rather than on a retained pointer. - - @ingroup dictobj - @param name The name associated with the dictionary for which you wish to obtain a copy. - @return The dictionary cloned from the existing dictionary. - Returns NULL if no dictionary is associated with name. - @see #dictobj_findregistered_retain() -**/ -t_dictionary *dictobj_findregistered_clone(t_symbol *name); - - -/** Find the #t_dictionary for a given name, return a pointer to that #t_dictionary, and increment its reference count. - When you are done you should call dictobj_release() on the dictionary. - - @ingroup dictobj - @param name The name associated with the dictionary for which you wish to obtain a pointer. - @return A pointer to the dictionary associated with name. - Returns NULL if no dictionary is associated with name. - @see #dictobj_release() - @see #dictobj_findregistered_clone() -**/ -t_dictionary *dictobj_findregistered_retain(t_symbol *name); - - -/** For a #t_dictionary/name that was previously retained with dictobj_findregistered_retain(), - release it (decrement its reference count). - - @ingroup dictobj - @param d A valid dictionary object retained by dictobj_findregistered_retain(). - @return A Max error code. - @see #dictobj_findregistered_retain() -**/ -t_max_err dictobj_release(t_dictionary *d); - - -/** Find the name associated with a given #t_dictionary. - - @ingroup dictobj - @param d A dictionary, whose name you wish to determine. - @return The symbol associated with the dictionary, or NULL if the dictionary is not registered. - @see #dictobj_register() -**/ -t_symbol *dictobj_namefromptr(t_dictionary *d); - - -/** Send atoms to an outlet in your Max object, handling complex datatypes that may be present in those atoms. - This is particularly when sending the contents of a dictionary entry out of an outlet as in the following example code. - - @code - long ac = 0; - t_atom *av = NULL; - t_max_err err; - - err = dictionary_copyatoms(d, key, &ac, &av); - if (!err && ac && av) { - // handles singles, lists, symbols, atomarrays, dictionaries, etc. - dictobj_outlet_atoms(x->outlets[i],ac,av); - } - - if (av) - sysmem_freeptr(av); - @endcode - - @ingroup dictobj - @param out The outlet through which the atoms should be sent. - @param argc The count of atoms in argv. - @param argv Pointer to the first of an array of atoms to send to the outlet. -**/ -void dictobj_outlet_atoms(void *out, long argc, t_atom *argv); - - -/** Ensure that an atom is safe for passing. - Atoms are allowed to be #A_LONG, #A_FLOAT, or #A_SYM, but not #A_OBJ. - If the atom is an #A_OBJ, it will be converted into something that will be safe to pass. - - @ingroup dictobj - @param a An atom to check, and potentially modify, to ensure safety in the dictionary-passing system. - @return If the atom was changed then 1 is returned. Otherwise 0 is returned. -**/ -long dictobj_atom_safety(t_atom *a); - - -enum { - DICTOBJ_ATOM_FLAGS_DEFAULT = 0, ///< default - DICTOBJ_ATOM_FLAGS_REGISTER ///< dictionary atoms should be registered/retained -}; - - -/** Ensure that an atom is safe for passing. - Atoms are allowed to be #A_LONG, #A_FLOAT, or #A_SYM, but not #A_OBJ. - If the atom is an #A_OBJ, it will be converted into something that will be safe to pass. - - @ingroup dictobj - @param a An atom to check, and potentially modify, to ensure safety in the dictionary-passing system. - @param flags Pass DICTOBJ_ATOM_FLAGS_REGISTER to have dictionary atoms registered/retained. - @return If the atom was changed then 1 is returned. Otherwise 0 is returned. - **/ -long dictobj_atom_safety_flags(t_atom *a, long flags); - - -void dictobj_atom_release(t_atom *a); - - -/** Validate the contents of a #t_dictionary against a second #t_dictionary containing a schema. - - The schema dictionary contains keys and values, like any dictionary. - dictobj_validate() checks to make sure that all keys in the schema dictionary are present in the candidate dictionary. - If the keys are all present then the candidate passes and the function returns true. - Otherwise the the candidate fails the validation and the function returns false. - - Generally speaking, the schema dictionary with contain values with the symbol "*", indicating a wildcard, - and thus only the key is used to validate the dictionary (all values match the wildcard). - However, if the schema dictionary contains non-wildcard values for any of its keys, those keys in the - candidate dictionary must also contain matching values in order for the candidate to successfully validate. - - An example of this in action is the dict.route object in Max, which simply wraps this function. - - @ingroup dictobj - @param schema The dictionary against which to validate candidate. - @param candidate A dictionary to test against the schema. - @return Returns true if the candidate validates against the schema, otherwise returns false. - @see #dictobj_dictionarytoatoms() -**/ -long dictobj_validate(const t_dictionary *schema, const t_dictionary *candidate); - - -/** Convert a C-string of @ref using_dictobj_syntax into a C-string of JSON. - - @ingroup dictobj - @param jsonsize The address of a variable to be filled-in with the number of chars in json upon return. - @param json The address of a char pointer to point to the JSON C-string upon return. - Should be initialized to NULL. - You are responsible for freeing the string with sysmem_freeptr() when you are done with it. - @param str A NULL-terminated C-string containing @ref using_dictobj_syntax . - @return A Max error code. - @see #dictobj_dictionarytoatoms() -**/ -t_max_err dictobj_jsonfromstring(long *jsonsize, char **json, const char *str); - - -/** Create a new #t_dictionary from @ref using_dictobj_syntax which is passed in as a C-string. - - @ingroup dictobj - @param d The address of a dictionary variable, which will hold a pointer to - the new dictionary upon return. Should be initialized to NULL. - @param str A NULL-terminated C-string containing @ref using_dictobj_syntax . - @param str_is_already_json - @param errorstring - @return A Max error code. - @see #dictobj_dictionarytoatoms() -**/ -t_max_err dictobj_dictionaryfromstring(t_dictionary **d, const char *str, int str_is_already_json, char *errorstring); - - -/** Create a new #t_dictionary from @ref using_dictobj_syntax which is passed in as an array of atoms. - Unlike many #t_dictionary calls to create dictionaries, this function does not take over ownership of the atoms you pass in. - - @ingroup dictobj - @param d The address of a dictionary variable, which will hold a pointer to - the new dictionary upon return. Should be initialized to NULL. - @param argc The number of atoms in argv. - @param argv Pointer to the first of an array of atoms to be interpreted as - @ref using_dictobj_syntax . - @return A Max error code. - @see #dictobj_dictionaryfromatoms_extended() #dictobj_dictionarytoatoms() -**/ -t_max_err dictobj_dictionaryfromatoms(t_dictionary **d, const long argc, const t_atom *argv); - - -/** Create a new #t_dictionary from from an array of atoms that use Max dictionary syntax, JSON, or compressed JSON. - This function is the C analog to the dict.deserialize object in Max. - Unlike many #t_dictionary calls to create dictionaries, this function does not take over ownership of the atoms you pass in. - - @ingroup dictobj - @param d The address of a dictionary variable, which will hold a pointer to - the new dictionary upon return. Should be initialized to NULL. - @param msg Ignored. - @param argc The number of atoms in argv. - @param argv Pointer to the first of an array of atoms to be interpreted as @ref using_dictobj_syntax , JSON, or compressed JSON. - @return A Max error code. - @see #dictobj_dictionaryfromatoms() #dictobj_dictionaryfromstring() - **/ -t_max_err dictobj_dictionaryfromatoms_extended(t_dictionary **d, const t_symbol *msg, long argc, const t_atom *argv); - - -/** Serialize the contents of a #t_dictionary into @ref using_dictobj_syntax . - - @ingroup dictobj - @param d The dictionary to serialize. - @param argc The address of a variable to hold the number of atoms allocated upon return. - @param argv The address of a t_atom pointer which will point to the first atom - (of an array of argc atoms) upon return. You are responsible for freeing the pointer - returned with sysmem_freeptr() when you are done with it. If you pass in existing memory, - it must be memory allocated using sysmem_newptr() and the pointer may be resized. - - @return A Max error code. - @see #dictobj_dictionaryfromatoms() -**/ -t_max_err dictobj_dictionarytoatoms(const t_dictionary *d, long *argc, t_atom **argv); - - -/** Given a complex key (one that includes potential heirarchy or array-member access), - return the actual key and the dictionary in which the key should be referenced. - - @ingroup dictobj - @param x Your calling object. If there is an error this will be used by the internal call to object_error(). - @param d The dictionary you are querying. - @param akey The complex key specifying the query. - @param create If true, create the intermediate dictionaries in the hierarchy specified in akey. - @param targetdict Returns the t_dictionary that for the (sub)dictionary specified by akey. - @param targetkey Returns the name of the key in targetdict that to which akey is referencing. - @param index Returns the index requested if array-member access is specified. Pass NULL if you are not interested in this. - - @return A Max error code. - */ -t_max_err dictobj_key_parse(t_object *x, t_dictionary *d, t_atom *akey, t_bool create, t_dictionary **targetdict, t_symbol **targetkey, t_int32 *index); - - - -END_USING_C_LINKAGE - - -#endif // __EXT_DICTOBJ_H__ diff --git a/source/c74support/max-includes/ext_drag.h b/source/c74support/max-includes/ext_drag.h deleted file mode 100644 index bd3b34c9..00000000 --- a/source/c74support/max-includes/ext_drag.h +++ /dev/null @@ -1,59 +0,0 @@ -// ext_drag.h copyright 2008 cycling '74 -// functions for handling drag-and-drop from the max file browser (but not from the mac finder) - -#ifndef __EXT_DRAG_H__ - -#define __EXT_DRAG_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -enum { - JDRAG_MATCHFLAGS_ANY = 1 // any item with this role is OK, default is that all must match -}; - -typedef struct _jdrag_inquiry -{ - t_symbol *i_role; // kind of file that works (one inquiry per file kind) - t_symbol *i_prepend; // corresponding message -} t_jdrag_inquiry; - -char *jdrag_getitemstring(t_object *dg, long index, long quote, long backslash); -t_object *jdrag_getobject(t_object *dg, long index); -void jdrag_getlocation(t_object *dg, long index, double *xpos, double *ypos); -t_object *jdrag_createobject(t_object *dg, t_object *pv, void *d, long dragobjectindex); -t_object *jdrag_createnewobj(t_object *dg, t_object *pv, char *classname, char *str, long dragobjectindex); -t_object *jdrag_createmessage(t_object *dg, t_object *pv, t_symbol *msg, long ac, t_atom *av, long dragobjectindex); -long jdrag_itemcount(t_object *dg); - -// dg the jdrag object -// rcv the jbox which will have a message called when the dragged thing is released -// msg the message name that will be sent to the box when the dragged thing is released -// desc a description to be displayed in a contextual menu for the drop action -// arg user data to be passed to the drag function (for example, the t_symbol* of the message to call in the case of jdrag_box_add()) -void jdrag_add(t_object *dg, t_object *rcv, t_symbol *msg, const char *desc, void *arg); - -// same as jdrag_add but msg will be sent to rcv for each file in the drag-n-drop -// when using jdrag_add() version caller must iterate directly using jdrag_itemcount, etc. -void jdrag_add_iterated(t_object *dg, t_object *rcv, t_symbol *msg, const char *desc, void *arg); - -void jdrag_process_drop(t_object *dx, t_object *receiver, void *ref, t_symbol *msg, void *src, double x, double y); - - -long jdrag_matchdragrole(t_object *dx, t_symbol *role, long flags); - - -void jdrag_setboxlocation(t_object *dg, t_object *box); - - -void jdrag_object_add(t_object *dg, t_object *obj, t_symbol *msg); - -// a wrapper around jbox_add() used by most ui objects; demonstrated in the pictmeter~ example project in the sdk -void jdrag_box_add(t_object *dg, t_object *box, t_symbol *msg); - - -END_USING_C_LINKAGE - -#endif // __EXT_DRAG_H__ diff --git a/source/c74support/max-includes/ext_dynamiccolor.h b/source/c74support/max-includes/ext_dynamiccolor.h deleted file mode 100644 index 6822a064..00000000 --- a/source/c74support/max-includes/ext_dynamiccolor.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// ext_dynamiccolor.h -// max4 -// -// Created by Jeremy Bernstein on 19.10.19. -// - -#ifndef ext_dynamiccolor_h -#define ext_dynamiccolor_h - -#include "jgraphics.h" - -BEGIN_USING_C_LINKAGE - -t_bool object_attr_dynamiccolor_supported(t_object *x, t_symbol *attrname); -t_bool object_attr_dynamiccolor_setsym_setup(t_object *x, t_symbol *attrname, long ac, t_atom *av); - -// Note: object_attr_dynamiccolor_apply needs to be called after setters to make the final color available in the base attribute -t_symbol *object_attr_dynamiccolor_getname(t_object *x, t_symbol *attrname); -t_max_err object_attr_dynamiccolor_setname(t_object *x, t_symbol *attrname, t_symbol *colorname); -t_bool object_attr_dynamiccolor_geton(t_object *x, t_symbol *attrname); -t_max_err object_attr_dynamiccolor_seton(t_object *x, t_symbol *attrname, t_bool on); -t_max_err object_attr_dynamiccolor_getregular(t_object *x, t_symbol *attrname, long *argc, t_atom **argv); -t_max_err object_attr_dynamiccolor_setregular(t_object *x, t_symbol *attrname, long argc, t_atom *argv); -t_jrgba object_attr_dynamiccolor_getregularrgba(t_object *x, t_symbol *attrname); -t_max_err object_attr_dynamiccolor_setregularrgba(t_object *x, t_symbol *attrname, t_jrgba *color); - -t_symbol *object_attr_dynamiccolor_gethumanname(t_object *x, t_symbol *attrname); - -t_jpopupmenu *dynamiccolor_getmenu(t_object *context, t_symbol *current, long mask, long *selecteditem, long *headercount, t_bool filtered); -void dynamiccolor_handlemenu(t_object *context, long itemindex, t_symbol **current, t_bool filtered); - -void object_attr_dynamiccolor_apply(t_object *x, t_symbol *attrname); - -typedef enum { - DYNAMICCOLOR_FLAGS_NONE = 0x0000, - DYNAMICCOLOR_FLAGS_LIVE = 0x0001 // should only be linked in a Live context -} t_dynamiccolor_flags; - -t_max_err class_attr_dynamiccolor_init(t_class *c, t_symbol *name, t_dynamiccolor_flags flags); - -// Adds an attr_attr to this attribute that is not saved to disk but only used to hold the default dynamic color name and to check if this attribute has dynamic color enabled. -#define CLASS_ATTR_DYNAMICCOLOR_FLAGS(c, name, flags, semflags, color_parsestring) \ - class_attr_addattr_parse(c, name, "dynamiccolor_default", gensym("symbol"), flags, color_parsestring); \ - class_attr_dynamiccolor_init(c, gensym(name), semflags); - -#define CLASS_ATTR_DYNAMICCOLOR(c, name, flags, color_parsestring) \ - CLASS_ATTR_DYNAMICCOLOR_FLAGS(c, name, flags, DYNAMICCOLOR_FLAGS_NONE, color_parsestring); - -END_USING_C_LINKAGE - -#endif /* ext_dynamiccolor_h */ - diff --git a/source/c74support/max-includes/ext_event.h b/source/c74support/max-includes/ext_event.h deleted file mode 100755 index 91618e5c..00000000 --- a/source/c74support/max-includes/ext_event.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_EVENT_H_ -#define _EXT_EVENT_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_EVENT_H_ */ diff --git a/source/c74support/max-includes/ext_expr.h b/source/c74support/max-includes/ext_expr.h deleted file mode 100755 index 56dd4e90..00000000 --- a/source/c74support/max-includes/ext_expr.h +++ /dev/null @@ -1,139 +0,0 @@ -/* ext_expr.h -- header file for writing expressions */ - -#ifndef _EXT_EXPR_H_ -#define _EXT_EXPR_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#define EXPR_MAX_VARS 9 - - /** Defines for ex_type. - We treat parenthesis and brackets special to keep a pointer to their match in the content. - @ingroup expr -*/ -typedef enum { - ET_INT = 0x1, ///< an int - ET_FLT = 0x2, ///< a float - ET_OP = 0x3, ///< operator - ET_STR = 0x4, ///< string - ET_TBL = 0x5, ///< a table, the content is a pointer - ET_FUNC = 0x6, ///< a function - ET_SYM = 0x7, ///< symbol ("string") - ET_VSYM = 0x8, ///< variable symbol ("$s?") - ET_LP = 0x9, ///< left parenthesis - ET_LB = 0x10, ///< left bracket - ET_II = 0x11, ///< and integer inlet - ET_FI = 0x12, ///< float inlet - ET_SI = 0x13 ///< string inlet -} e_max_expr_types; - -/** ex_ex. - @ingroup expr -*/ -typedef struct ex_ex { - union { - t_atom_long v_int; - double v_flt; - t_atom_long op; - char **ptr; - } ex_cont; ///< content - long ex_type; ///< type of the node -} t_ex_ex; - - -/** Struct for an instance of expr. - @ingroup expr -*/ -typedef struct expr { - t_object exp_ob; - void *exp_outlet; - t_ex_ex *exp_stack; - t_ex_ex exp_var[EXPR_MAX_VARS]; - t_ex_ex exp_res; ///< the result of last evaluation -} t_expr; - -/** Create a new expr object. - @ingroup expr - - @param argc Count of arguments in argv. - @param argv Arguments that are used to create the expr. See the example below for details. - @param types A pre-existing array of nine t_atoms, that will hold the - types of any variable arguments created in the expr. - The types are returned in the a_type field of each - #t_atom. If an argument was not present, #A_NOTHING is returned. - @return expr_new() creates an expr object from the arguments in argv and - returns the type of any expr-style arguments contained in argv (i.e. - $i1, etc.) in atoms in an array pointed to by types. - - @remark types should already exist as an array of nine t_atom values, all of which will be filled in by - expr_new(). If an argument was not present, it will set to type - #A_NOTHING. For example, suppose argv pointed to the following atoms: - @code - $i1 (A_SYM) - + (A_SYM) - $f3 (A_SYM) - + (A_SYM) - 3 (A_LONG) - @endcode - - After calling expr_new, types would contain the following: - @code - Index Argument Type Value - 0 1 ($i1) A_LONG 0 - 1 2 A_NOTHING 0 - 2 3 ($f3) A_FLOAT 0.0 - 3 4 A_NOTHING 0 - 4 5 A_NOTHING 0 - 5 6 A_NOTHING 0 - 6 7 A_NOTHING 0 - 7 8 A_NOTHING 0 - 8 9 A_NOTHING 0 - @endcode -*/ -void *expr_new(long argc, t_atom *argv, t_atom *types); - - -/** Evaluate an expression in an expr object. - @ingroup expr - - @param x The expr object to evaluate. - @param argc Count of arguments in argv. - @param argv Array of nine t_atom values that will be substituted for - variable arguments (such as $i1) in the expression. - Unused arguments should be of type #A_NOTHING. - @param result A pre-existing t_atom that will hold the type and value - of the result of evaluating the expression. - @return . - - @remark Evaluates the expression in an expr object with arguments in argv and - returns the type and value of the evaluated expression as a t_atom in - result. result need only point to a single #t_atom, but argv should - contain at least argc t_atom values. If, as in the example shown above under - expr_new(), there are “gaps†between arguments, they should be filled - in with t_atom of type #A_NOTHING. -*/ -short expr_eval(t_expr *x, long argc, t_atom *argv, t_atom *result); - - -void expr_install(method fun, const char *buf, long argc); - - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_EXPR_H_ diff --git a/source/c74support/max-includes/ext_fun.h b/source/c74support/max-includes/ext_fun.h deleted file mode 100755 index cc1d5846..00000000 --- a/source/c74support/max-includes/ext_fun.h +++ /dev/null @@ -1,10 +0,0 @@ -/*************************/ -/* Copyright 1988 IRCAM. */ -/*************************/ - -#ifndef _EXT_FUN_H_ -#define _EXT_FUN_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_FUN_H_ */ diff --git a/source/c74support/max-includes/ext_globalsymbol.h b/source/c74support/max-includes/ext_globalsymbol.h deleted file mode 100644 index d249a8fa..00000000 --- a/source/c74support/max-includes/ext_globalsymbol.h +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef __EXT_GLOBALSYMBOL_H__ -#define __EXT_GLOBALSYMBOL_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -/** Get a reference to an object that is bound to a #t_symbol. - @ingroup misc - @param x The object that is getting the reference to the symbol. - @param name The name of the symbol to reference. - @param classname The name of the class of which the object we are referencing should be an instance. - @return The s_thing of the #t_symbol. - - @remark An example of real-world use is to get the buffer~ object associated with a symbol. - @code - // the struct of our object - typedef struct _myobject { - t_object obj; - t_symbol *buffer_name; - t_buffer *buffer_object; - } t_myobject; - - void myobject_setbuffer(t_myobject *x, t_symbol *s, long argc, t_atom *argv) - { - if(s != x->buffer_name){ - // Reference the buffer associated with the incoming name - x->buffer_object = (t_buffer *)globalsymbol_reference((t_object *)x, s->s_name, "buffer~"); - - // If we were previously referencing another buffer, we should not longer reference it. - globalsymbol_dereference((t_object *)x, x->buffer_name->s_name, "buffer~"); - - x->buffer_name = s; - } - } - @endcode -*/ -void *globalsymbol_reference(t_object *x, C74_CONST char *name, C74_CONST char *classname); - - -/** Stop referencing an object that is bound to a #t_symbol, previously referenced using globalsymbol_reference(). - @ingroup misc - @param x The object that is getting the reference to the symbol. - @param name The name of the symbol to reference. - @param classname The name of the class of which the object we are referencing should be an instance. - @see globalsymbol_reference() -*/ -void globalsymbol_dereference(t_object *x, C74_CONST char *name, C74_CONST char *classname); - - -/** Bind an object to a #t_symbol. - @ingroup misc - @param x The object to bind to the #t_symbol. - @param name The name of the #t_symbol to which the object will be bound. - @param flags Pass 0. - @return A Max error code. -*/ -t_max_err globalsymbol_bind(t_object *x, C74_CONST char *name, long flags); - - -/** Remove an object from being bound to a #t_symbol. - @ingroup misc - @param x The object from which to unbind the #t_symbol. - @param name The name of the #t_symbol from which the object will be unbound. - @param flags Pass 0. -*/ -void globalsymbol_unbind(t_object *x, C74_CONST char *name, long flags); - - -// private -void globalsymbol_notify(t_object *x, C74_CONST char *name, t_symbol *msg, void *data); - - -END_USING_C_LINKAGE - -#endif // __EXT_GLOBALSYMBOL_H__ - diff --git a/source/c74support/max-includes/ext_hashtab.h b/source/c74support/max-includes/ext_hashtab.h deleted file mode 100644 index f49b3c10..00000000 --- a/source/c74support/max-includes/ext_hashtab.h +++ /dev/null @@ -1,482 +0,0 @@ -#ifndef _EXT_HASHTAB_H_ -#define _EXT_HASHTAB_H_ - -#include "ext_linklist.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** - Default number of slots in the hash table. - Creating a hashtab using hashtab_new() with an argument of 0 will use the default number of slots. - Primes typically work well for the number of slots. - - @ingroup hashtab -*/ -#define HASH_DEFSLOTS 59 // - - -/** A hashtab entry. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup hashtab - @see t_hashtab -*/ -typedef struct _hashtab_entry -{ - t_object ob; - t_symbol *key; - t_object *value; - long flags; - struct _hashtab *parent; -} t_hashtab_entry; - - -/** The hashtab object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup hashtab - @see t_hashtab -*/ -typedef struct _hashtab -{ - t_object ob; - long slotcount; - t_linklist **slots; - long readonly; - long flags; - void *reserved; -} t_hashtab; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - - -BEGIN_USING_C_LINKAGE - -/** - Create a new hashtab object. - You can free the hashtab by calling object_free() on the hashtab's pointer, - or by using hashtab_chuck(). - - @ingroup hashtab - @param slotcount The number of slots in the hash table. Prime numbers typically work well. - Pass 0 to get the default size. - @return Pointer to the new hashtab object. - - @see HASH_DEFSLOTS - @see object_free() - @see hashtab_chuck() -*/ -t_hashtab *hashtab_new(long slotcount); - - -/** - Store an item in a hashtab with an associated key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab with which to associate the value. - @param val The value to store. - - @return A Max error code. - @see hashtab_lookup(), hashtab_storesafe(), hashtab_storelong(), hashtab_storesym() -*/ -t_max_err hashtab_store(t_hashtab *x, t_symbol *key, t_object *val); - -/** - Store a t_atom_long value in a hashtab with an associated key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab with which to associate the value. - @param val The t_atom_long value to store. - - @return A Max error code. - @see hashtab_lookuplong(), hashtab_store(), hashtab_storesafe(), hashtab_storesym() -*/ -t_max_err hashtab_storelong(t_hashtab *x, t_symbol *key, t_atom_long val); - -/** - Store a t_symbol value in a hashtab with an associated key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab with which to associate the value. - @param val The t_symbol pointer to store. - - @return A Max error code. - @see hashtab_lookupsym(), hashtab_store(), hashtab_storesafe(), hashtab_storelong() -*/ -t_max_err hashtab_storesym(t_hashtab *x, t_symbol *key, t_symbol *val); - - -/** Store an item in a hashtab with an associated key. - The difference between hashtab_store_safe() and hashtab_store() is what happens in the event of a collision in the hash table. - The normal hashtab_store() function will free the existing value at the collision location with sysmem_freeptr() and then replaces it. - This version doesn't try to free the existing value at the collision location, but instead just over-writes it. - - @ingroup hashtab - @param x The hashtab instance. - @param key The key in the hashtab with which to associate the value. - @param val The value to store. - @return A Max error code. - @see hashtab_store() -*/ -t_max_err hashtab_store_safe(t_hashtab *x, t_symbol *key, t_object *val); - - -/** Store an item in a hashtab with an associated key and also flags that define the behavior of the item. - The hashtab_store() method is the same as calling this method with the default (0) flags. - - @ingroup hashtab - @param x The hashtab instance. - @param key The key in the hashtab with which to associate the value. - @param val The value to store. - @param flags One of the values listed in #e_max_datastore_flags. - @return A Max error code. - @see hashtab_store() -*/ -t_max_err hashtab_storeflags(t_hashtab *x, t_symbol *key, t_object *val, long flags); - - -/** - Return an item stored in a hashtab with the specified key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab to fetch. - @param val The address of a pointer to which the fetched value will be assigned. - - @return A Max error code. - @see hashtab_store(), hashtab_lookuplong(), hashtab_lookupsym() -*/ -t_max_err hashtab_lookup(t_hashtab *x, t_symbol *key, t_object **val); - -/** - Return a t_atom_long value stored in a hashtab with the specified key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab to fetch. - @param val A pointer to a t_atom_long to which the fetched value will be assigned. - - @return A Max error code. - @see hashtab_storelong(), hashtab_lookup(), hashtab_lookupsym() -*/ -t_max_err hashtab_lookuplong(t_hashtab *x, t_symbol *key, t_atom_long *val); - -/** - Return a t_symbol value stored in a hashtab with the specified key. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key in the hashtab to fetch. - @param val A pointer to the address of a t_symbol to which the fetched value will be assigned. - - @return A Max error code. - @see hashtab_storesym(), hashtab_lookup(), hashtab_lookuplong() -*/ -t_max_err hashtab_lookupsym(t_hashtab *x, t_symbol *key, t_symbol **val); - -// private -t_max_err hashtab_lookupentry(t_hashtab *x, t_symbol *key, t_hashtab_entry **entry); - - -/** Return an item stored in a hashtab with the specified key, also returning the items flags. - @ingroup hashtab - @param x The hashtab instance. - @param key The key in the hashtab to fetch. - @param val The address of a pointer to which the fetched value will be assigned. - @param flags The address of a value to which the fetched flags will be assigned. - @return A Max error code. - @see hashtab_lookup() - @see hashtab_store_flags() -*/ -t_max_err hashtab_lookupflags(t_hashtab *x, t_symbol *key, t_object **val, long *flags); - - -/** - Remove an item from a hashtab associated with the specified key and free it. - - The hashtab can contain a variety of different types of data. - By default, the hashtab assumes that all items are max objects with a valid - #t_object header. Thus by default, it frees items by calling object_free() on them. - - You can alter the hashtab's notion of what it contains by using the - hashtab_flags() method. - - If you wish to remove an item from the hashtab and free it yourself, then you - should use hashtab_chuckkey(). - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key of the item to delete. - @return A Max error code. - - @see hashtab_chuckkey() - @see hashtab_clear() - @see hashtab_flags() -*/ -t_max_err hashtab_delete(t_hashtab *x, t_symbol *key); - - -/** - Delete all items stored in a hashtab. - This is the equivalent of calling hashtab_delete() on every item in a hashtab. - - @ingroup hashtab - @return A max error code. - @see hashtab_flags() - @see hashtab_delete() -*/ -t_max_err hashtab_clear(t_hashtab *x); - - -/** - Remove an item from a hashtab associated with a given key. - - You are responsible for freeing any memory associated with the item that is - removed from the hashtab. - - @ingroup hashtab - - @param x The hashtab instance. - @param key The key of the item to delete. - @return A Max error code. - - @see hashtab_delete -*/ -t_max_err hashtab_chuckkey(t_hashtab *x, t_symbol *key); - - -/** - Free a hashtab, but don't free the items it contains. - - The hashtab can contain a variety of different types of data. - By default, the hashtab assumes that all items are max objects with a valid - #t_object header. - - You can alter the hashtab's notion of what it contains by using the - hashtab_flags() method. - - When you free the hashtab by calling object_free() it then tries to free all of the items it contains. - If the hashtab is storing a custom type of data, or should otherwise not free the data it contains, - then call hashtab_chuck() to free the object instead of object_free(). - - @ingroup hashtab - @param x The hashtab object to be freed. - @return A max error code. - @see object_free -*/ -t_max_err hashtab_chuck(t_hashtab *x); - - -/** - Search the hash table for the first item meeting defined criteria. - The items in the hashtab are iteratively processed, calling a specified comparison function on each - until the comparison function returns true. - - @ingroup hashtab - @param x The hashtab instance. - @param o The address to pointer that will be set with the matching item. - @param cmpfn The function used to determine a match in the list. - @param cmpdata An argument to be passed to the #t_cmpfn. - This will be passed as the second of the two args to the #t_cmpfn. - The first arg will be the hashtab item at each iteration in the list. - @return A max error code. - - @see linklist_findfirst() - @see t_cmpfn -*/ -t_max_err hashtab_findfirst(t_hashtab *x, void **o, long cmpfn(void *, void *), void *cmpdata); - - -/** - Call the named message on every object in the hashtab. - The hashtab_methodall() function requires that all items in the hashtab are - object instances with a valid #t_object header. - - @ingroup hashtab - @param x The hashtab instance. - @param s The name of the message to send to the objects. - @param ... Any arguments to be sent with the message. - @return A max error code. - - @remark Internally, this function uses object_method(), meaning that no errors will be - posted if the message name does not exist for the object. It also means that - messages sent methods with #A_GIMME definitions will need to be given a symbol - argument prior to the argc and argv array information. -*/ -t_max_err hashtab_methodall(t_hashtab *x, t_symbol *s, ...); - -#ifdef C74_X64 -#define hashtab_methodall(...) C74_VARFUN(hashtab_methodall_imp, __VA_ARGS__) -#endif - -t_max_err hashtab_methodall_imp(void *x, void *sym, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); - - -/** - Call the specified function for every item in the hashtab. - - @ingroup hashtab - @param x The hashtab instance. - @param fun The function to call, specified as function pointer cast to a Max #method. - @param arg An argument that you would like to pass to the function being called. - @return A max error code. - - @remark The hashtab_funall() method will call your function for every item in the list. - It will pass both a pointer to the item in the list, and any argument that you - provide. The following example shows a function that could be called by hashtab_funall(). - @code - void myFun(t_hashtab_entry *e, void *myArg) - { - if (e->key && e->value) { - // do something with e->key, e->value, and myArg here as appropriate - } - } - @endcode -*/ -t_max_err hashtab_funall(t_hashtab *x, method fun, void *arg); - - -// private -t_max_err hashtab_objfunall(t_hashtab *x, method fun, void *arg); - - -/** - Return the number of items stored in a hashtab. - - @ingroup hashtab - @param x The hashtab instance. - @return The number of items in the hash table. -*/ -t_atom_long hashtab_getsize(t_hashtab *x); - - -/** - Post a hashtab's statistics to the Max window. - - @ingroup hashtab - @param x The hashtab instance. -*/ -void hashtab_print(t_hashtab *x); - - -/** - Set the hashtab's readonly bit. - - By default the readonly bit is 0, indicating that it is threadsafe for both reading and writing. - Setting the readonly bit to 1 will disable the hashtab's theadsafety mechanism, increasing - performance but at the expense of threadsafe operation. - Unless you can guarantee the threading context for a hashtab's use, you should leave this set to 0. - - @ingroup hashtab - @param x The hashtab instance. - @param readonly A 1 or 0 for setting the readonly bit. -*/ -void hashtab_readonly(t_hashtab *x, long readonly); - - -/** - Set the hashtab's datastore flags. The available flags are enumerated in #e_max_datastore_flags. - These flags control the behavior of the hashtab, particularly when removing items from the list - using functions such as hashtab_clear(), hashtab_delete(), or when freeing the hashtab itself. - - @ingroup hashtab - @param x The hashtab instance. - @param flags A valid value from the #e_max_datastore_flags. The default is #OBJ_FLAG_OBJ. -*/ -void hashtab_flags(t_hashtab *x, long flags); - - -/** - Get the hashtab's datastore flags. - - @ingroup hashtab - @param x The hashtab instance. - @return The current state of the hashtab flags as enumerated in #e_max_datastore_flags. -*/ -t_atom_long hashtab_getflags(t_hashtab *x); - - -/** Change the flags for an item stored in the hashtab with a given key. - @ingroup hashtab - @param x The hashtab instance. - @param key The key in the hashtab whose flags will be changed. - @param flags One of the values listed in #e_max_datastore_flags. - @return A Max error code. - @see hashtab_store_flags() -*/ -t_max_err hashtab_keyflags(t_hashtab *x, t_symbol *key, long flags); - - -/** Retrieve the flags for an item stored in the hashtab with a given key. - @ingroup hashtab - @param x The hashtab instance. - @param key The key in the hashtab whose flags will be returned. - @return The flags for the given key. - @see hashtab_store_flags() -*/ -t_atom_long hashtab_getkeyflags(t_hashtab *x, t_symbol *key); - - -/** - Retrieve all of the keys stored in a hashtab. - - If the kc and kv parameters are properly initialized to zero, then hashtab_getkeys() will allocate memory - for the keys it returns. You are then responsible for freeing this memory using sysmem_freeptr(). - - @ingroup hashtab - @param x The hashtab instance. - @param kc The address of a long where the number of keys retrieved will be set. - @param kv The address of the first of an array #t_symbol pointers where the retrieved keys will be set. - @return A max error code. - - @remark The following example demonstrates fetching all of the keys from a hashtab in order to iterate through - each item stored in the hashtab. - @code - t_symbol **keys = NULL; - long numKeys = 0; - long i; - t_object *anItem; - - hashtab_getkeys(aHashtab, &numKeys, &keys); - for(i=0; itrue or false depending on the outcome of the - comparison of the two linklist items passed in as arguments. - - @ingroup datastore - @see linklist_match() - @see hashtab_findfirst() - @see indexmap_sort() -*/ -typedef long (*t_cmpfn)(void *, void *); - -BEGIN_USING_C_LINKAGE - -/** - Create a new linklist object. - You can free the linklist by calling object_free() on the linklist's pointer, - or by using linklist_chuck(). - - @ingroup linklist - @return Pointer to the new linklist object. - - @see object_free() - @see linklist_chuck() -*/ -t_linklist *linklist_new(void); - - -/** - Free a linklist, but don't free the items it contains. - - The linklist can contain a variety of different types of data. - By default, the linklist assumes that all items are max objects with a valid - #t_object header. - - You can alter the linklist's notion of what it contains by using the - linklist_flags() method. - - When you free the linklist by calling object_free() it then tries to free all of the items it contains. - If the linklist is storing a custom type of data, or should otherwise not free the data it contains, - then call linklist_chuck() to free the object instead of object_free(). - - @ingroup linklist - @param x The linklist object to be freed. - @see object_free -*/ -void linklist_chuck(t_linklist *x); - - -/** - Return the number of items in a linklist object. - - @ingroup linklist - - @param x The linklist instance. - @return The number of items in the linklist object. -*/ -t_atom_long linklist_getsize(t_linklist *x); - - -/** - Return the item stored in a linklist at a specified index. - - @ingroup linklist - - @param x The linklist instance. - @param index The index in the linklist to fetch. Indices are zero-based. - @return The item from the linklist stored at index. - If there is no item at the index, NULL is returned -*/ -void *linklist_getindex(t_linklist *x, long index); - - -// private -t_llelem *linklist_index2ptr(t_linklist *x, long index); - - -// private -long linklist_ptr2index(t_linklist *x, t_llelem *p); - - -/** - Return an item's index, given the item itself. - - @ingroup linklist - - @param x The linklist instance. - @param p The item pointer to search for in the linklist. - @return The index of the item given in the linklist. - If the item is not in the linklist #MAX_ERR_GENERIC is returned. -*/ -t_atom_long linklist_objptr2index(t_linklist *x, void *p); - - -/** - Add an item to the end of the list. - - @ingroup linklist - - @param x The linklist instance. - @param o The item pointer to append to the linked-list. - @return The updated size of the linklist after appending the new item, or -1 if the append failed. -*/ -t_atom_long linklist_append(t_linklist *x, void *o); - - -/** Insert an item into the list at the specified index. - @ingroup linklist - @param x The linklist instance. - @param o The item pointer to insert. - @param index The index at which to insert. Index 0 is the head of the list. - @return The index of the item in the linklist, or -1 if the insert failed. -*/ -t_atom_long linklist_insertindex(t_linklist *x, void *o, long index); - - -/** Insert an item into the list, keeping the list sorted according to a specified comparison function. - @ingroup linklist - @param x The linklist instance. - @param o The item pointer to insert. - @param cmpfn A comparison function by which the list should be sorted. - @return The index of the new item in the linklist, or -1 if the insert failed. -*/ -long linklist_insert_sorted(t_linklist *x, void *o, long cmpfn(void *, void *)); - - -/** - Insert an item into the list after another specified item. - - @ingroup linklist - - @param x The linklist instance. - @param o The item pointer to insert. - @param objptr The item pointer after which to insert in the list. - - @return An opaque linklist element. -*/ -t_llelem *linklist_insertafterobjptr(t_linklist *x, void *o, void *objptr); // inserts object o after objptr - - -/** - Insert an item into the list before another specified item. - - @ingroup linklist - - @param x The linklist instance. - @param o The item pointer to insert. - @param objptr The item pointer before which to insert in the list. - - @return An opaque linklist element. -*/ -t_llelem *linklist_insertbeforeobjptr(t_linklist *x, void *o, void *objptr); // inserts object o before objptr - - -/** - Move an existing item in the list to a position after another specified item in the list. - - @ingroup linklist - - @param x The linklist instance. - @param o The item pointer to insert. - @param objptr The item pointer after which to move o in the list. - - @return An opaque linklist element. -*/ -t_llelem *linklist_moveafterobjptr(t_linklist *x, void *o, void *objptr); // move existing object o after objptr - - -/** - Move an existing item in the list to a position before another specified item in the list. - - @ingroup linklist - - @param x The linklist instance. - @param o The item pointer to insert. - @param objptr The item pointer before which to move o in the list. - - @return An opaque linklist element. -*/ -t_llelem *linklist_movebeforeobjptr(t_linklist *x, void *o, void *objptr); // move existing object o before objptr - - -// private -t_llelem *linklist_insertptr(t_linklist *x, void *o, t_llelem *p); //inserts before ptr - - -/** - Remove the item from the list at the specified index and free it. - - The linklist can contain a variety of different types of data. - By default, the linklist assumes that all items are max objects with a valid - #t_object header. Thus by default, it frees items by calling object_free() on them. - - You can alter the linklist's notion of what it contains by using the - linklist_flags() method. - - If you wish to remove an item from the linklist and free it yourself, then you - should use linklist_chuckptr(). - - @ingroup linklist - - @param x The linklist instance. - @param index The index of the item to delete. - @return Returns the index number of the item delted, or -1 if the operation failed. - - @see linklist_chuckindex - @see linklist_chuckobject -*/ -t_atom_long linklist_deleteindex(t_linklist *x, long index); - - -/** - Remove the item from the list at the specified index. - - You are responsible for freeing any memory associated with the item that is - removed from the linklist. - - @ingroup linklist - - @param x The linklist instance. - @param index The index of the item to remove. - @return Returns #MAX_ERR_NONE on successful removal, otherwise returns #MAX_ERR_GENERIC - - @see linklist_deleteindex - @see linklist_chuckobject -*/ -long linklist_chuckindex(t_linklist *x, long index); - - -/** - Remove the specified item from the list. - - You are responsible for freeing any memory associated with the item that is - removed from the linklist. - - @ingroup linklist - - @param x The linklist instance. - @param o The pointer to the item to remove. - - @see linklist_deleteindex - @see linklist_chuckindex - @see linklist_deleteobject -*/ -long linklist_chuckobject(t_linklist *x, void *o); - - -/** - Delete the specified item from the list. - - The object is removed from the list and deleted. - The deletion is done with respect to any flags passed to linklist_flags. - - @ingroup linklist - - @param x The linklist instance. - @param o The pointer to the item to delete. - - @see linklist_deleteindex - @see linklist_chuckindex - @see linklist_chuckobject -*/ -long linklist_deleteobject(t_linklist *x, void *o); - -// private -long linklist_deleteptr(t_linklist *x, t_llelem *p); - - -// private -long linklist_chuckptr(t_linklist *x, t_llelem *p); //like delete, but don't free it - - -/** - Remove and free all items in the list. - - Freeing items in the list is subject to the same rules as linklist_deleteindex(). - You can alter the linklist's notion of what it contains, and thus how items are freed, - by using the linklist_flags() method. - - @ingroup linklist - @param x The linklist instance. -*/ -void linklist_clear(t_linklist *x); - - -// private -long linklist_insertnodeindex(t_linklist *x, t_llelem *p, long index); - -// private -t_llelem *linklist_insertnodeptr(t_linklist *x, t_llelem *p1, t_llelem *p2); - -// private -long linklist_appendnode(t_linklist *x, t_llelem *p); - -// private -t_llelem *linklistelem_new(void); - -// private -void linklistelem_free(t_linklist *x, t_llelem *elem); - - -/** - Retrieve linklist items as an array of pointers. - - @ingroup linklist - - @param x The linklist instance. - @param a The address of the first pointer in the array to fill. - @param max The number of pointers in the array. - @return The number of items from the list actually returned in the array. -*/ -t_atom_long linklist_makearray(t_linklist *x, void **a, long max); - - -/** - Reverse the order of items in the linked-list. - - @ingroup linklist - @param x The linklist instance. -*/ -void linklist_reverse(t_linklist *x); - - -/** - Rotate items in the linked list in circular fashion. - - @ingroup linklist - @param x The linklist instance. - @param i The number of positions in the list to shift items. -*/ -void linklist_rotate(t_linklist *x, long i); - - -/** - Randomize the order of items in the linked-list. - - @ingroup linklist - @param x The linklist instance. -*/ -void linklist_shuffle(t_linklist *x); - - -/** - Swap the position of two items in the linked-list, specified by index. - - @ingroup linklist - @param x The linklist instance. - @param a The index of the first item to swap. - @param b The index of the second item to swap. -*/ -void linklist_swap(t_linklist *x, long a, long b); - - -/** - Search the linked list for the first item meeting defined criteria. - The items in the list are traversed, calling a specified comparison function on each - until the comparison function returns true. - - @ingroup linklist - @param x The linklist instance. - @param o The address to pointer that will be set with the matching item. - @param cmpfn The function used to determine a match in the list. - @param cmpdata An argument to be passed to the #t_cmpfn. - This will be passed as the second of the two args to the #t_cmpfn. - The first arg will be the linklist item at each iteration in the list. - @return The index of the matching item, or -1 if no match is found. - - @remark The following shows how to manually do what linklist_chuckobject() does. - @code - void *obj; - long index; - - index = linklist_findfirst(x, &obj, #linklist_match, o); - if(index != -1) - linklist_chuckindex(x, index); - @endcode - - @see linklist_match - @see t_cmpfn - @see linklist_findall -*/ -t_atom_long linklist_findfirst(t_linklist *x, void **o, long cmpfn(void *, void *), void *cmpdata); - - -/** - Search the linked list for all items meeting defined criteria. - The items in the list are traversed, calling a specified comparison function on each, - and returning the matches in another linklist. - - @ingroup linklist - @param x The linklist instance. - @param out The address to a #t_linklist pointer. - You should initialize the pointer to NULL before calling linklist_findall(). - A new linklist will be created internally by linklist_findall() and returned here. - @param cmpfn The function used to determine a match in the list. - @param cmpdata An argument to be passed to the #t_cmpfn. - This will be passed as the second of the two args to the #t_cmpfn. - The first arg will be the linklist item at each iteration in the list. - - @remark The following example assumes you have a linklist called myLinkList, and #t_cmpfn called - myCmpFunction, and some sort of data to match in someCriteria. - @code - t_linklist *results = NULL; - - linklist_findall(myLinkList, &results, myCmpFunction, (void *)someCriteria); - // do something here with the 'results' linklist - // then free the results linklist - linklist_chuck(results); - @endcode - - @see linklist_match - @see t_cmpfn - @see linklist_findfirst -*/ -void linklist_findall(t_linklist *x, t_linklist **out, long cmpfn(void *, void *), void *cmpdata); - - -/** - Call the named message on every object in the linklist. - The linklist_methodall() function requires that all items in the linklist are - object instances with a valid t_object header. - - @ingroup linklist - @param x The linklist instance. - @param s The name of the message to send to the objects. - @param ... Any arguments to be sent with the message. - - @remark Internally, this function uses object_method(), meaning that no errors will be - posted if the message name does not exist for the object. It also means that - messages sent methods with #A_GIMME definitions will need to be given a symbol - argument prior to the argc and argv array information. -*/ -void linklist_methodall(t_linklist *x, t_symbol *s, ...); - -#ifdef C74_X64 -#define linklist_methodall(...) C74_VARFUN(linklist_methodall_imp, __VA_ARGS__) -#endif - -void linklist_methodall_imp(void *x, void *sym, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); - - -/** - Call the named message on an object specified by index. - The item must be an object instance with a valid t_object header. - - @ingroup linklist - @param x The linklist instance. - @param i The index of the item to which to send the message. - @param s The name of the message to send to the objects. - @param ... Any arguments to be sent with the message. - - @remark Internally, this function uses object_method(), meaning that no errors will be - posted if the message name does not exist for the object. It also means that - messages sent methods with #A_GIMME definitions will need to be given a symbol - argument prior to the argc and argv array information. -*/ -void *linklist_methodindex(t_linklist *x, t_atom_long i, t_symbol *s, ...); - -#ifdef C74_X64 -#define linklist_methodindex(...) C74_VARFUN(linklist_methodindex_imp, __VA_ARGS__) -#endif - -void *linklist_methodindex_imp(void *x, void *i, void *s, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7); // 10 arg varfun, so we lose an arg - - -/** - Sort the linked list. - The items in the list are ordered using a #t_cmpfn function that is passed in as an argument. - - @ingroup linklist - @param x The linklist instance. - @param cmpfn The function used to sort the list. - - @remark The following is example is a real-world example of sorting a linklist of symbols alphabetically - by first letter only. First the cmpfn is defined, then it is used in a different function - by linklist_sort(). - @code - long myAlphabeticalCmpfn(void *a, void *b) - { - t_symbol *s1 = (t_symbol *)a; - t_symbol *s2 = (t_symbol *)b; - - if(s1->s_name[0] < s2->s_name[0]) - return true; - else - return false; - } - - void mySortMethod(t_myobj *x) - { - // the linklist was already created and filled with items previously - linklist_sort(x->myLinkList, myAlphabeticalCmpfn); - } - @endcode -*/ -void linklist_sort(t_linklist *x, long cmpfn(void *, void *)); - - -/** - Call the specified function for every item in the linklist. - - @ingroup linklist - @param x The linklist instance. - @param fun The function to call, specified as function pointer cast to a Max #method. - @param arg An argument that you would like to pass to the function being called. - - @remark The linklist_funall() method will call your function for every item in the list. - It will pass both a pointer to the item in the list, and any argument that you - provide. The following example shows a function that could be called by linklist_funall(). - @code - void myFun(t_object *myObj, void *myArg) - { - // do something with myObj and myArg here - // myObj is the item in the linklist - } - @endcode -*/ -void linklist_funall(t_linklist *x, method fun, void *arg); - - -/** - Call the specified function for every item in the linklist. - The iteration through the list will halt if the function returns a non-zero value. - - @ingroup linklist - @param x The linklist instance. - @param fun The function to call, specified as function pointer cast to a Max #method. - @param arg An argument that you would like to pass to the function being called. - - @remark The linklist_funall() method will call your function for every item in the list. - It will pass both a pointer to the item in the list, and any argument that you - provide. The following example shows a function that could be called by linklist_funall(). - @code - long myFun(t_symbol *myListItemSymbol, void *myArg) - { - // this function is called by a linklist that contains symbols for its items - if(myListItemSymbol == gensym("")){ - error("empty symbol -- aborting linklist traversal") - return 1; - } - else{ - // do something with the symbol - return 0; - } - } - @endcode -*/ -t_atom_long linklist_funall_break(t_linklist *x, method fun, void *arg); - - -/** - Call the specified function for an item specified by index. - - @ingroup linklist - @param x The linklist instance. - @param i The index of the item to which to send the message. - @param fun The function to call, specified as function pointer cast to a Max #method. - @param arg An argument that you would like to pass to the function being called. - - @remark The linklist_funindex() method will call your function for an item in the list. - It will pass both a pointer to the item in the list, and any argument that you - provide. The following example shows a function that could be called by linklist_funindex(). - @code - void myFun(t_object *myObj, void *myArg) - { - // do something with myObj and myArg here - // myObj is the item in the linklist - } - @endcode -*/ -void *linklist_funindex(t_linklist *x, long i, method fun, void *arg); - - -/** - Given an item in the list, replace it with a different value. - - @ingroup linklist - @param x The linklist instance. - @param p An item in the list. - @param newp The new value. - @return Always returns NULL. -*/ -void *linklist_substitute(t_linklist *x, void *p, void *newp); - - -/** - Given an item in the list, find the next item. - This provides an means for walking the list. - - @ingroup linklist - @param x The linklist instance. - @param p An item in the list. - @param next The address of a pointer to set with the next item in the list. -*/ -void *linklist_next(t_linklist *x, void *p, void **next); - - -/** - Given an item in the list, find the previous item. - This provides an means for walking the list. - - @ingroup linklist - @param x The linklist instance. - @param p An item in the list. - @param prev The address of a pointer to set with the previous item in the list. -*/ -void *linklist_prev(t_linklist *x, void *p, void **prev); - - -/** - Return the last item (the tail) in the linked-list. - - @ingroup linklist - @param x The linklist instance. - @param item The address of pointer in which to store the last item in the linked-list. - @return always returns NULL -*/ -void *linklist_last(t_linklist *x, void **item); - - -/** - Set the linklist's readonly bit. - - By default the readonly bit is 0, indicating that it is threadsafe for both reading and writing. - Setting the readonly bit to 1 will disable the linklist's theadsafety mechanism, increasing - performance but at the expense of threadsafe operation. - Unless you can guarantee the threading context for a linklist's use, you should leave this set to 0. - - @ingroup linklist - @param x The linklist instance. - @param readonly A 1 or 0 for setting the readonly bit. -*/ -void linklist_readonly(t_linklist *x, long readonly); - - -/** - Set the linklist's datastore flags. The available flags are enumerated in #e_max_datastore_flags. - These flags control the behavior of the linklist, particularly when removing items from the list - using functions such as linklist_clear(), linklist_deleteindex(), or when freeing the linklist itself. - - @ingroup linklist - @param x The linklist instance. - @param flags A valid value from the #e_max_datastore_flags. The default is #OBJ_FLAG_OBJ. -*/ -void linklist_flags(t_linklist *x, long flags); - - -/** - Get the linklist's datastore flags. - - @ingroup linklist - @param x The linklist instance. - @return The current state of the linklist flags as enumerated in #e_max_datastore_flags. -*/ -t_atom_long linklist_getflags(t_linklist *x); - - -/** - A linklist comparison method that determines if two item pointers are equal. - - @ingroup linklist - - @param a The first item to compare. - @param b The second item to compare. - @return Returns 1 if the items are equal, otherwise 0. - - @see t_cmpfn -*/ -long linklist_match(void *a, void *b); - - -END_USING_C_LINKAGE - -#endif // _EXT_LINKLIST_H_ - diff --git a/source/c74support/max-includes/ext_maxtypes.h b/source/c74support/max-includes/ext_maxtypes.h deleted file mode 100644 index 0a0b5934..00000000 --- a/source/c74support/max-includes/ext_maxtypes.h +++ /dev/null @@ -1,85 +0,0 @@ -// ext_maxtypes.h: Max data types and structure definitions for external objects -// Copyright 1990-2004 IRCAM/Cycling '74 -- All rights reserved - -#ifndef _EXT_MAXTYPES_H_ -#define _EXT_MAXTYPES_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** A patcher. As of Max 5, the patcher struct is opaque. - Messages can be sent to a patcher using object_method() or object_method_typed(), or by using @ref attr accessors. - @ingroup patcher -*/ -typedef t_object t_patcher; - - -/** A box. As of Max 5, the box struct is opaque. - Messages can be sent to a box using object_method() or object_method_typed(), or by using @ref attr accessors. - @ingroup patcher -*/ -typedef t_object t_box; - - -/** patcher iteration flags - @ingroup patcher -*/ -enum { - PI_DEEP = 1, ///< descend into subpatchers (not used by audio library) - PI_REQUIREFIRSTIN = 2, ///< if b->b_firstin is NULL, do not call function - PI_WANTBOX = 4, ///< instead, of b->b_firstin, pass b to function, whether or not b->b_firstin is NULL - PI_SKIPGEN = 8, - PI_WANTPATCHER = 16 -}; - -/** A simple doubly-linked list used by the #t_funbuff object. - @ingroup funbuff -*/ -typedef struct zll -{ /* note: no obj header */ - long z_x; - long z_y; - struct zll *z_next; - struct zll *z_prev; -} Zll, t_zll; - - -/** The structure of a funbuff object - @ingroup funbuff -*/ -typedef struct funbuff -{ - t_object f_obj; - void *f_outlet; - void *f_outlet1; - void *f_outlet2; - t_zll f_head; ///< head of double linked list of function elements - t_zll *f_foot; ///< foot in the door pointer for list - long f_gotoDelta; ///< used by goto and next - long f_selectX; ///< selected region start - long f_selectW; ///< selected region width - t_symbol *f_sym; ///< filename - long f_y; ///< y-value from inlet - char f_yvalid; ///< flag that y has been set since x has - char f_embed; ///< flag for embedding funbuff values in patcher -} Funbuff, t_funbuff; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_MAXTYPES_H_ diff --git a/source/c74support/max-includes/ext_menu.h b/source/c74support/max-includes/ext_menu.h deleted file mode 100755 index 4f14ce69..00000000 --- a/source/c74support/max-includes/ext_menu.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_MENU_H_ -#define _EXT_MENU_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_MENU_H_ */ diff --git a/source/c74support/max-includes/ext_mess.h b/source/c74support/max-includes/ext_mess.h deleted file mode 100755 index 9f535da3..00000000 --- a/source/c74support/max-includes/ext_mess.h +++ /dev/null @@ -1,414 +0,0 @@ -#ifndef _EXT_MESS_H_ -#define _EXT_MESS_H_ - -#include "ext_prefix.h" -#include "ext_common.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#include "max_types.h" - -/* mess.h -- define a symbol table and message-passing system. */ - -// CALL_METHOD() macros rely on __typeof which is not supported on Windows -// The "safe" versions are necessary for ARM but should be fine on Intel mac as well. -// Enabling on Intel mac so we get broader testing. -#ifndef WIN_VERSION -#define USE_SAFE_METHOD_CALL -#endif - -/** Function pointer type for generic methods. - @ingroup datatypes -*/ - -#ifdef USE_SAFE_METHOD_CALL -typedef void *(*method)(void *); -#else -typedef void *(*method)(void *, ...); -#endif - - -/** Function pointer type for methods returning a long. - @ingroup datatypes -*/ -#ifdef USE_SAFE_METHOD_CALL -typedef long (*t_intmethod)(void *); -#else -typedef long (*t_intmethod)(void *, ...); -#endif - -#define CALL_METHOD_0(rt, m, x) ((rt(*)(void*))(m))(x) -#define CALL_METHOD_1(rt, m, x, p1) ((rt(*)(void*, __typeof(p1)))(m))(x, p1) -#define CALL_METHOD_2(rt, m, x, p1,p2) ((rt(*)(void*, __typeof(p1),__typeof(p2) ))(m))(x, p1, p2) -#define CALL_METHOD_3(rt, m, x, p1,p2,p3) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3) ))(m))(x, p1,p2,p3) -#define CALL_METHOD_4(rt, m, x, p1,p2,p3,p4) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4) ))(m))(x, p1,p2,p3,p4) -#define CALL_METHOD_5(rt, m, x, p1,p2,p3,p4,p5) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4),__typeof(p5) ))(m))(x, p1,p2,p3,p4,p5) -#define CALL_METHOD_6(rt, m, x, p1,p2,p3,p4,p5,p6) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4),__typeof(p5),__typeof(p6) ))(m))(x, p1,p2,p3,p4,p5,p6) -#define CALL_METHOD_7(rt, m, x, p1,p2,p3,p4,p5,p6,p7) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4),__typeof(p5),__typeof(p6),__typeof(p7) ))(m))(x, p1,p2,p3,p4,p5,p6,p7) -#define CALL_METHOD_8(rt, m, x, p1,p2,p3,p4,p5,p6,p7,p8) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4),__typeof(p5),__typeof(p6),__typeof(p7),__typeof(p8) ))(m))(x, p1,p2,p3,p4,p5,p6,p7,p8) -#define CALL_METHOD_9(rt, m, x, p1,p2,p3,p4,p5,p6,p7,p8,p9) ((rt(*)(void*, __typeof(p1),__typeof(p2),__typeof(p3),__typeof(p4),__typeof(p5),__typeof(p6),__typeof(p7),__typeof(p8),__typeof(p9) ))(m))(x, p1,p2,p3,p4,p5,p6,p7,p8,p9) - -#define _GET_CALL_METHOD_MACRO_INDEX(_method, _object, _1, _2, _3, _4, _5, _6, _7, _8, _9, N, ...) N -#define GET_CALL_METHOD_MACRO_INDEX(...) C74_EXPAND(_GET_CALL_METHOD_MACRO_INDEX(__VA_ARGS__, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)) - -#define GET_CALL_METHOD_MACRO_NAME(...) C74_JOIN_2(CALL_METHOD_, GET_CALL_METHOD_MACRO_INDEX(__VA_ARGS__)) - -// for now only use special macro for ARM -// we want to avoid casting all args to void* on intel -// and ultimately should come up with a better approach on ARM as well - -#ifdef USE_SAFE_METHOD_CALL - -#define CALL_INTMETHOD(...) C74_EXPAND(GET_CALL_METHOD_MACRO_NAME(__VA_ARGS__) ( long, __VA_ARGS__ )) -#define CALL_METHOD(...) C74_EXPAND(GET_CALL_METHOD_MACRO_NAME(__VA_ARGS__) ( void*, __VA_ARGS__ )) - -#else - -#define CALL_INTMETHOD(m, ...) (*m)(__VA_ARGS__) -#define CALL_METHOD(m, ...) (*m)(__VA_ARGS__) - -#endif - -// Forward declarations of important Max types - -typedef struct _atomarray t_atomarray; - -// eventually convert all externals to use explicit types instead of void* -// can define C74_USE_STRICT_TYPES=1 to enable for specific externals to test -#if !defined(_MAX_CORE_H_) && !defined(C74_USE_STRICT_TYPES) -#define C74_USE_STRICT_TYPES 0 -#else -#define C74_USE_STRICT_TYPES 1 -#endif - -#if C74_USE_STRICT_TYPES - -typedef struct _outlet t_outlet; -typedef struct _inlet t_inlet; -typedef struct _binbuf t_binbuf; -typedef struct _qelem t_qelem; -typedef struct _scheduler t_scheduler; -typedef struct _clock t_clock; -typedef struct _setclock t_setclock; -typedef struct _toolfile t_toolfile; - -#else - -typedef void t_outlet; -typedef void t_inlet; -typedef void t_binbuf; -typedef void t_qelem; -typedef void t_scheduler; -typedef void t_clock; -typedef void t_setclock; -typedef void t_toolfile; - -#endif // #if !C74_USE_STRICT_TYPES - -/** The symbol. - - Note: You should never manipulate the s_name field of the #t_symbol directly! - Doing so will corrupt Max's symbol table. - Instead, always use gensym() to get a symbol with the desired string - contents for the s_name field. - - @ingroup symbol -*/ -typedef struct symbol -{ - char *s_name; ///< name: a c-string - struct object *s_thing; ///< possible binding to a t_object -} t_symbol; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct symbol Symbol ); -#endif - -#define CAREFUL - -/** Magic number used to determine if memory pointed to by a #t_object* is valid. - @ingroup obj -*/ -#define MAGIC 1758379419L /* random (but odd) */ - -#define OB_MAGIC MAGIC - -/** function version of NOGOOD test is potentially more reliable -*/ -long object_isnogood(void *x); - -#ifdef WIN_VERSION -/** Returns true if a pointer is not a valid object. - @ingroup obj -*/ -#ifdef _DEBUG -#define NOGOOD(x) object_isnogood(x) -#else -#define NOGOOD(x) ( IsBadReadPtr((void *)(x),sizeof(struct object)) || ((struct object *)(x))->o_magic != MAGIC ) -#endif - -#else -/** Returns true if a pointer is not a valid object. - @ingroup obj -*/ -#define NOGOOD(x) ( (!(x)) || ((struct object *)(x))->o_magic != MAGIC ) -#endif - -#define OB_INVALID NOGOOD - -/** Maximum number of arguments that can be passed as a typed-list rather than using #A_GIMME. It is generally recommended to use #A_GIMME. - @ingroup obj -*/ -#define MSG_MAXARG 7 - - -/** A list of symbols and their corresponding methods, - complete with typechecking information. - @ingroup obj -*/ -typedef struct messlist -{ - struct symbol *m_sym; ///< Name of the message - method m_fun; ///< Method associated with the message - char m_type[MSG_MAXARG + 1]; ///< Argument type information -} t_messlist; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct messlist Messlist ); -#endif - -/** The tiny object structure sits at the head of any object to which you may - pass messages (and which you may feed to freeobject()). - In general, you should use #t_object instead. - @ingroup obj -*/ -typedef struct tinyobject -{ - struct messlist *t_messlist; ///< list of messages and methods - // (also used as freelist link) -#ifdef CAREFUL - long t_magic; ///< magic number -#endif -} t_tinyobject; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct tinyobject Tinyobject ); -#endif - - -/** The structure for the head of any object which wants to have inlets or outlets, - or support attributes. - @ingroup obj -*/ -typedef struct object -{ - struct messlist *o_messlist; ///< list of messages and methods. The -1 entry of the message list of an object contains a pointer to its #t_class entry. - // (also used as freelist link) -#ifdef CAREFUL - t_ptr_int o_magic; ///< magic number -#endif - t_inlet *o_inlet; ///< list of inlets - t_outlet *o_outlet; ///< list of outlets -} t_object; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct object Object ); -#endif - -/** - The data structure for a Max class. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup class -*/ -typedef struct maxclass -{ - struct symbol *c_sym; ///< symbol giving name of class - struct object **c_freelist; // linked list of free ones - method c_freefun; // function to call when freeing - t_getbytes_size c_size; // size of an instance - char c_tiny; // flag indicating tiny header - char c_noinlet; // flag indicating no first inlet for patcher - struct symbol *c_filename; ///< name of file associated with this class - t_messlist *c_newmess; // constructor method/type information - method c_menufun; // function to call when creating from object pallette (default constructor) - long c_flags; // class flags used to determine context in which class may be used - long c_messcount; // size of messlist array - t_messlist *c_messlist; // messlist arrray - void *c_attributes; // t_hashtab object - void *c_extra; // t_hashtab object - long c_obexoffset; // if non zero, object struct contains obex pointer at specified byte offset - void *c_methods; // methods t_hashtab object - method c_attr_get; // if not set, NULL, if not present CLASS_NO_METHOD - method c_attr_gettarget; // if not set, NULL, if not present CLASS_NO_METHOD - method c_attr_getnames; // if not set, NULL, if not present CLASS_NO_METHOD - struct maxclass *c_superclass; // a superclass point if this is a derived class -} t_class; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct maxclass Maxclass ); -#endif - - -/** Class flags. If not box or polyglot, class is only accessible in C via known interface - @ingroup class -*/ -typedef enum { - CLASS_FLAG_BOX = 0x00000001L, ///< for use in a patcher - CLASS_FLAG_POLYGLOT = 0x00000002L, ///< for use by any text language (c/js/java/etc) - CLASS_FLAG_NEWDICTIONARY = 0x00000004L, ///< dictionary based constructor - CLASS_FLAG_REGISTERED = 0x00000008L, ///< for backward compatible messlist implementation (once reg'd can't grow) - CLASS_FLAG_UIOBJECT = 0x00000010L, ///< for objects that don't go inside a newobj box. - CLASS_FLAG_ALIAS = 0x00000020L, ///< for classes that are just copies of some other class (i.e. del is a copy of delay) - CLASS_FLAG_MULTITOUCH = 0x00000040L, ///< sent multitouch version of mouse messages - CLASS_FLAG_DO_NOT_PARSE_ATTR_ARGS = 0x00000080L, ///< override dictionary based constructor attr arg parsing - CLASS_FLAG_DO_NOT_ZERO = 0x00000100L, ///< don't zero the object struct on construction (for efficiency) - CLASS_FLAG_NOATTRIBUTES = 0x00010000L, ///< for efficiency - CLASS_FLAG_OWNATTRIBUTES = 0x00020000L, ///< for classes which support a custom attr interface (e.g. jitter) - CLASS_FLAG_PARAMETER = 0x00040000L, ///< for classes which have a parameter - CLASS_FLAG_RETYPEABLE = 0x00080000L, ///< object box can be retyped without recreating the object - CLASS_FLAG_OBJECT_METHOD = 0x00100000L, ///< objects of this class may have object specific methods - CLASS_FLAG_VISUALIZER = 0x00200000L, ///< objects of this class are signal visualizers - CLASS_FLAG_USES_PROXIES = 0x00400000L, ///< objects of this class might use proxies (set automatically in proxy_new) - CLASS_FLAG_OWN_DATA = 0x00800000L, ///< objects of this class save data in their own format - CLASS_FLAG_DYNAMICCOLOR = 0x01000000L ///< objects which contain colors supporting dynamic colors (set automatically in class_attr_dynamiccolor_init) -} e_max_class_flags; - - -/** the list of officially recognized types, including pseudotypes for - commas and semicolons. Used in two places: 1. the reader, when it reads - a string, returns long, float, sym, comma, semi, or dollar; - and 2. each object method comes with an array of them saying what types - it needs, from among long, float, sym, obj, gimme, and cant. - - @ingroup atom - - @remark While these values are defined in an enum, you should use a long to represent the value. - Using the enum type creates ambiguity in struct size and is subject to various inconsistent - compiler settings. -*/ -typedef enum { - A_NOTHING = 0, ///< no type, thus no atom - A_LONG, ///< long integer - A_FLOAT, ///< 32-bit float - A_SYM, ///< t_symbol pointer - A_OBJ, ///< t_object pointer (for argtype lists; passes the value of sym) - A_DEFLONG, ///< long but defaults to zero - A_DEFFLOAT, ///< float, but defaults to zero - A_DEFSYM, ///< symbol, defaults to "" - A_GIMME, ///< request that args be passed as an array, the routine will check the types itself. - A_CANT, ///< cannot typecheck args - A_SEMI, ///< semicolon - A_COMMA, ///< comma - A_DOLLAR, ///< dollar - A_DOLLSYM, ///< dollar - A_GIMMEBACK, ///< request that args be passed as an array, the routine will check the types itself. can return atom value in final atom ptr arg. function returns long error code 0 = no err. see gimmeback_meth typedef - - A_DEFER = 0x41, ///< A special signature for declaring methods. This is like A_GIMME, but the call is deferred. - A_USURP = 0x42, ///< A special signature for declaring methods. This is like A_GIMME, but the call is deferred and multiple calls within one servicing of the queue are filtered down to one call. - A_DEFER_LOW = 0x43, ///< A special signature for declaring methods. This is like A_GIMME, but the call is deferref to the back of the queue. - A_USURP_LOW = 0x44 ///< A special signature for declaring methods. This is like A_GIMME, but the call is deferred to the back of the queue and multiple calls within one servicing of the queue are filtered down to one call. -} e_max_atomtypes; - - -/** Defines the largest possible string size for an atom - @ingroup atom */ -#define ATOM_MAX_STRLEN (32768) - -/** Union for packing any of the datum defined in #e_max_atomtypes. - @ingroup atom -*/ -union word -{ - t_atom_long w_long; ///< long integer - t_atom_float w_float; ///< 32-bit float - struct symbol *w_sym; ///< pointer to a symbol in the Max symbol table - struct object *w_obj; ///< pointer to a #t_object or other generic pointer -}; - - -/** An atom is a typed datum. - @ingroup atom -*/ -typedef struct atom // and an atom which is a typed datum -{ - short a_type; - union word a_w; -} t_atom; - -#ifdef C74_DEFINE_DEPRECATED_TYPES -C74_DEPRECATED( typedef struct atom Atom ); -#endif - -/** Function pointer type for methods with no arguments. - @ingroup datatypes -*/ -typedef void *(*zero_meth)(void *x); - - -/** Function pointer type for methods with a single argument. - @ingroup datatypes -*/ -typedef void *(*one_meth)(void *x, void *z); - - -/** Function pointer type for methods with two arguments. - @ingroup datatypes -*/ -typedef void *(*two_meth)(void *x, void *z, void *a); - - -/** Function pointer type for methods that pass back a result value through the last parameter as a #t_atom, - and return an error. - @ingroup datatypes -*/ -typedef long *(*gimmeback_meth)(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); - - - -// legacy macros... - -#define ob_messlist(x) (((struct object *)(x))->o_messlist - 1) -#define ob_class(x) ((struct maxclass *) \ - (((struct object *)(x))->o_messlist[-1].m_sym)) -#define ob_name(x) (ob_class(x)->c_sym->s_name) -#define ob_sym(x) (ob_class(x)->c_sym) -#define ob_filename(x) (ob_class(x)->c_filename->s_name) -#define ob_filesym(x) (ob_class(x)->c_filename) -#define OB_MESS0(x, y) (CALL_METHOD(getfn((struct object *)x, y), (struct object *)x)) -#define mess0 OB_MESS0 -// #define OB_MESS1(x, y, z1) (*(getfn((struct object *)x, y)))((struct object *)x, z1) -#define OB_MESS1(x, y, z1) (CALL_METHOD(getfn((struct object *)x, y), (struct object *)x, z1)) -#define mess1 OB_MESS1 -//#define OB_MESS2(x, y, z1,z2) (*(getfn((struct object *)x, y)))((struct object *)x, z1,z2) -#define OB_MESS2(x, y, z1,z2) (CALL_METHOD((getfn((struct object *)x, y)), (struct object *)x, z1, z2)) -#define mess2 OB_MESS2 -#define mess3(x, y, z1,z2,z3) (CALL_METHOD(getfn((struct object *)x, y), x, z1, z2, z3)) -#define mess4(x, y, z1,z2,z3,z4) (CALL_METHOD(getfn((struct object *)x, y), x, z1,z2,z3,z4)) -#define mess5(x, y, z1,z2,z3,z4,z5) (CALL_METHOD(getfn((struct object *)x, y), x, z1,z2,z3,z4,z5)) -#define floatmess1(x,y,z1) ((floatmeth)(*(getfn((struct object *)x, y))))((struct object *)x, z1) -#define NIL ((void *)0) -#define A_SETCOMMA(ap) ((ap)->a_type = A_COMMA) -#define A_SETSEMI(ap) ((ap)->a_type = A_SEMI) -#define A_SETSYM(ap, x) ((ap)->a_type = A_SYM, (ap)->a_w.w_sym = (x)) -#define A_SETOBJ(ap, x) ((ap)->a_type = A_OBJ, (ap)->a_w.w_obj = (x)) -#define A_SETLONG(ap, x) ((ap)->a_type = A_LONG, (ap)->a_w.w_long = (x)) -#define A_SETFLOAT(ap, x) ((ap)->a_type = A_FLOAT, (ap)->a_w.w_float = (x)) -#define A_SETDOLLAR(ap, x) ((ap)->a_type = A_DOLLAR, (ap)->a_w.w_long = (x)) -#define A_SETDOLLSYM(ap,x) ((ap)->a_type = A_DOLLSYM, (ap)->a_w.w_sym = (x)) - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif /* _EXT_MESS_H_ */ diff --git a/source/c74support/max-includes/ext_midi.h b/source/c74support/max-includes/ext_midi.h deleted file mode 100755 index f8e468d0..00000000 --- a/source/c74support/max-includes/ext_midi.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_MIDI_H_ -#define _EXT_MIDI_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_MIDI_H_ */ diff --git a/source/c74support/max-includes/ext_numc.h b/source/c74support/max-includes/ext_numc.h deleted file mode 100755 index 12d17565..00000000 --- a/source/c74support/max-includes/ext_numc.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_NUMC_H_ -#define _EXT_NUMC_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_NUMC_H_ */ diff --git a/source/c74support/max-includes/ext_obex.h b/source/c74support/max-includes/ext_obex.h deleted file mode 100644 index 276bd2b4..00000000 --- a/source/c74support/max-includes/ext_obex.h +++ /dev/null @@ -1,2463 +0,0 @@ - -#ifndef _EXT_OBEX_H_ -#define _EXT_OBEX_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#include "ext_preprocessor.h" -#include "ext_hashtab.h" -#include "ext_dictionary.h" - -BEGIN_USING_C_LINKAGE - -#ifndef TRUE -#define TRUE 1 -#endif -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef C74_USE_COMMON_SYMBOLS -/** The namespace for all Max object classes which can be instantiated in a box, i.e. in a patcher. - @ingroup class */ -#define CLASS_BOX gensym("box") - -/** A namespace for creating hidden or internal object classes which are not a direct part of the user - creating patcher. - @ingroup class */ -#define CLASS_NOBOX gensym("nobox") - -#else -#define CLASS_BOX _sym_box -#define CLASS_NOBOX _sym_nobox -#endif - -/** Attribute flags - @ingroup attr - - @remark To create a readonly attribute, for example, - you should pass ATTR_SET_OPAQUE or ATTR_SET_OPAQUE_USER as a flag when you create your attribute. -*/ -typedef enum { - ATTR_FLAGS_NONE = 0x0000000, ///< No flags - ATTR_GET_OPAQUE = 0x00000001, ///< The attribute cannot be queried by either max message when used inside of a CLASS_BOX object, nor from C code. - ATTR_SET_OPAQUE = 0x00000002, ///< The attribute cannot be set by either max message when used inside of a CLASS_BOX object, nor from C code. - ATTR_GET_OPAQUE_USER = 0x00000100, ///< The attribute cannot be queried by max message when used inside of a CLASS_BOX object, but can be queried from C code. - ATTR_SET_OPAQUE_USER = 0x00000200, ///< The attribute cannot be set by max message when used inside of a CLASS_BOX object, but can be set from C code. - ATTR_GET_DEFER = 0x00010000, // Placeholder for potential future functionality: Any attribute queries will be called through a defer(). - ATTR_GET_USURP = 0x00020000, // Placeholder for potential future functionality: Any calls to query the attribute will be called through the equivalent of a defer(), repeated calls will be ignored until the getter is actually run. - ATTR_GET_DEFER_LOW = 0x00040000, // Placeholder for potential future functionality: Any attribute queries will be called through a defer_low(). - ATTR_GET_USURP_LOW = 0x00080000, // Placeholder for potential future functionality: Any calls to query the attribute will be called through the equivalent of a defer_low(), repeated calls will be ignored until the getter is actually run. - ATTR_SET_DEFER = 0x01000000, // Placeholder for potential future functionality: The attribute setter will be called through a defer(). - ATTR_SET_USURP = 0x02000000, // Placeholder for potential future functionality: Any calls to set the attribute will be called through the equivalent of a defer_low(), repeated calls will be ignored until the setter is actually run. - ATTR_SET_DEFER_LOW = 0x04000000, // Placeholder for potential future functionality: The attribute setter will be called through a defer_low() - ATTR_SET_USURP_LOW = 0x08000000, // Placeholder for potential future functionality: Any calls to set the attribute will be called through the equivalent of a defer_low(), repeated calls will be ignored until the setter is actually run. - ATTR_IS_JBOXATTR = 0x10000000, // a common jbox attr - ATTR_DIRTY = 0x20000000 // attr has been changed from its default value -} e_max_attrflags; - -/** Flags used in linklist and hashtab objects - @ingroup datastore */ -typedef enum { - OBJ_FLAG_OBJ = 0x00000000, ///< free using object_free() - OBJ_FLAG_REF = 0x00000001, ///< don't free - OBJ_FLAG_DATA = 0x00000002, ///< don't free data or call method - OBJ_FLAG_MEMORY = 0x00000004, ///< don't call method, and when freeing use sysmem_freeptr() instead of freeobject - OBJ_FLAG_SILENT = 0x00000100, ///< don't notify when modified - OBJ_FLAG_INHERITABLE = 0x00000200, ///< obexprototype entry will be inherited by subpatchers and abstractions - OBJ_FLAG_ITERATING = 0x00001000, ///< used by linklist to signal when is inside iteration - OBJ_FLAG_CLONE = 0x00002000, ///< object should be cloned when added to data structure (i.e. dictionary) - OBJ_FLAG_DANGER = 0x20000000, ///< context-dependent flag, used internally for hashtable code - OBJ_FLAG_DEBUG = 0x40000000 ///< context-dependent flag, used internally for linklist debug code -} e_max_datastore_flags; - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#define C74_SPLAT_PREPARE(splat_prev_arg) va_list splat_va_args; \ -void *sp_arg1, *sp_arg2, *sp_arg3, *sp_arg4, *sp_arg5, *sp_arg6, *sp_arg7, *sp_arg8; \ -va_start(splat_va_args, splat_prev_arg); \ -sp_arg1 = va_arg(splat_va_args, void*); \ -sp_arg2 = va_arg(splat_va_args, void*); \ -sp_arg3 = va_arg(splat_va_args, void*); \ -sp_arg4 = va_arg(splat_va_args, void*); \ -sp_arg5 = va_arg(splat_va_args, void*); \ -sp_arg6 = va_arg(splat_va_args, void*); \ -sp_arg7 = va_arg(splat_va_args, void*); \ -sp_arg8 = va_arg(splat_va_args, void*); -#define C74_SPLAT_PASS sp_arg1, sp_arg2, sp_arg3, sp_arg4, sp_arg5, sp_arg6, sp_arg7, sp_arg8 - -#define C74_SPLAT_CLEANUP va_end(splat_va_args); - -/** Common attr struct. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup attr -*/ -typedef struct _attr -{ - t_object ob; - t_symbol *name; - t_symbol *type; - long flags; //public/private get/set methods - method get; //override default get method - method set; //override default set method - void *filterget; //filterobject for get method - void *filterset; //filterobject for set method - void *reserved; //for future use -} t_attr; - -/** macros for settings and getting attribute dirty flag */ - -#define ATTR_SET_DIRTY(x) (((t_attr *)(x))->flags |= ATTR_DIRTY) -#define ATTR_UNSET_DIRTY(x) (((t_attr *)(x))->flags &= ~ATTR_DIRTY) -#define ATTR_GET_DIRTY(x) (((t_attr *)(x))->flags & ATTR_DIRTY) - -/** - A method that always returns true. - @ingroup misc -*/ -t_atom_long method_true(void *x); - - -/** - A method that always returns false. - @ingroup misc -*/ -t_atom_long method_false(void *x); - - -#ifndef class_new -/** - Initializes a class by informing Max of its name, instance creation and free functions, size and argument types. - Developers wishing to use obex class features (attributes, etc.) must use class_new() - instead of the traditional setup() function. - - @ingroup class - - @param name The class's name, as a C-string - @param mnew The instance creation function - @param mfree The instance free function - @param size The size of the object's data structure in bytes. - Usually you use the C sizeof operator here. - @param mmenu Obsolete - pass NULL. - In Max 4 this was a function pointer for UI objects called when the user created a new object of the - class from the Patch window's palette. - @param type A standard Max type list as explained in Chapter 3 - of the Writing Externals in Max document (in the Max SDK). - The final argument of the type list should be a 0. - Generally, obex objects have a single type argument, - #A_GIMME, followed by a 0. - - @return This function returns the class pointer for the new object class. - This pointer is used by numerous other functions and should be - stored in a global or static variable. -*/ -t_class *class_new(C74_CONST char *name, C74_CONST method mnew, C74_CONST method mfree, long size, C74_CONST method mmenu, short type, ...); -#endif - - -/** - Frees a previously defined object class. This function is not typically used by external developers. - - @ingroup class - @param c The class pointer - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err class_free(t_class *c); - - -#ifndef class_register -/** - Registers a previously defined object class. This function is required, and should be called at the end of main(). - - @ingroup class - - @param name_space The desired class's name space. Typically, either the - constant #CLASS_BOX, for obex classes which can - instantiate inside of a Max patcher (e.g. boxes, UI objects, - etc.), or the constant #CLASS_NOBOX, for classes - which will only be used internally. Developers can define - their own name spaces as well, but this functionality is - currently undocumented. - @param c The class pointer - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err class_register(t_symbol *name_space, t_class *c); -#endif - - -/** - Registers an alias for a previously defined object class. - - @ingroup class - @param c The class pointer - @param aliasname A symbol who's name will become an alias for the given class - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err class_alias(t_class *c, t_symbol *aliasname); - -// function: class_copy -/** - * Duplicates a previously registered object class, and registers a copy of this class. - * - * @ingroup classmod - * - * @param src_name_space The source class's name space. - * @param src_classname The source class's class name. - * @param dst_name_space The copied class's name space. - * @param dst_classname The copied class's class name. - * - * @return This function returns the error code MAX_ERR_NONE if successful, - * or one of the other error codes defined in "ext_obex.h" if unsuccessful. - * - */ -t_max_err class_copy(t_symbol *src_name_space, t_symbol *src_classname, t_symbol *dst_name_space, t_symbol *dst_classname); - - -#ifndef class_addmethod -/** - Adds a method to a previously defined object class. - - @ingroup class - - @param c The class pointer - @param m Function to be called when the method is invoked - @param name C-string defining the message (message selector) - @param ... One or more integers specifying the arguments to the message, - in the standard Max type list format (see Chapter 3 of the - Writing Externals in Max document for more information). - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark The class_addmethod() function works essentially like the - traditional addmess() function, adding the function pointed to - by m, to respond to the message string name in the - leftmost inlet of the object. -*/ -t_max_err class_addmethod(t_class *c, C74_CONST method m, C74_CONST char *name, ...); -#endif - - -/** - Adds an attribute to a previously defined object class. - - @ingroup class - - @param c The class pointer - @param attr The attribute to add. The attribute will be a pointer returned - by attribute_new(), attr_offset_new() or - attr_offset_array_new(). - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err class_addattr(t_class *c,t_object *attr); - - -// private -t_max_err class_addadornment(t_class *c,t_object *o); - - -// private -void *class_adornment_get(t_class *c,t_symbol *classname); - - -/** - Retrieves the name of a class, given the class's pointer. - - @ingroup class - @param c The class pointer - @return If successful, this function returns the name of the class as a t_symbol *. -*/ -t_symbol *class_nameget(t_class *c); - - -/** - Finds the class pointer for a class, given the class's namespace and name. - - @ingroup class - - @param name_space The desired class's name space. Typically, either the - constant #CLASS_BOX, for obex classes which can - instantiate inside of a Max patcher (e.g. boxes, UI objects, - etc.), or the constant #CLASS_NOBOX, for classes - which will only be used internally. Developers can define - their own name spaces as well, but this functionality is - currently undocumented. - @param classname The name of the class to be looked up - - @return If successful, this function returns the class's data pointer. Otherwise, it returns NULL. -*/ -t_class *class_findbyname(t_symbol *name_space, t_symbol *classname); - - -/** - Finds the class pointer for a class, given the class's namespace and name. - - @ingroup class - - @param name_space The desired class's name space. Typically, either the - constant #CLASS_BOX, for obex classes which can - instantiate inside of a Max patcher (e.g. boxes, UI objects, - etc.), or the constant #CLASS_NOBOX, for classes - which will only be used internally. Developers can define - their own name spaces as well, but this functionality is - currently undocumented. - @param classname The name of the class to be looked up (case free) - - @return If successful, this function returns the class's data pointer. Otherwise, it returns NULL. -*/ -t_class *class_findbyname_casefree(t_symbol *name_space, t_symbol *classname); - - -/** - Wraps user gettable attributes with a method that gets the values and sends out dumpout outlet. - - @ingroup class - @param c The class pointer - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err class_dumpout_wrap(t_class *c); - -t_class *class_getifloaded(t_symbol *name_space, t_symbol *classname); -t_class *class_getifloaded_casefree(t_symbol *name_space, t_symbol *classname); - - -/** - Determines if a particular object is an instance of a given class. - - @ingroup obj - - @param x The object to test - @param name The name of the class to test this object against - @return This function returns 1 if the object is an instance of the named class. Otherwise, 0 is returned. - @remark For instance, to determine whether an unknown object pointer is a pointer to a print object, one would call: - - @code - long isprint = object_classname_compare(x, gensym("print")); - @endcode -*/ -long object_classname_compare(void *x, t_symbol *name); - -t_hashtab *reg_object_namespace_lookup(t_symbol *name_space); -method class_method(t_class *x, t_symbol *methodname); -t_messlist *class_mess(t_class *x, t_symbol *methodname); -t_messlist *object_mess(t_object *x, t_symbol *methodname); -method class_attr_method(t_class *x, t_symbol *methodname, void **attr, long *get); -void *class_attr_get(t_class *x, t_symbol *attrname); -t_max_err class_extra_store(t_class *x,t_symbol *s,t_object *o); -t_max_err class_extra_storeflags(t_class *x,t_symbol *s,t_object *o,long flags); -void *class_extra_lookup(t_class *x,t_symbol *s); -t_max_err class_addtypedwrapper(t_class *x, method m, char *name, ...); -t_messlist *class_typedwrapper_get(t_class *x, t_symbol *s); -t_max_err object_addtypedwrapper(t_object *x, method m, char *name, ...); -t_messlist *object_typedwrapper_get(t_object *x, t_symbol *s); -t_hashtab *class_namespace_fromsym(t_symbol *name_space); -t_max_err class_namespace_getclassnames(t_symbol *name_space, long *kc, t_symbol ***kv); -t_max_err class_setpath(t_class *x, short vol); -short class_getpath(t_class *x); - - -#ifndef object_alloc -/** - Allocates the memory for an instance of an object class and initialize its object header. - It is used like the traditional function newobject, inside of an object's new method, but its use is required with obex-class objects. - - @ingroup obj - @param c The class pointer, returned by class_new() - @return This function returns a new instance of an object class if successful, or NULL if unsuccessful. -*/ -void *object_alloc(t_class *c); -#endif - - -/** - Allocates the memory for an instance of an object class and initialize its object header internal to Max. - It is used similarly to the traditional function newinstance(), but its use is required with obex-class objects. - - @ingroup obj - - @param name_space The desired object's name space. Typically, either the - constant #CLASS_BOX, for obex classes which can - instantiate inside of a Max patcher (e.g. boxes, UI objects, - etc.), or the constant #CLASS_NOBOX, for classes - which will only be used internally. Developers can define - their own name spaces as well, but this functionality is - currently undocumented. - @param classname The name of the class of the object to be created - @param ... Any arguments expected by the object class being instantiated - - @return This function returns a new instance of the object class if successful, or NULL if unsuccessful. -*/ -void *object_new(t_symbol *name_space, t_symbol *classname, ...); - -#ifdef C74_X64 -#define object_new(...) C74_VARFUN(object_new_imp, __VA_ARGS__) -#endif - -void *object_new_imp(void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8, void *p9, void *p10); - - -/** - Allocates the memory for an instance of an object class and initialize its object header internal to Max. - It is used similarly to the traditional function newinstance(), but its use is required with obex-class objects. - The object_new_typed() function differs from object_new() by its use of an atom list for object arguments—in this way, - it more resembles the effect of typing something into an object box from the Max interface. - - @ingroup obj - - @param name_space The desired object's name space. Typically, either the - constant #CLASS_BOX, for obex classes which can - instantiate inside of a Max patcher (e.g. boxes, UI objects, - etc.), or the constant #CLASS_NOBOX, for classes - which will only be used internally. Developers can define - their own name spaces as well, but this functionality is - currently undocumented. - @param classname The name of the class of the object to be created - @param ac Count of arguments in av - @param av Array of t_atoms; arguments to the class's instance creation function. - - @return This function returns a new instance of the object class if successful, or NULL if unsuccessful. -*/ -void *object_new_typed(t_symbol *name_space, t_symbol *classname, long ac, t_atom *av); - -void *object_new_menufun(t_symbol *name_space, t_symbol *classname, void *p, long h, long v, long f); - - -#ifndef object_free -/** - Call the free function and release the memory for an instance of an internal object class previously instantiated using object_new(), - object_new_typed() or other new-style object constructor functions (e.g. hashtab_new()). - It is, at the time of this writing, a wrapper for the traditional function freeobject(), but its use is suggested with obex-class objects. - - @ingroup obj - @param x The pointer to the object to be freed. - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_free(void *x); -#endif - - -/** - Sends an untyped message to an object. - There are some caveats to its use, however, particularly for 64-bit architectures. - object_method_direct() should be used in cases where floating-point or other non-integer types are being passed on the stack or in return values. - - @ingroup obj - - @param x The object that will receive the message - @param s The message selector - @param ... Any arguments to the message - - @return If the receiver object can respond to the message, object_method() returns the result. Otherwise, the function will return 0. - - @remark Example: To send the message bang to the object bang_me: - @code - void *bang_result; - bang_result = object_method(bang_me, gensym("bang")); - @endcode -*/ - -void *object_method(void *x, t_symbol *s, ...); - -#ifdef C74_X64 -#define object_method(...) C74_VARFUN(object_method_imp, __VA_ARGS__) -#endif - -void *object_method_imp(void *x, void *sym, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); - -/** - do a strongly typed direct call to a method of an object - - @ingroup obj - - - @param rt The type of the return value (double, void*, void...) - @param sig the actual signature of the function in brackets ! - something like (t_object *, double, long) - @param x The object where the method we want to call will be looked for, - it will also always be the first argument to the function call - @param s The message selector - @param ... Any arguments to the call, the first one will always be the object (x) - - @return will return anything that the called function returns, typed by (rt) - - @remark Example: To call the function identified by getcolorat on the object pwindow - which is declared like: - t_jrgba pwindow_getcolorat(t_object *window, double x, double y) - @code - double x = 44.73; - double y = 79.21; - t_object *pwindow; - t_jrgba result = object_method_direct(t_jrgba, (t_object *, double, double), pwindow, gensym("getcolorat"), x, y); - @endcode -*/ - -#define object_method_direct(rt, sig, x, s, ...) ((rt (*)sig)object_method_direct_getmethod((t_object *)x, s))(object_method_direct_getobject((t_object *)x, s), __VA_ARGS__) - -method object_method_direct_getmethod(t_object *x, t_symbol *sym); -void *object_method_direct_getobject(t_object *x, t_symbol *sym); - -/** - Sends a type-checked message to an object. - - @ingroup obj - - @param x The object that will receive the message - @param s The message selector - @param ac Count of message arguments in av - @param av Array of t_atoms; the message arguments - @param rv Return value of function, if available - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark If the receiver object can respond to the message, object_method_typed() returns the result in rv. Otherwise, rv will contain an #A_NOTHING atom. -*/ -t_max_err object_method_typed(void *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); - - -/** - Currently undocumented. - - @ingroup obj - - @param x The object that will receive the message - @param mp Undocumented - @param s The message selector - @param ac Count of message arguments in av - @param av Array of t_atoms; the message arguments - @param rv Return value of function, if available - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark If the receiver object can respond to the message, object_method_typedfun() returns the result in rv. Otherwise, rv will contain an #A_NOTHING atom. -*/ -t_max_err object_method_typedfun(void *x, t_messlist *mp, t_symbol *s, long ac, t_atom *av, t_atom *rv); - - -/** - Retrieves an object's #method for a particular message selector. - - @ingroup obj - @param x The object whose method is being queried - @param s The message selector - @return This function returns the #method if successful, or method_false() if unsuccessful. -*/ -method object_getmethod(void *x, t_symbol *s); - - -/** - Retrieves an object instance's class name - - @ingroup obj - @param x The object instance whose class name is being queried - @return The classname, or NULL if unsuccessful. -*/ -t_symbol *object_classname(void *x); - - -t_symbol *object_namespace(t_object *x); // return the namespace this object's class is part of - - -t_symbol *class_namespace(t_class *c); // return the namespace the class is part of - - -/** - Registers an object in a namespace. - - @ingroup obj - - @param name_space The namespace in which to register the object. The namespace can be any symbol. - If the namespace does not already exist, it is created automatically. - @param s The name of the object in the namespace. This name will be - used by other objects to attach and detach from the registered object. - @param x The object to register - - @return The function returns a pointer to the registered object. Under some - circumstances, object_register will duplicate the object, - and return a pointer to the duplicate—the developer should not assume - that the pointer passed in is the same pointer that has been registered. - To be safe, the returned pointer should be stored and used with the - bject_unregister() function. - - @remark You should not register an object if the object is a UI object. - UI objects automatically register and attach to themselves in jbox_new(). -*/ -void *object_register(t_symbol *name_space, t_symbol *s, void *x); - - -t_symbol *object_register_unique(t_symbol *name_space, t_symbol *s, void *x); - - -/** - Determines a registered object's pointer, given its namespace and name. - - @ingroup obj - - @param name_space The namespace of the registered object - @param s The name of the registered object in the namespace - - @return This function returns the pointer of the registered object, - if successful, or NULL, if unsuccessful. -*/ -void *object_findregistered(t_symbol *name_space, t_symbol *s); - - -/** - Determines the namespace and/or name of a registered object, given the object's pointer. - - @ingroup obj - - @param name_space Pointer to a t_symbol *, to receive the namespace of the registered object - @param s Pointer to a t_symbol *, to receive the name of the registered object within the namespace - @param x Pointer to the registered object - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_findregisteredbyptr(t_symbol **name_space, t_symbol **s, void *x); - -/** - Returns all registered names in a namespace - - @ingroup obj - - @param name_space Pointer to a t_symbol, the namespace to lookup names in - @param namecount Pointer to a long, to receive the count of the registered names within the namespace - @param names Pointer to a t_symbol **, to receive the allocated names. This pointer should be freed after use - - @return This function returns the error code MAX_ERR_NONE if successful, - or one of the other error codes defined in "ext_obex.h" if unsuccessful. -*/ -t_max_err object_register_getnames(t_symbol *name_space, long *namecount, t_symbol ***names); - -/** - Attaches a client to a registered object. - Once attached, the object will receive notifications sent from the registered object (via the object_notify() function), - if it has a notify method defined and implemented. - - @ingroup obj - - @param name_space The namespace of the registered object. - This should be the same value used in object_register() to register the object. - If you don't know the registered object's namespace, the object_findregisteredbyptr() function can be used to determine it. - @param s The name of the registered object in the namespace. - If you don't know the name of the registered object, the object_findregisteredbyptr() function can be used to determine it. - @param x The client object to attach. Generally, this is the pointer to your Max object. - - @return This function returns a pointer to the registered object (to the object - referred to by the combination of name_space and s - arguments) if successful, or NULL if unsuccessful. - - @remark You should not attach an object to itself if the object is a UI object. - UI objects automatically register and attach to themselves in jbox_new(). - - @see object_notify() - @see object_detach() - @see object_attach_byptr() - @see object_register() -*/ -void *object_attach(t_symbol *name_space, t_symbol *s, void *x); - - -/** - Detach a client from a registered object. - - @ingroup obj - - @param name_space The namespace of the registered object. - This should be the same value used in object_register() to register the object. - If you don't know the registered object's namespace, the object_findregisteredbyptr() function can be used to determine it. - @param s The name of the registered object in the namespace. - If you don't know the name of the registered object, the object_findregisteredbyptr() function can be used to determine it. - @param x The client object to attach. Generally, this is the pointer to your Max object. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_detach(t_symbol *name_space, t_symbol *s, void *x); - - -/** - Attaches a client to a registered object. - Unlike object_attach(), the client is specified by providing a pointer to that object - rather than the registered name of that object. - - Once attached, the object will receive notifications sent from the registered object (via the object_notify() function), - if it has a notify method defined and implemented. - - @ingroup obj - @param x The attaching client object. Generally, this is the pointer to your Max object. - @param registeredobject A pointer to the registered object to which you wish to attach. - @return A Max error code. - - @remark You should not attach an object to itself if the object is a UI object. - UI objects automatically register and attach to themselves in jbox_new(). - - @see object_notify() - @see object_detach() - @see object_attach() - @see object_register() - @see object_attach_byptr_register() -*/ -t_max_err object_attach_byptr(void *x, void *registeredobject); - - -/** - A convenience function wrapping object_register() and object_attach_byptr(). - - @ingroup obj - - @param x The attaching client object. Generally, this is the pointer to your Max object. - @param object_to_attach A pointer to the object to which you wish to registered and then to which to attach. - @param reg_name_space The namespace in which to register the object_to_attach. - @return A Max error code. - - @see object_register() - @see object_attach_byptr() -*/ -t_max_err object_attach_byptr_register(void *x, void *object_to_attach, t_symbol *reg_name_space); - - -/** - Detach a client from a registered object. - - @ingroup obj - @param x The attaching client object. Generally, this is the pointer to your Max object. - @param registeredobject The object from which to detach. - @return A Max error code. - - @see object_detach() - @see object_attach_byptr() -*/ -t_max_err object_detach_byptr(void *x, void *registeredobject); - -// function: object_subscribe -/** - * Subscribes a client to wait for an object to register. Upon registration, the object will attach. Once attached, the object will receive notifications sent from the registered object (via the object_notify function), if it has a notify method defined and implemented. See below for more information, in the reference for object_notify. - * - * @ingroup obj - * - * @param name_space The namespace of the registered object. This should be the - * same value used in object_register to register the - * object. If you don't know the registered object's namespace, - * the object_findregisteredbyptr function can be - * used to determine it. - * @param s The name of the registered object in the namespace. If you - * don't know the name of the registered object, the - * object_findregisteredbyptr function can be used to - * determine it. - * @param classname The classname of the registered object in the namespace to - * use as a filter. If NULL, then it will attach to any class - * of object. - * @param x The client object to attach. Generally, this is the pointer to your Max object. - * - * @return This function returns a pointer to the object if registered (to the object - * referred to by the combination of name_space and s - * arguments) if successful, or NULL if the object is not yet registered. - * - */ -void *object_subscribe(t_symbol *name_space, t_symbol *s, t_symbol *classname, void *x); - -// function: object_unsubscribe -/** - * Unsubscribe a client from a registered object, detaching if the object is registered. - * - * @ingroup obj - * - * @param name_space The namespace of the registered object. This should be the - * same value used in object_register to register the - * object. If you don't know the registered object's namespace, - * the object_findregisteredbyptr function can be - * used to determine it. - * @param s The name of the registered object in the namespace. If you - * don't know the name of the registered object, the - * object_findregisteredbyptr function can be used to - * determine it. - * @param classname The classname of the registered object in the namespace to - * use as a filter. Currently unused for unsubscribe. - * @param x The client object to detach. Generally, this is the pointer to your Max object. - * - * @return This function returns the error code MAX_ERR_NONE if successful, - * or one of the other error codes defined in "ext_obex.h" if unsuccessful. - * - */ -t_max_err object_unsubscribe(t_symbol *name_space, t_symbol *s, t_symbol *classname, void *x); - - -/** - Removes a registered object from a namespace. - - @ingroup obj - @param x The object to unregister. This should be the pointer returned from the object_register() function. - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_unregister(void *x); - -/** - Returns all registered names in a namespace - - @ingroup obj - - @param name_space Pointer to a t_symbol, the namespace to lookup names in - @param namecount Pointer to a long, to receive the count of the registered names within the namespace - @param names Pointer to a t_symbol **, to receive the allocated names. This pointer should be freed after use - - @return This function returns the error code MAX_ERR_NONE if successful, - or one of the other error codes defined in "ext_obex.h" if unsuccessful. -*/ -t_max_err object_register_getnames(t_symbol *name_space, long *namecount, t_symbol ***names); - - -/** - Broadcast a message (with an optional argument) from a registered object to any attached client objects. - - @ingroup obj - - @param x Pointer to the registered object - @param s The message to send - @param data An optional argument which will be passed with the message. - Sets this argument to NULL if it will be unused. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark In order for client objects to receive notifications, they must define and implement a special method, notify, like so: - @code - class_addmethod(c, (method)myobject_notify, "notify", A_CANT, 0); - @endcode - - @remark The notify method should be prototyped as: - @code - void myobject_notify(t_myobject *x, t_symbol *s, t_symbol *msg, void *sender, void *data); - @endcode - where - x is the pointer to the receiving object, - s is the name of the sending (registered) object in its namespace, - msg is the sent message, - sender is the pointer to the sending object, and - data is an optional argument sent with the message. - This value corresponds to the data argument in the object_notify() method. -*/ -t_max_err object_notify(void *x, t_symbol *s, void *data); - -// currently for internal use only -t_symbol *reg_object_singlesym(t_symbol *name_space, t_symbol *s); -t_symbol *reg_object_singlesymbyptr(t_object *x); -t_max_err reg_object_singlesym_split(t_symbol *singlesym, t_symbol **name_space, t_symbol **objname); - - -/** - Determines the class of a given object. - - @ingroup obj - @param x The object to test - @return This function returns the t_class * of the object's class, if successful, or NULL, if unsuccessful. -*/ -t_class *object_class(void *x); - - -/** - Retrieves the value of an object which supports the getvalueof/setvalueof interface. See part 2 of the pattr SDK for more information on this interface. - - @ingroup obj - - @param x The object whose value is of interest - @param ac Pointer to a long variable to receive the count of arguments in av. The long variable itself should be set to 0 previous to calling this function. - @param av Pointer to a t_atom *, to receive object data. The t_atom * itself should be set to NULL previous to calling this function. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark Calling the object_getvalueof() function allocates memory for any data it returns. - It is the developer's responsibility to free it, using the freebytes() function. - - @remark Developers wishing to design objects which will support this function being called on them must define and implement a special method, getvalueof, like so: - @code - class_addmethod(c, (method)myobject_getvalueof, "getvalueof", A_CANT, 0); - @endcode - - @remark The getvalueof method should be prototyped as: - @code - t_max_err myobject_getvalueof(t_myobject *x, long *ac, t_atom **av); - @endcode - - @remark And implemented, generally, as: - @code - t_max_err myobj_getvalueof(t_myobj *x, long *ac, t_atom **av) - { - if (ac && av) { - if (*ac && *av) { - // memory has been passed in; use it. - } else { - // allocate enough memory for your data - *av = (t_atom *)getbytes(sizeof(t_atom)); - } - *ac = 1; // our data is a single floating point value - atom_setfloat(*av, x->objvalue); - } - return MAX_ERR_NONE; - } - - @remark By convention, and to permit the interoperability of objects using the obex API, - developers should allocate memory in their getvalueof methods using the getbytes() function. - @endcode -*/ -t_max_err object_getvalueof(void *x, long *ac, t_atom **av); - - -/** - Sets the value of an object which supports the getvalueof/setvalueof interface. - - @ingroup obj - - @param x The object whose value is of interest - @param ac The count of arguments in av - @param av Array of t_atoms; the new desired data for the object - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark Developers wishing to design objects which will support this function being called on them must define and implement a special method, setvalueof, like so: - @code - class_addmethod(c, (method)myobject_setvalueof, "setvalueof", A_CANT, 0); - @endcode - - @remark The setvalueof method should be prototyped as: - @code - t_max_err myobject_setvalueof(t_myobject *x, long *ac, t_atom **av); - @endcode - - @remark And implemented, generally, as: - @code - t_max_err myobject_setvalueof(t_myobject *x, long ac, t_atom *av) - { - if (ac && av) { - // simulate receipt of a float value - myobject_float(x, atom_getfloat(av)); - } - return MAX_ERR_NONE; - } - @endcode -*/ -t_max_err object_setvalueof(void *x, long ac, t_atom *av); - -/** - Returns the pointer to an attribute, given its name. - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param attrname The attribute's name - - @return This function returns a pointer to the attribute, if successful, or NULL, if unsuccessful. -*/ -void *object_attr_get(void *x, t_symbol *attrname); - - -/** - Returns the method of an attribute's get or set function, as well as a pointer to the attribute itself, from a message name. - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param methodname The Max message used to call the attribute's get or set function. For example, gensym("mode") or gensym("getthresh"). - @param attr A pointer to a void *, which will be set to the attribute pointer upon successful completion of the function - @param get A pointer to a long variable, which will be set to 1 upon successful completion of the function, - if the queried method corresponds to the get function of the attribute. - - @return This function returns the requested method, if successful, or NULL, if unsuccessful. -*/ -method object_attr_method(void *x, t_symbol *methodname, void **attr, long *get); - - -/** - Determines if an object's attribute can be set from the Max interface (i.e. if its #ATTR_SET_OPAQUE_USER flag is set). - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param s The attribute's name - - @return This function returns 1 if the attribute can be set from the Max interface. Otherwise, it returns 0. -*/ -long object_attr_usercanset(void *x,t_symbol *s); - - -/** - Determines if the value of an object's attribute can be queried from the Max interface (i.e. if its #ATTR_GET_OPAQUE_USER flag is set). - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param s The attribute's name - - @return This function returns 1 if the value of the attribute can be queried from the Max interface. Otherwise, it returns 0. -*/ -long object_attr_usercanget(void *x,t_symbol *s); - - -/** - Forces a specified object's attribute to send its value from the object's dumpout outlet in the Max interface. - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param s The attribute's name - @param argc Unused - @param argv Unused -*/ -void object_attr_getdump(void *x, t_symbol *s, long argc, t_atom *argv); - - -t_max_err object_attr_getvalueof(void *x, t_symbol *s, long *argc, t_atom **argv); - - -/** - Sets the value of an object's attribute. - - @ingroup attr - - @param x Pointer to the object whose attribute is of interest - @param s The attribute's name - @param argc The count of arguments in argv - @param argv Array of t_atoms; the new desired data for the attribute - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setvalueof(void *x, t_symbol *s, long argc, t_atom *argv); - - -// for internal use only -t_max_err object_attr_lock(t_object *x, t_symbol *s); -t_max_err object_attr_unlock(t_object *x, t_symbol *s); - -//object specific attributes(dynamically add/delete) - -/** - Attaches an attribute directly to an object. - - @ingroup attr - - @param x An object to which the attribute should be attached - @param attr The attribute's pointer—this should be a pointer returned from attribute_new(), attr_offset_new() or attr_offset_array_new(). - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_addattr(void *x, t_object *attr); - - -/** - Detach an attribute from an object that was previously attached with object_addattr(). - The function will also free all memory associated with the attribute. - If you only wish to detach the attribute, without freeing it, see the object_chuckattr() function. - - @ingroup attr - - @param x The object to which the attribute is attached - @param attrsym The attribute's name - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_deleteattr(void *x, t_symbol *attrsym); - - -/** - Detach an attribute from an object that was previously attached with object_addattr(). - This function will not free the attribute (use object_free() to do this manually). - - @ingroup attr - - @param x The object to which the attribute is attached - @param attrsym The attribute's name - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_chuckattr(void *x, t_symbol *attrsym); - - -// obex - -/** - Registers the byte-offset of the obex member of the class's data structure with the previously defined object class. - Use of this function is required for obex-class objects. It must be called from main(). - - @ingroup class - - @param c The class pointer - @param offset The byte-offset to the obex member of the object's data structure. - Conventionally, the macro #calcoffset is used to calculate the offset. -*/ -void class_obexoffset_set(t_class *c, long offset); - - -/** - Retrieves the byte-offset of the obex member of the class's data structure. - - @ingroup class - @param c The class pointer - @return This function returns the byte-offset of the obex member of the class's data structure. -*/ -long class_obexoffset_get(t_class *c); - - -/** - Retrieves the value of a data stored in the obex. - - @ingroup obj - - @param x The object pointer. This function should only be called on instantiated objects (i.e. in the new method or later), not directly on classes (i.e. in main()). - @param key The symbolic name for the data to be retrieved - @param val A pointer to a #t_object *, to be filled with the data retrieved from the obex. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark By default, pointers to the object's containing patcher and box objects are stored in the obex, under the keys '#P' and '#B', respectively. - To retrieve them, the developer could do something like the following: - @code - void post_containers(t_obexobj *x) - { - t_patcher *p; - t_box *b; - t_max_err err; - - err = object_obex_lookup(x, gensym("#P"), (t_object **)&p); - err = object_obex_lookup(x, gensym("#B"), (t_object **)&b); - - post("my patcher is located at 0x%X", p); - post("my box is located at 0x%X", b); - } - @endcode -*/ -t_max_err object_obex_lookup(void *x, t_symbol *key, t_object **val); -t_max_err object_obex_lookuplong(void *x, t_symbol *key, t_atom_long *val); -t_max_err object_obex_lookupsym(void *x, t_symbol *key, t_symbol **val); - -/** - Stores data in the object's obex. - - @ingroup obj - - @param x The object pointer. This function should only be called on instantiated objects (i.e. in the new method or later), not directly on classes (i.e. in main()). - @param key A symbolic name for the data to be stored - @param val A #t_object *, to be stored in the obex, referenced under the key. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark Most developers will need to use this function for the specific purpose of storing the dumpout outlet in the obex - (the dumpout outlet is used by attributes to report data in response to 'get' queries). - For this, the developer should use something like the following in the object's new method: - @code - object_obex_store(x, _sym_dumpout, outlet_new(x, NULL)); - @endcode -*/ -t_max_err object_obex_store(void *x,t_symbol *key, t_object *val); -t_max_err object_obex_storeflags(void *x,t_symbol *key, t_object *val, long flags); - -t_max_err object_obex_storelong(void *x, t_symbol *key, t_atom_long val); -t_max_err object_obex_storesym(void *x, t_symbol *key, t_symbol *val); - - -// private -t_max_err object_obex_set(void *x, t_hashtab *obex); - - -// private -t_hashtab *object_obex_get(void *x); - - -// private -t_hashtab *object_obex_enforce(void *x); - - -/** - Sends data from the object's dumpout outlet. - The dumpout outlet is stored in the obex using the object_obex_store() function (see above). - It is used approximately like outlet_anything(). - - @ingroup obj - - @param x The object pointer. - This function should only be called on instantiated objects (i.e. in the new method or later), not directly on classes (i.e. in main()). - @param s The message selector #t_symbol * - @param argc Number of elements in the argument list in argv - @param argv t_atoms constituting the message arguments - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -void object_obex_dumpout(void *x, t_symbol *s, long argc, t_atom *argv); - - -// DO NOT CALL THIS -- It is called automatically now from object_free() or freeobject() -- calling this will cause problems. -C74_DEPRECATED( void object_obex_free(void *x) ); - - -//atom functions - -#ifndef atom_setlong -/** - Inserts an integer into a #t_atom and change the t_atom's type to #A_LONG. - - @ingroup atom - - @param a Pointer to a #t_atom whose value and type will be modified - @param b Integer value to copy into the #t_atom - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err atom_setlong(t_atom *a, t_atom_long b); -#endif - - -#ifndef atom_setfloat -/** - Inserts a floating point number into a #t_atom and change the t_atom's type to #A_FLOAT. - - @ingroup atom - - @param a Pointer to a #t_atom whose value and type will be modified - @param b Floating point value to copy into the #t_atom - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err atom_setfloat(t_atom *a, double b); -#endif - - -#ifndef atom_setsym -/** - Inserts a #t_symbol * into a #t_atom and change the t_atom's type to #A_SYM. - - @ingroup atom - - @param a Pointer to a #t_atom whose value and type will be modified - @param b Pointer to a #t_symbol to copy into the #t_atom - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err atom_setsym(t_atom *a, t_symbol *b); -#endif - - -/** - Inserts a generic pointer value into a #t_atom and change the t_atom's type to #A_OBJ. - - @ingroup atom - - @param a Pointer to a #t_atom whose value and type will be modified - @param b Pointer value to copy into the #t_atom - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err atom_setobj(t_atom *a, void *b); - - -#ifndef atom_getlong -/** - Retrieves a long integer value from a #t_atom. - - @ingroup atom - - @param a Pointer to a #t_atom whose value is of interest - @return This function returns the value of the specified #t_atom as an integer, if possible. Otherwise, it returns 0. - @remark If the #t_atom is not of the type specified by the function, the function will attempt to coerce a valid value from the t_atom. - For instance, if the t_atom at is set to type #A_FLOAT with a value of 3.7, - the atom_getlong() function will return the truncated integer value of at, or 3. - An attempt is also made to coerce #t_symbol data. -*/ -t_atom_long atom_getlong(const t_atom *a); -#endif - - -#ifndef atom_getfloat -/** - Retrieves a floating point value from a #t_atom. - - @ingroup atom - @param a Pointer to a #t_atom whose value is of interest - @return This function returns the value of the specified #t_atom as a floating point number, if possible. Otherwise, it returns 0. - - @remark If the #t_atom is not of the type specified by the function, the function will attempt to coerce a valid value from the t_atom. - For instance, if the t_atom at is set to type #A_LONG with a value of 5, - the atom_getfloat() function will return the value of at as a float, or 5.0. - An attempt is also made to coerce #t_symbol data. -*/ -t_atom_float atom_getfloat(const t_atom *a); -#endif - - -#ifndef atom_getsym -/** - Retrieves a t_symbol * value from a t_atom. - - @ingroup atom - @param a Pointer to a t_atom whose value is of interest - @return This function returns the value of the specified #A_SYM-typed #t_atom, if possible. - Otherwise, it returns an empty, but valid, #t_symbol *, equivalent to gensym(""), or _sym_nothing. - - @remark No attempt is made to coerce non-matching data types. -*/ -t_symbol *atom_getsym(const t_atom *a); -#endif - - -/** - Retrieves a generic pointer value from a #t_atom. - - @ingroup atom - @param a Pointer to a #t_atom whose value is of interest - @return This function returns the value of the specified #A_OBJ-typed t_atom, if possible. Otherwise, it returns NULL. -*/ -void *atom_getobj(const t_atom *a); - - -/** - Retrieves an unsigned integer value between 0 and 255 from a t_atom. - - @ingroup atom - @param a Pointer to a #t_atom whose value is of interest - @return This function returns the value of the specified #t_atom as an integer between 0 and 255, if possible. Otherwise, it returns 0. - - @remark If the #t_atom is typed #A_LONG, but the data falls outside of the range 0-255, the data is truncated to that range before output. - - @remark If the t_atom is typed #A_FLOAT, the floating point value is multiplied by 255. and truncated to the range 0-255 before output. - For example, the floating point value 0.5 would be output from atom_getcharfix as 127 (0.5 * 255. = 127.5). - - @remark No attempt is also made to coerce #t_symbol data. -*/ -long atom_getcharfix(const t_atom *a); - - -#ifndef atom_gettype -/** - Retrieves type from a #t_atom. - - @ingroup atom - @param a Pointer to a #t_atom whose type is of interest - @return This function returns the type of the specified t_atom as defined in #e_max_atomtypes -*/ -long atom_gettype(const t_atom *a); -#endif - - -//the following are useful for setting the values _only_ if there is an arg -//rather than setting it to 0 or _sym_nothing - -/** - Retrieves the integer value of a particular t_atom from an atom list, if the atom exists. - - @ingroup atom - - @param c Pointer to a long variable to receive the atom's data if the function is successful. - @param idx Offset into the atom list of the atom of interest, starting from 0. - For instance, if you want data from the 3rd atom in the atom list, idx should be set to 2. - @param ac Count of av. - @param av Pointer to the first t_atom of an atom list. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark The atom_arg_getlong() function only changes the value of c if the function is successful. - For instance, the following code snippet illustrates a simple, but typical use: - @code - void myobject_mymessage(t_myobject *x, t_symbol *s, long ac, t_atom *av) - { - t_atom_long var = -1; - - // here, we are expecting a value of 0 or greater - atom_arg_getlong(&var, 0, ac, av); - if (val == -1) // i.e. unchanged - post("it is likely that the user did not provide a valid argument"); - else { - ... - } - } - @endcode -*/ -t_max_err atom_arg_getlong(t_atom_long *c, long idx, long ac, const t_atom *av); - - -/** - Retrieves the floating point value of a particular t_atom from an atom list, if the atom exists. - - @ingroup atom - - @param c Pointer to a float variable to receive the atom's data if the function is successful. Otherwise, the value is left unchanged. - @param idx Offset into the atom list of the atom of interest, starting from 0. - For instance, if you want data from the 3rd atom in the atom list, idx should be set to 2. - @param ac Count of av. - @param av Pointer to the first t_atom of an atom list. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -long atom_arg_getfloat(float *c, long idx, long ac, const t_atom *av); - - -/** - Retrieves the floating point value, as a double, of a particular t_atom from an atom list, if the atom exists. - - @ingroup atom - - @param c Pointer to a double variable to receive the atom's data if the function is successful. Otherwise the value is left unchanged. - @param idx Offset into the atom list of the atom of interest, starting from 0. - For instance, if you want data from the 3rd atom in the atom list, idx should be set to 2. - @param ac Count of av. - @param av Pointer to the first t_atom of an atom list. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -long atom_arg_getdouble(double *c, long idx, long ac, const t_atom *av); - - -/** - Retrieves the t_symbol * value of a particular t_atom from an atom list, if the atom exists. - - @ingroup atom - - @param c Pointer to a t_symbol * variable to receive the atom's data if the function is successful. Otherwise, the value is left unchanged. - @param idx Offset into the atom list of the atom of interest, starting from 0. - For instance, if you want data from the 3rd atom in the atom list, idx should be set to 2. - @param ac Count of av. - @param av Pointer to the first t_atom of an atom list. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark The atom_arg_getsym() function only changes the value of c if the function is successful. - For instance, the following code snippet illustrates a simple, but typical use: - @code - void myobject_open(t_myobject *x, t_symbol *s, long ac, t_atom *av) - { - t_symbol *filename = _sym_nothing; - - // here, we are expecting a file name. - // if we don't get it, open a dialog box - atom_arg_getsym(&filename, 0, ac, av); - if (filename == _sym_nothing) { // i.e. unchanged - // open the file dialog box, - // get a value for filename - } - // do something with the filename - } - @endcode -*/ -long atom_arg_getsym(t_symbol **c, long idx, long ac, const t_atom *av); - - -//attr functions - -/** - Determines the point in an atom list where attribute arguments begin. - Developers can use this function to assist in the manual processing of attribute arguments, when attr_args_process() - doesn't provide the correct functionality for a particular purpose. - - @ingroup attr - - @param ac The count of t_atoms in av - @param av An atom list - - @return This function returns an offset into the atom list, where the first attribute argument occurs. - For instance, the atom list foo bar 3.0 \@mode 6 would cause attr_args_offset to return 3 - (the attribute mode appears at position 3 in the atom list). -*/ -long attr_args_offset(short ac, t_atom *av); - - -/** - Takes an atom list and properly set any attributes described within. This function is typically used in an object's new method to conveniently process attribute arguments. - - @ingroup attr - - @param x The object whose attributes will be processed - @param ac The count of t_atoms in av - @param av An atom list - - @remark Here is a typical example of usage: - @code - void *myobject_new(t_symbol *s, long ac, t_atom *av) - { - t_myobject *x = NULL; - - if (x=(t_myobject *)object_alloc(myobject_class)) - { - // initialize any data before processing - // attributes to avoid overwriting - // attribute argument-set values - x->data = 0; - - // process attr args, if any - attr_args_process(x, ac, av); - } - return x; - } - @endcode -*/ -void attr_args_process(void *x, short ac, t_atom *av); - - -//constructors - - -/** - Create a new attribute. The attribute will allocate memory and store its own data. Attributes created using attribute_new() can be assigned either to classes (using the class_addattr() function) or to objects (using the object_addattr() function). - - @ingroup attr - - @param name A name for the attribute, as a C-string - @param type A t_symbol * representing a valid attribute type. - At the time of this writing, the valid type-symbols are: - _sym_char (char), - _sym_long (long), - _sym_float32 (32-bit float), - _sym_float64 (64-bit float), - _sym_atom (Max #t_atom pointer), - _sym_symbol (Max #t_symbol pointer), - _sym_pointer (generic pointer) and - _sym_object (Max #t_object pointer). - @param flags Any attribute flags, expressed as a bitfield. - Attribute flags are used to determine if an attribute is accessible for setting or querying. - The available accessor flags are defined in #e_max_attrflags. - @param mget The method to use for the attribute's get functionality. If mget is NULL, the default method is used. - @param mset The method to use for the attribute's set functionality. If mset is NULL, the default method is used. - - @return This function returns the new attribute's object pointer if successful, or NULL if unsuccessful. - - @remark Developers wishing to define custom methods for get or set functionality need to prototype them as: - @code - t_max_err myobject_myattr_get(t_myobject *x, void *attr, long *ac, t_atom **av); - @endcode - @code - t_max_err myobject_myattr_set(t_myobject *x, void *attr, long ac, t_atom *av); - @endcode - - @remark Implementation will vary, of course, but need to follow the following basic models. - Note that, as with custom getvalueof and setvalueof methods for the object, - assumptions are made throughout Max that getbytes() has been used for memory allocation. - Developers are strongly urged to do the same: - @code - t_max_err myobject_myattr_get(t_myobject *x, void *attr, long *ac, t_atom **av) - { - if (*ac && *av) - // memory passed in; use it - else { - *ac = 1; // size of attr data - *av = (t_atom *)getbytes(sizeof(t_atom) * (*ac)); - if (!(*av)) { - *ac = 0; - return MAX_ERR_OUT_OF_MEM; - } - } - atom_setlong(*av, x->some_value); - return MAX_ERR_NONE; - } - - t_max_err myobject_myattr_set(t_myobject *x, void *attr, long ac, t_atom *av) - { - if (ac && av) { - x->some_value = atom_getlong(av); - } - return MAX_ERR_NONE; - } - @endcode -*/ -t_object *attribute_new(C74_CONST char *name, t_symbol *type, long flags, method mget, method mset); - - -/** - Create a new attribute. The attribute references memory stored outside of itself, in the object's data structure. Attributes created using attr_offset_new() can be assigned either to classes (using the class_addattr() function) or to objects (using the object_addattr() function). - - @ingroup attr - - @param name A name for the attribute, as a C-string - @param type A t_symbol * representing a valid attribute type. - At the time of this writing, the valid type-symbols are: - _sym_char (char), - _sym_long (long), - _sym_float32 (32-bit float), - _sym_float64 (64-bit float), - _sym_atom (Max #t_atom pointer), - _sym_symbol (Max #t_symbol pointer), - _sym_pointer (generic pointer) and - _sym_object (Max #t_object pointer). - @param flags Any attribute flags, expressed as a bitfield. - Attribute flags are used to determine if an attribute is accessible for setting or querying. - The available accessor flags are defined in #e_max_attrflags. - @param mget The method to use for the attribute's get functionality. - If mget is NULL, the default method is used. See the discussion under attribute_new(), for more information. - @param mset The method to use for the attribute's set functionality. - If mset is NULL, the default method is used. See the discussion under attribute_new(), for more information. - @param offset Byte offset into the class data structure of the object which will "own" the attribute. - The offset should point to the data to be referenced by the attribute. - Typically, the #calcoffset macro (described above) is used to calculate this offset. - - @return This function returns the new attribute's object pointer if successful, or NULL if unsuccessful. - - @remark For instance, to create a new attribute which references the value of a double variable (val) in an object class's data structure: - @code - t_object *attr = attr_offset_new("myattr", _sym_float64 / * matches data size * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, val)); - @endcode -*/ -t_object *attr_offset_new(C74_CONST char *name, C74_CONST t_symbol *type, long flags, C74_CONST method mget, C74_CONST method mset, long offset); - - -/** - Create a new attribute. The attribute references an array of memory stored outside of itself, in the object's data structure. Attributes created using attr_offset_array_new() can be assigned either to classes (using the class_addattr() function) or to objects (using the object_addattr() function). - - @ingroup attr - - @param name A name for the attribute, as a C-string - @param type A t_symbol * representing a valid attribute type. - At the time of this writing, the valid type-symbols are: - _sym_char (char), - _sym_long (long), - _sym_float32 (32-bit float), - _sym_float64 (64-bit float), - _sym_atom (Max #t_atom pointer), - _sym_symbol (Max #t_symbol pointer), - _sym_pointer (generic pointer) and - _sym_object (Max #t_object pointer). - @param size Maximum number of items that may be in the array. - @param flags Any attribute flags, expressed as a bitfield. - Attribute flags are used to determine if an attribute is accessible for setting or querying. - The available accessor flags are defined in #e_max_attrflags. - @param mget The method to use for the attribute's get functionality. - If mget is NULL, the default method is used. See the discussion under attribute_new(), for more information. - @param mset The method to use for the attribute's set functionality. - If mset is NULL, the default method is used. See the discussion under attribute_new(), for more information. - @param offsetcount Byte offset into the object class's data structure of a long variable describing how many array elements - (up to size) comprise the data to be referenced by the attribute. - Typically, the #calcoffset macro is used to calculate this offset. - @param offset Byte offset into the class data structure of the object which will "own" the attribute. - The offset should point to the data to be referenced by the attribute. - Typically, the #calcoffset macro is used to calculate this offset. - - @return This function returns the new attribute's object pointer if successful, or NULL if unsuccessful. - - @remark For instance, to create a new attribute which references an array of 10 t_atoms (atm; - the current number of "active" elements in the array is held in the variable atmcount) in an object class's data structure: - @code - t_object *attr = attr_offset_array_new("myattrarray", _sym_atom / * matches data size * /, 10 / * max * /, 0 / * no flags * /, (method)0L, (method)0L, calcoffset(t_myobject, atmcount) / * count * /, calcoffset(t_myobject, atm) / * data * /); - @endcode -*/ -t_object *attr_offset_array_new(C74_CONST char *name, t_symbol *type, long size, long flags, method mget, method mset, long offsetcount, long offset); - - -t_object *attr_filter_clip_new(void); - - -t_object *attr_filter_proc_new(method proc); - - -//for easy access of simple attributes - -/** - Retrieves the value of an attribute, given its parent object and name. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - - @return This function returns the value of the specified attribute, if successful, or 0, if unsuccessful. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -t_atom_long object_attr_getlong(void *x, t_symbol *s); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param c An integer value; the new value for the attribute - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setlong(void *x, t_symbol *s, t_atom_long c); - - -/** - Retrieves the value of an attribute, given its parent object and name. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - - @return This function returns the value of the specified attribute, if successful, or 0, if unsuccessful. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -t_atom_float object_attr_getfloat(void *x, t_symbol *s); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param c An floating point value; the new value for the attribute - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setfloat(void *x, t_symbol *s, t_atom_float c); - - -/** - Retrieves the value of an attribute, given its parent object and name. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - - @return This function returns the value of the specified attribute, if successful, or the empty symbol (equivalent to gensym("") or _sym_nothing), if unsuccessful. -*/ -t_symbol *object_attr_getsym(void *x, t_symbol *s); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param c A t_symbol *; the new value for the attribute - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setsym(void *x, t_symbol *s, t_symbol *c); - - -char object_attr_getchar(void *x, t_symbol *s); -t_max_err object_attr_setchar(void *x, t_symbol *s, char c); -t_object* object_attr_getobj(void *x, t_symbol *s); -t_max_err object_attr_setobj(void *x, t_symbol *s, t_object *o); - - -/** - Retrieves the value of an attribute, given its parent object and name. - This function uses a developer-allocated array to copy data to. - Developers wishing to retrieve the value of an attribute without pre-allocating memory should refer to the object_attr_getvalueof() function. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param max The number of array elements in vals. The function will take care not to overwrite the bounds of the array. - @param vals Pointer to the first element of a pre-allocated array of long data. - - @return This function returns the number of elements copied into vals. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -long object_attr_getlong_array(void *x, t_symbol *s, long max, t_atom_long *vals); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param count The number of array elements in vals - @param vals Pointer to the first element of an array of long data - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setlong_array(void *x, t_symbol *s, long count, t_atom_long *vals); - - -/** - Retrieves the value of an attribute, given its parent object and name. - This function uses a developer-allocated array to copy data to. - Developers wishing to retrieve the value of an attribute without pre-allocating memory should refer to the object_attr_getvalueof() function. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param max The number of array elements in vals. The function will take care not to overwrite the bounds of the array. - @param vals Pointer to the first element of a pre-allocated array of unsigned char data. - - @return This function returns the number of elements copied into vals. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -long object_attr_getchar_array(void *x, t_symbol *s, long max, t_uint8 *vals); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param count The number of array elements in vals - @param vals Pointer to the first element of an array of unsigned char data - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setchar_array(void *x, t_symbol *s, long count, C74_CONST t_uint8 *vals); - - -/** - Retrieves the value of an attribute, given its parent object and name. - This function uses a developer-allocated array to copy data to. - Developers wishing to retrieve the value of an attribute without pre-allocating memory should refer to the object_attr_getvalueof() function. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param max The number of array elements in vals. The function will take care not to overwrite the bounds of the array. - @param vals Pointer to the first element of a pre-allocated array of float data. - - @return This function returns the number of elements copied into vals. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -long object_attr_getfloat_array(void *x, t_symbol *s, long max, float *vals); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param count The number of array elements in vals - @param vals Pointer to the first element of an array of float data - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setfloat_array(void *x, t_symbol *s, long count, float *vals); - - -/** - Retrieves the value of an attribute, given its parent object and name. - This function uses a developer-allocated array to copy data to. - Developers wishing to retrieve the value of an attribute without pre-allocating memory should refer to the object_attr_getvalueof() function. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param max The number of array elements in vals. The function will take care not to overwrite the bounds of the array. - @param vals Pointer to the first element of a pre-allocated array of double data. - - @return This function returns the number of elements copied into vals. - - @remark If the attribute is not of the type specified by the function, the - function will attempt to coerce a valid value from the attribute. -*/ -long object_attr_getdouble_array(void *x, t_symbol *s, long max, double *vals); - - -/** - Sets the value of an attribute, given its parent object and name. The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param count The number of array elements in vals - @param vals Pointer to the first element of an array of double data - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setdouble_array(void *x, t_symbol *s, long count, double *vals); - - -/** - Retrieves the value of an attribute, given its parent object and name. - This function uses a developer-allocated array to copy data to. - Developers wishing to retrieve the value of an attribute without pre-allocating memory should refer to the object_attr_getvalueof() function. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param max The number of array elements in vals. The function will take care not to overwrite the bounds of the array. - @param vals Pointer to the first element of a pre-allocated array of #t_symbol *s. - - @return This function returns the number of elements copied into vals. -*/ -long object_attr_getsym_array(void *x, t_symbol *s, long max, t_symbol **vals); - - -/** - Sets the value of an attribute, given its parent object and name. - The function will call the attribute's set method, using the data provided. - - @ingroup attr - - @param x The attribute's parent object - @param s The attribute's name - @param count The number of array elements in vals - @param vals Pointer to the first element of an array of #t_symbol *s - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setsym_array(void *x, t_symbol *s, long count, t_symbol **vals); - - -//attr filters util - -/** - Attaches a clip filter to an attribute. - The filter will only clip values sent to the attribute using the attribute's set function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilterset_clip(void *x, double min, double max, long usemin, long usemax); - - -/** - Attaches a clip/scale filter to an attribute. - The filter will only clip and scale values sent to the attribute using the attribute's set function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param scale Scale value. Data sent to the attribute will be scaled by this amount. Scaling occurs previous to clipping. - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilterset_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); - - -/** - Attaches a clip filter to an attribute. - The filter will only clip values retrieved from the attribute using the attribute's get function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilterget_clip(void *x, double min, double max, long usemin, long usemax); - - -/** - Attaches a clip/scale filter to an attribute. - The filter will only clip and scale values retrieved from the attribute using the attribute's get function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param scale Scale value. Data retrieved from the attribute will be scaled by this amount. Scaling occurs previous to clipping. - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilterget_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); - - -/** - Attaches a clip filter to an attribute. - The filter will clip any values sent to or retrieved from the attribute using the attribute's get and set functions. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilter_clip(void *x, double min, double max, long usemin, long usemax); - - -/** - Attaches a clip/scale filter to an attribute. - The filter will clip and scale any values sent to or retrieved from the attribute using the attribute's get and set functions. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param scale Scale value. Data sent to the attribute will be scaled by this amount. Data retrieved from the attribute will be scaled by its reciprocal. - Scaling occurs previous to clipping. - @param min Minimum value for the clip filter - @param max Maximum value for the clip filter - @param usemin Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - @param usemax Sets this value to 0 if the minimum clip value should not be used. Otherwise, set the value to non-zero. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err attr_addfilter_clip_scale(void *x, double scale, double min, double max, long usemin, long usemax); - - -/** - Attaches a custom filter method to an attribute. - The filter will only be called for values retrieved from the attribute using the attribute's set function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param proc A filter method - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark The filter method should be prototyped and implemented as follows: - @code - t_max_err myfiltermethod(void *parent, void *attr, long ac, t_atom *av); - - t_max_err myfiltermethod(void *parent, void *attr, long ac, t_atom *av) - { - long i; - float temp, - - // this filter rounds off all values - // assumes that the data is float - for (i = 0; i < ac; i++) { - temp = atom_getfloat(av + i); - temp = (float)((long)(temp + 0.5)); - atom_setfloat(av + i, temp); - } - return MAX_ERR_NONE; - } - @endcode -*/ -t_max_err attr_addfilterset_proc(void *x, method proc); - - -/** - Attaches a custom filter method to an attribute. The filter will only be called for values retrieved from the attribute using the attribute's get function. - - @ingroup attr - - @param x Pointer to the attribute to receive the filter - @param proc A filter method - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. - - @remark The filter method should be prototyped and implemented as described above for the attr_addfilterset_proc() function. -*/ -t_max_err attr_addfilterget_proc(void *x, method proc); - - -//more util functions - -/** - Generates a unique #t_symbol *. The symbol will be formatted somewhat like "u123456789". - - @ingroup misc - @return This function returns a unique #t_symbol *. -*/ -t_symbol *symbol_unique(void); - - -/** - Strip quotes from the beginning and end of a symbol if they are present. - @ingroup misc - @param s The symbol to be stipped. - @return Symbol with any leading/trailing quote pairs removed. - */ -t_symbol *symbol_stripquotes(t_symbol *s); - - -void error_code(void *x,t_max_err v); //interrupt safe - - -/** - Posts an error message to the Max window. This function is interrupt safe. - - @ingroup misc - - @param x The object's pointer - @param s Symbol to be posted as an error in the Max window -*/ -void error_sym(void *x,t_symbol *s); //interrupt safe - - -/** - Posts a message to the Max window. This function is interrupt safe. - - @ingroup misc - @param x The object's pointer - @param s Symbol to be posted in the Max window -*/ -void post_sym(void *x,t_symbol *s); //interrupt safe - - -/** - Performs an ASCII sort on an array of #t_symbol *s. - - @ingroup misc - - @param ac The count of #t_symbol *s in av - @param av An array of #t_symbol *s to be sorted - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err symbolarray_sort(long ac, t_symbol **av); - - -/** - Developers do not need to directly use the object_obex_quickref() function. - It was used in Max 4 to add support for attributes to the quickref, but this is automatic in Max 5. - - @ingroup misc -*/ -void object_obex_quickref(void *x, long *numitems, t_symbol **items); - - -method class_menufun_get(t_class *c); - -long class_clonable(t_class *x); -long object_clonable(t_object *x); -t_max_err class_buildprototype(t_class *x); -t_dictionary *class_cloneprototype(t_class *x); - - -/** - Create a dictionary of attribute-name, attribute-value pairs - from an array of atoms containing an attribute definition list. - - @ingroup attr - @param x A dictionary instance pointer. - @param ac The number of atoms to parse in av. - @param av A pointer to the first of the array of atoms containing the attribute values. - - @remark The code example below shows the creation of a list of atoms using atom_setparse(), - and then uses that list of atoms to fill the dictionary with attr_args_dictionary(). - @code - long ac = 0; - t_atom *av = NULL; - char parsebuf[4096]; - t_dictionary *d = dictionary_new(); - t_atom a; - - sprintf(parsebuf,"@defrect %.6f %.6f %.6f %.6f @title Untitled @presentation 0 ", r->x, r->y, r->width, r->height); - atom_setparse(&ac, &av, parsebuf); - attr_args_dictionary(d, ac, av); - atom_setobj(&a, d); - @endcode -*/ -void attr_args_dictionary(t_dictionary *x, short ac, t_atom *av); - - -/** - Set attributes for an object that are defined in a dictionary. - Objects with dictionary constructors, such as UI objects, - should call this method to set their attributes when an object is created. - - @ingroup attr - @param x The object instance pointer. - @param d The dictionary containing the attributes. - @see attr_args_process() -*/ -void attr_dictionary_process(void *x, t_dictionary *d); - -/** - Check that a dictionary only contains values for existing attributes - of an object. If a key in the dictionary doesn't correspond an one of - the object's attributes, an error will be posted to the Max window. - - @ingroup attr - @param x The object instance pointer. - @param d The dictionary containing the attributes. - @see attr_dictionary_process() -*/ -void attr_dictionary_check(void *x, t_dictionary *d); - - -/** - Retrieve a pointer to a dictionary passed in as an atom argument. - Use this function when working with classes that have dictionary constructors - to fetch the dictionary. - - @ingroup obj - @param ac The number of atoms. - @param av A pointer to the first atom in the array. - @return The dictionary retrieved from the atoms. - @see attr_dictionary_process() -*/ -t_dictionary *object_dictionaryarg(long ac, t_atom *av); - - -// use the macros for these in ext_obex_util.h -t_max_err class_sticky(t_class *x, t_symbol *stickyname, t_symbol *s, t_object *o); -t_max_err class_sticky_clear(t_class *x, t_symbol *stickyname, t_symbol *s); - - -// private -- internal use only (and perhaps not exported?) -t_max_err object_retain(t_object *x); -t_max_err object_release(t_object *x); - -typedef struct _method_object -{ - t_object ob; - t_messlist messlist_entry; -} t_method_object; - -t_method_object *method_object_new(method m, C74_CONST char *name, ...); -t_method_object *method_object_new_messlist(t_messlist *m); -void method_object_free(t_method_object *x); -t_symbol *method_object_getname(t_method_object *x); -void method_object_setname(t_method_object *x, t_symbol *s); -method method_object_getmethod(t_method_object *x); -void method_object_setmethod(t_method_object *x, method m); -t_messlist *method_object_getmesslist(t_method_object *x); -void method_object_setmesslist(t_method_object *x, t_messlist *m); - -t_method_object *class_getmethod_object(t_class *x, t_symbol *methodname); - -// these methods are private -- instance methods are not actually fully implemented at this time -t_method_object *object_getmethod_object(t_object *x, t_symbol *methodname); - -t_max_err object_attrhash_apply(t_object *x, t_hashtab *attrhash); -t_max_err object_sticky(t_object *x, t_symbol *stickyname, t_symbol *s, t_object *o); -t_max_err object_sticky_clear(t_object *x, t_symbol *stickyname, t_symbol *s); - -// these methods are private -- instance methods are not actually fully implemented at this time -t_max_err object_addmethod(t_object *x, method m, C74_CONST char *name, ...); -t_max_err object_addmethod_object(t_object *x, t_object *mo); -t_max_err object_deletemethod(t_object *x, t_symbol *methodsym); -t_max_err object_chuckmethod(t_object *x, t_symbol *methodsym); - -t_max_err attr_typedfun_set(void *parent, t_object *x, long ac, t_atom *av); - -t_max_err object_attr_getnames(void *x, long *argc, t_symbol ***argv); - -/** - Allocate a single atom. - If ac and av are both zero then memory is allocated. - Otherwise it is presumed that memory is already allocated and nothing will happen. - - @ingroup atom - @param ac The address of a variable that will contain the number of atoms allocated (1). - @param av The address of a pointer that will be set with the new allocated memory for the atom. - @param alloc Address of a variable that will be set true is memory is allocated, otherwise false. - @return A Max error code. -*/ -t_max_err atom_alloc(long *ac, t_atom **av, char *alloc); - - -/** - Allocate an array of atoms. - If ac and av are both zero then memory is allocated. - Otherwise it is presumed that memory is already allocated and nothing will happen. - - @ingroup atom - @param minsize The minimum number of atoms that this array will need to contain. - This determines the amount of memory allocated. - @param ac The address of a variable that will contain the number of atoms allocated. - @param av The address of a pointer that will be set with the new allocated memory for the atoms. - @param alloc Address of a variable that will be set true is memory is allocated, otherwise false. - @return A Max error code. -*/ -t_max_err atom_alloc_array(long minsize, long *ac, t_atom **av, char *alloc); - - - -// private? -long class_is_box(t_class *c); -t_dictionary *object_dictionary_fromnewargs(t_object *patcher, t_class *c, long argc, t_atom *argv, long flags, char *freedict); - - -/** - Determine if a class is a user interface object. - - @ingroup class - @param c The class pointer. - @return True is the class defines a user interface object, otherwise false. -*/ -long class_is_ui(t_class *c); - - -// new subclassing implementation -/** - Define a subclass of an existing class. - First call class_new on the subclass, then pass in to class_subclass. - If constructor or destructor are NULL will use the superclass constructor. - - @ingroup class - @param superclass The superclass pointer. - @param subclass The subclass pointer. - @return A Max error code -*/ -t_max_err class_subclass(t_class *superclass, t_class *subclass); - - -/** - Call super class constructor. - Use this instead of object_alloc if you want to call the super class constructor, - but allocating enough memory for subclass. - - @ingroup class - @param c The (sub)class pointer. - @param ... Args to super class constructor. - @return initialized object instance -*/ -t_object *class_super_construct(t_class *c, ...); - -#ifdef C74_X64 -#define class_super_construct(...) C74_VARFUN(class_super_construct_imp, __VA_ARGS__) -#endif - -t_object *class_super_construct_imp(void *c, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8, void *p9); - -/** - Sends an untyped message to an object using superclass methods. - Uses a thread specific stack to ensure traversal up the class hierarchy. - - @ingroup obj - - @param x The object that will receive the message - @param s The message selector - @param ... Any arguments to the message - - @return If the receiver object can respond to the message, object_method() returns the result. Otherwise, the function will return 0. -*/ -void *object_super_method(t_object *x, t_symbol *s, ...); - -#ifdef C74_X64 -#define object_super_method(...) C74_VARFUN(object_super_method_imp, __VA_ARGS__) -#endif - -void *object_super_method_imp(void *x, void *s, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); - -/** - Sends an untyped message to an object, respects a thread specific class stack from object_super_method() calls - - @ingroup obj - - @param x The object that will receive the message - @param s The message selector - @param ... Any arguments to the message - - @return If the receiver object can respond to the message, object_method() returns the result. Otherwise, the function will return 0. -*/ -void *object_this_method(t_object *x, t_symbol *s, ...); - -#ifdef C74_X64 -#define object_this_method(...) C74_VARFUN(object_this_method_imp, __VA_ARGS__) -#endif - -void *object_this_method_imp(void *x, void *s, void *p1, void *p2, void *p3, void *p4, void *p5, void *p6, void *p7, void *p8); - -/** - Mark an attribute as being touched by some code not from the attribute setter. - This will notify clients that the attribute has changed. - - @ingroup obj - - @param x The object whose attribute has been changed - @param attrname The attribute name - - @return A Max error code - */ -t_max_err object_attr_touch(t_object *x, t_symbol *attrname); - -/** - Mark one or more attributes as being touched by some code not from the attribute setter. - This will notify clients that the attributes have changed. Utility to call object_attr_touch() - for several attributes - - @ingroup obj - - @param x The object whose attribute has been changed - @param attrnames The attribute names as a space separated string - - @return A Max error code - */ -t_max_err object_attr_touch_parse(t_object *x, char *attrnames); - - -t_max_err object_attr_getvalueof_ext(void *x, t_symbol *s, long *argc, t_atom **argv); -t_max_err object_attr_setvalueof_ext(void *x, t_symbol *s, long argc, t_atom *argv); -long object_attr_getdirty(t_object *x, t_symbol *attrname); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_OBEX_H_ diff --git a/source/c74support/max-includes/ext_obex_util.h b/source/c74support/max-includes/ext_obex_util.h deleted file mode 100644 index 6d58a534..00000000 --- a/source/c74support/max-includes/ext_obex_util.h +++ /dev/null @@ -1,2553 +0,0 @@ -/* - * obex_util.h - * - * Copyright 2006 Cycling '74. All rights reserved. - * - */ - -#ifndef _EXT_OBEX_UTIL_H_ -#define _EXT_OBEX_UTIL_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#include - -// symbol macros which may be swapped to use common symbol pointers for performance -#define USESYM(x) gensym(#x) -//#define USESYM(x) _sym_##x - -// macros for attributes -// class attributes are almost universally attr_offset, except for class static attributes - - -/** - Create an attribute that does not store its data in the object struct. - NB: if you use this you must have a custom getter/setter or not ever get/set. - Perhaps we should rewrite this using a generic attribute_new rather than attr_offset_new? - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param typesym The type the getter and setter would expect: _sym_char, _sym_long, _sym_atom_long, _sym_float32, _sym_float64, _sym_symbol, _sym_atom, etc - */ -#define CLASS_ATTR_OFFSET_DUMMY(c,attrname,flags,typesym) \ - class_addattr((c),attr_offset_new(attrname,typesym,(flags),(method)0L,(method)0L,0)); - -/** - Create a char attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_CHAR(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(char), "structmember must be char type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(char),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - - -/** - Create a long integer attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ - -#define CLASS_ATTR_LONG(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(long), "structmember must be long type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(long),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - -/** - Create a t_atom_long integer attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ - -#define CLASS_ATTR_ATOM_LONG(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_atom_long), "structmember must be t_atom_long type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(atom_long),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - -/** - Create a t_int32 integer attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ - -#define CLASS_ATTR_INT32(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_int32), "structmember must be t_int32 type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(int32),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - -#define CLASS_ATTR_FILEPATH(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_filepath), "structmember must be t_filepath type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(filepath),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - -/** - Create a 32-bit float attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_FLOAT(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(float), "structmember must be float type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(float32),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - - -/** - Create a 64-bit float attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_DOUBLE(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(double), "structmember must be double type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(float64),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - - -/** - Create a #t_symbol* attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_SYM(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_symbol*), "structmember must be t_symbol* type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(symbol),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - - -/** - Create a #t_atom attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_ATOM(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_atom), "structmember must be t_atom type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(atom),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - - -/** - Create a #t_object* attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_OBJ(c,attrname,flags,structname,structmember) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember)==sizeof(t_object*), "structmember must be t_object* type"); \ - class_addattr((c),attr_offset_new(attrname,USESYM(object),(flags),(method)0L,(method)0L,calcoffset(structname,structmember))); \ - } - -/** - Create an array-of-chars attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of chars in the array. -*/ -#define CLASS_ATTR_CHAR_ARRAY(c,attrname,flags,structname,structmember,size) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(char),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))) - - -/** - Create an array-of-long-integers attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of longs in the array. -*/ -#define CLASS_ATTR_LONG_ARRAY(c,attrname,flags,structname,structmember,size) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember[0])==sizeof(long), "structmember must be long type"); \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(long),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))); \ - } - -/** - Create an array-of-t_atom_long-integers attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of longs in the array. -*/ -#define CLASS_ATTR_ATOM_LONG_ARRAY(c,attrname,flags,structname,structmember,size) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember[0])==sizeof(t_atom_long), "structmember must be t_atom_long type"); \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(atom_long),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))); \ - } - - -/** - Create an array-of-32bit-floats attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of floats in the array. -*/ -#define CLASS_ATTR_FLOAT_ARRAY(c,attrname,flags,structname,structmember,size) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname, structmember[0])==sizeof(float), "structmember must be float type"); \ - class_addattr((c), attr_offset_array_new(attrname, USESYM(float32), (size), (flags), (method)0L, (method)0L, 0/*fix*/, calcoffset(structname, structmember))); \ - } - - -/** - Create an array-of-64bit-floats attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of doubles in the array. -*/ -#define CLASS_ATTR_DOUBLE_ARRAY(c,attrname,flags,structname,structmember,size) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(float64),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))) - - -/** - Create an array-of-symbols attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_symbol* array. -*/ -#define CLASS_ATTR_SYM_ARRAY(c,attrname,flags,structname,structmember,size) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(symbol),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))) - - -/** - Create an array-of-atoms attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_atom array. -*/ -#define CLASS_ATTR_ATOM_ARRAY(c,attrname,flags,structname,structmember,size) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(atom),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))) - - -/** - Create an array-of-objects attribute of fixed length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_object* array. -*/ -#define CLASS_ATTR_OBJ_ARRAY(c,attrname,flags,structname,structmember,size) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(object),(size),(flags),(method)0L,(method)0L,0/*fix*/,calcoffset(structname,structmember))) - - - - -/** - Create an array-of-chars attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the char array at any given moment. - @param maxsize The maximum number of items in the char array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_CHAR_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(char),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - -/** - Create an array-of-long-integers attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the long array at any given moment. - @param maxsize The maximum number of items in the long array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_LONG_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - { \ - C74_STATIC_ASSERT(structmembersize(structname,structmember[0])==sizeof(long), "structmember must be t_atom_long type"); \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(long),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))); \ - } - -/** - Create an array-of-32bit-floats attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the float array at any given moment. - @param maxsize The maximum number of items in the float array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_FLOAT_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(float32),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - -/** - Create an array-of-64bit-floats attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the double array at any given moment. - @param maxsize The maximum number of items in the double array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_DOUBLE_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(float64),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - -/** - Create an array-of-symbols attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_symbol* array at any given moment. - @param maxsize The maximum number of items in the #t_symbol* array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_SYM_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(symbol),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - -/** - Create an array-of-atoms attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_atom array at any given moment. - @param maxsize The maximum number of items in the #t_atom array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_ATOM_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(atom),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - -/** - Create an array-of-objects attribute of variable length, and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_object* array at any given moment. - @param maxsize The maximum number of items in the #t_object* array, i.e. the number of members allocated for the array in the struct. -*/ -#define CLASS_ATTR_OBJ_VARSIZE(c,attrname,flags,structname,structmember,sizemember,maxsize) \ - class_addattr((c),attr_offset_array_new(attrname,USESYM(object),(maxsize),(flags),(method)0L,(method)0L,calcoffset(structname,sizemember),calcoffset(structname,structmember))) - - - - -// "struct" attributes are just like class attributes, but the struct member name is the same as the attribute name -// we use CMacro "stringification" in this case - -// scalar variants - -/** - Create a char attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_CHAR(c,flags,structname,structmember) CLASS_ATTR_CHAR(c,#structmember,flags,structname,structmember) - - -/** - Create a long integer attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_LONG(c,flags,structname,structmember) CLASS_ATTR_LONG(c,#structmember,flags,structname,structmember) - -/** - Create a t_atom_long integer attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_ATOM_LONG(c,flags,structname,structmember) CLASS_ATTR_ATOM_LONG(c,#structmember,flags,structname,structmember) - -/** - Create a 32bit float attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_FLOAT(c,flags,structname,structmember) CLASS_ATTR_FLOAT(c,#structmember,flags,structname,structmember) - - -/** - Create a 64bit float attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_DOUBLE(c,flags,structname,structmember) CLASS_ATTR_DOUBLE(c,#structmember,flags,structname,structmember) - - -/** - Create a #t_symbol* attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_SYM(c,flags,structname,structmember) CLASS_ATTR_SYM(c,#structmember,flags,structname,structmember) - - -/** - Create a #t_atom attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_ATOM(c,flags,structname,structmember) CLASS_ATTR_ATOM(c,#structmember,flags,structname,structmember) - - -/** - Create a #t_object* attribute and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define STRUCT_ATTR_OBJ(c,flags,structname,structmember) CLASS_ATTR_OBJ(c,#structmember,flags,structname,structmember) - - - -// fixed size array variants - -/** - Create an array-of-chars attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the char array. -*/ -#define STRUCT_ATTR_CHAR_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_CHAR_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-long-integers attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the long array. -*/ -#define STRUCT_ATTR_LONG_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_LONG_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-32bit-floats attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the floats array. -*/ -#define STRUCT_ATTR_FLOAT_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_FLOAT_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-64bit-floats attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the double array. -*/ -#define STRUCT_ATTR_DOUBLE_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_DOUBLE_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-symbols attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_symbol* array. -*/ -#define STRUCT_ATTR_SYM_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_SYM_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-atoms attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_atom array. -*/ -#define STRUCT_ATTR_ATOM_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_ATOM_ARRAY(c,#structmember,flags,structname,structmember,size) - - -/** - Create an array-of-objects attribute of fixed length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param size The number of items in the #t_object* array. -*/ -#define STRUCT_ATTR_OBJ_ARRAY(c,flags,structname,structmember,size) CLASS_ATTR_OBJ_ARRAY(c,#structmember,flags,structname,structmember,size) - - - - -// variable size array variants - -/** - Create an array-of-chars attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the char array at any given moment. - @param maxsize The maximum number of items in the char array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_CHAR_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_CHAR_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-long-integers attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the long array at any given moment. - @param maxsize The maximum number of items in the long array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_LONG_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_LONG_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-32bit-floats attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the float array at any given moment. - @param maxsize The maximum number of items in the float array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_FLOAT_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_FLOAT_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-64bit-floats attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the double array at any given moment. - @param maxsize The maximum number of items in the double array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_DOUBLE_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_DOUBLE_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-symbols attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_symbol* array at any given moment. - @param maxsize The maximum number of items in the #t_symbol* array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_SYM_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_SYM_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-atoms attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_atom array at any given moment. - @param maxsize The maximum number of items in the #t_atom array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_ATOM_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_ATOM_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - -/** - Create an array-of-objects attribute of variable length, and add it to a Max class. - The name of the attribute is automatically determined by the name of the struct member. - - @ingroup attr - @param c The class pointer. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. - @param sizemember The actual number of items in the #t_object* array at any given moment. - @param maxsize The maximum number of items in the #t_object* array, i.e. the number of members allocated for the array in the struct. -*/ -#define STRUCT_ATTR_OBJ_VARSIZE(c,flags,structname,structmember,sizemember,maxsize) CLASS_ATTR_OBJ_VARSIZE(c,#structmember,flags,structname,structmember,sizemember,maxsize) - - - - -// class static variants -// these are unused in any c74 code -#define STATIC_ATTR_ATOMS class_addattr_atoms -#define STATIC_ATTR_PARSE class_addattr_parse -#define STATIC_ATTR_FORMAT class_addattr_format -#define STATIC_ATTR_CHAR(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(char),flags,"c",val) -#define STATIC_ATTR_LONG(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(long),flags,"l",val) -#define STATIC_ATTR_FLOAT(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(float32),flags,"f",val) -#define STATIC_ATTR_DOUBLE(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(float64),flags,"d",val) -#define STATIC_ATTR_SYM(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(symbol),flags,"s",val) -#define STATIC_ATTR_ATOM(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(atom),flags,"a",val) -#define STATIC_ATTR_OBJ(c,attrname,flags,val) STATIC_ATTR_FORMAT(c,attrname,USESYM(object),flags,"o",val) -#define STATIC_ATTR_CHAR_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(char),flags,"C",count,vals) -#define STATIC_ATTR_LONG_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(long),flags,"L",count,vals) -#define STATIC_ATTR_FLOAT_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(float32),flags,"F",count,vals) -#define STATIC_ATTR_DOUBLE_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(float64),flags,"D",count,vals) -#define STATIC_ATTR_SYM_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(symbol),flags,"S",count,vals) -#define STATIC_ATTR_ATOM_ARRAY STATIC_ATTR_ATOMS // these are really the same, included for consistency -#define STATIC_ATTR_OBJ_ARRAY(c,attrname,flags,count,vals) STATIC_ATTR_FORMAT(c,attrname,USESYM(object),flags,"O",count,vals) - - - - -// object versions, creates new object local attribute -#define OBJ_ATTR_ATOMS object_addattr_atoms -#define OBJ_ATTR_PARSE object_addattr_parse -#define OBJ_ATTR_FORMAT object_addattr_format - - -/** - Create an instance-local char attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_CHAR(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(char),flags,"c",val) - - -/** - Create an instance-local long integer attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_LONG(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(long),flags,"l",val) - - -/** - Create an instance-local 32bit float attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_FLOAT(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(float32),flags,"f",val) - - -/** - Create an instance-local 64bit float attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_DOUBLE(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(float64),flags,"d",val) - - -/** - Create an instance-local #t_symbol* attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_SYM(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(symbol),flags,"s",val) - - -/** - Create an instance-local #t_atom attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_ATOM(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(atom),flags,"a",val) - - -/** - Create an instance-local #t_object* attribute and add it to a Max class. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param val Pointer to the value. -*/ -#define OBJ_ATTR_OBJ(x,attrname,flags,val) OBJ_ATTR_FORMAT(x,attrname,USESYM(object),flags,"o",val) - - - - -/** - Create an instance-local array-of-chars attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the char array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_CHAR_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(char),flags,"C",count,vals) - - -/** - Create an instance-local array-of-long-integers attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the long array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_LONG_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(long),flags,"L",count,vals) - - -/** - Create an instance-local array-of-32bit-floats attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the float array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_FLOAT_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(float32),flags,"F",count,vals) - - -/** - Create an instance-local array-of-64bit-floats attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the double array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_DOUBLE_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(float64),flags,"D",count,vals) - - -/** - Create an instance-local array-of-symbols attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the #t_symbol* array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_SYM_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(symbol),flags,"S",count,vals) - - -/** - Create an instance-local array-of-atoms attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the #t_atom array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_ATOM_ARRAY OBJ_ATTR_ATOMS // these are really the same, included for consistency - - -/** - Create an instance-local array-of-objects attribute of fixed length, and add it to the object. - - @ingroup attr - @param x The object pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param count The number of items in the #t_object* array. - @param vals Pointer to the values. -*/ -#define OBJ_ATTR_OBJ_ARRAY(x,attrname,flags,count,vals) OBJ_ATTR_FORMAT(x,attrname,USESYM(object),flags,"O",count,vals) - - - - - -/** - Specify custom accessor methods for an attribute. - If you specify a non-NULL value for the setter or getter, - then the function you specify will be called to set or get the attribute's value - rather than using the built-in accessor. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param getter An appropriate getter method as discussed in @ref attribute_accessors, - or NULL to use the default getter. - @param setter An appropriate setter method as discussed in @ref attribute_accessors, - or NULL to use the default setter. -*/ -#define CLASS_ATTR_ACCESSORS(c,attrname,getter,setter) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - object_method(theattr,gensym("setmethod"),USESYM(get),getter); \ - object_method(theattr,gensym("setmethod"),USESYM(set),setter); } - - -/** - Add flags to an attribute. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to add to this attribute, as defined in #e_max_attrflags. -*/ -#define CLASS_ATTR_ADD_FLAGS(c,attrname,flags) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - long oldflags = object_method(theattr,gensym("getflags")); \ - object_method(theattr,gensym("setflags"),oldflags|(flags)); } - - -/** - Remove flags from an attribute. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to remove from this attribute, as defined in #e_max_attrflags. -*/ -#define CLASS_ATTR_REMOVE_FLAGS(c,attrname,flags) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - long oldflags = object_method(theattr,gensym("getflags")); \ - object_method(theattr,gensym("setflags"),oldflags&(~(flags))); } - - -/** - Add a filter to the attribute to limit the lower bound of a value. - The limiting will be performed by the default attribute accessor. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param minval The minimum acceptable value to which the attribute will be limited. - @see CLASS_ATTR_FILTER_MAX - @see CLASS_ATTR_FILTER_CLIP - @see CLASS_ATTR_MIN -*/ -#define CLASS_ATTR_FILTER_MIN(c,attrname,minval) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - attr_addfilter_clip(theattr,minval,0,1,0); } - - -/** - Add a filter to the attribute to limit the upper bound of a value. - The limiting will be performed by the default attribute accessor. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param maxval The maximum acceptable value to which the attribute will be limited. - @see CLASS_ATTR_FILTER_MIN - @see CLASS_ATTR_FILTER_CLIP - @see CLASS_ATTR_MAX -*/ -#define CLASS_ATTR_FILTER_MAX(c,attrname,maxval) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - attr_addfilter_clip(theattr,0,maxval,0,1); } - - -/** - Add a filter to the attribute to limit both the lower and upper bounds of a value. - The limiting will be performed by the default attribute accessor. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param minval The maximum acceptable value to which the attribute will be limited. - @param maxval The maximum acceptable value to which the attribute will be limited. - @see -*/ -#define CLASS_ATTR_FILTER_CLIP(c,attrname,minval,maxval) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - attr_addfilter_clip(theattr,minval,maxval,1,1); } - - -/** - Create a new attribute that is an alias of an existing attribute. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the actual attribute as a C-string. - @param aliasname The name of the new alias attribute. -*/ -#define CLASS_ATTR_ALIAS(c,attrname,aliasname) \ - { t_object *thealias; \ - t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); \ - thealias = object_clone(theattr); \ - object_method(thealias,USESYM(setname),gensym(aliasname)); \ - class_addattr(c,thealias); \ - CLASS_ATTR_ATTR_PARSE(c,aliasname,"alias",USESYM(symbol),0,attrname); } - - - - -// macros for attribute of attributes -#define CLASS_ATTR_ATTR_ATOMS class_attr_addattr_atoms -#define CLASS_ATTR_ATTR_PARSE class_attr_addattr_parse -#define CLASS_ATTR_ATTR_FORMAT class_attr_addattr_format - - -/** - Add a new attribute to the specified attribute to specify a default value. - The default value will be automatically set when the object is created only if your object uses a dictionary constructor - with the #CLASS_FLAG_NEWDICTIONARY flag. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. -*/ -#define CLASS_ATTR_DEFAULT(c,attrname,flags,parsestr) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); CLASS_ATTR_ATTR_PARSE(c,attrname,"default",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); } - - -/** - Add a new attribute to the specified attribute to indicate that the specified attribute should be saved with the patcher. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. -*/ -#define CLASS_ATTR_SAVE(c,attrname,flags) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"save",USESYM(long),flags,"1") - -/** - Add a new attribute to the specified attribute to indicate that it is saved by the object - (so it does not appear in italics in the inspector). - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - */ -#define CLASS_ATTR_SELFSAVE(c,attrname,flags) \ -CLASS_ATTR_ATTR_PARSE(c,attrname,"selfsave",USESYM(long),flags,"1") - -/** - A convenience wrapper for both #CLASS_ATTR_DEFAULT and #CLASS_ATTR_SAVE. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULT - @see CLASS_ATTR_SAVE -*/ -#define CLASS_ATTR_DEFAULT_SAVE(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULT(c,attrname,flags,parsestr); CLASS_ATTR_SAVE(c,attrname,flags); } - - -/** - Add a new attribute to the specified attribute to specify a default value, based on Max's Object Defaults. - If a value is present in Max's Object Defaults, then that value will be used as the default value. - Otherwise, use the default value specified here. - The default value will be automatically set when the object is created only if your object uses a dictionary constructor - with the #CLASS_FLAG_NEWDICTIONARY flag. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. -*/ -#define CLASS_ATTR_DEFAULTNAME(c,attrname,flags,parsestr) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); CLASS_ATTR_ATTR_PARSE(c,attrname,"defaultname",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); } - - -/** - A convenience wrapper for both #CLASS_ATTR_DEFAULTNAME and #CLASS_ATTR_SAVE. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULTNAME - @see CLASS_ATTR_SAVE -*/ -#define CLASS_ATTR_DEFAULTNAME_SAVE(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULTNAME(c,attrname,flags,parsestr); CLASS_ATTR_SAVE(c,attrname,flags); } - - -/** - Add a new attribute to the specified attribute to specify a lower range. - The values will not be automatically limited. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_MAX - @see CLASS_ATTR_FILTER_MAX - @see CLASS_ATTR_FILTER_CLIP -*/ -#define CLASS_ATTR_MIN(c,attrname,flags,parsestr) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); CLASS_ATTR_ATTR_PARSE(c,attrname,"min",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); } - - -/** - Add a new attribute to the specified attribute to specify an upper range. - The values will not be automatically limited. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_MIN - @see CLASS_ATTR_FILTER_MAX - @see CLASS_ATTR_FILTER_CLIP -*/ -#define CLASS_ATTR_MAX(c,attrname,flags,parsestr) \ - { t_object *theattr=(t_object *)class_attr_get(c,gensym(attrname)); CLASS_ATTR_ATTR_PARSE(c,attrname,"max",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); } - - -// useful attr attr macros for UI objects - -/** - Add a new attribute indicating that any changes to the specified attribute will trigger a call - to the object's paint method. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. -*/ -#define CLASS_ATTR_PAINT(c,attrname,flags) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"paint",USESYM(long),flags,"1") - - -/** - A convenience wrapper for both #CLASS_ATTR_DEFAULT and #CLASS_ATTR_PAINT. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULT - @see CLASS_ATTR_PAINT -*/ -#define CLASS_ATTR_DEFAULT_PAINT(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULT(c,attrname,flags,parsestr); CLASS_ATTR_PAINT(c,attrname,flags); } - - -/** - A convenience wrapper for #CLASS_ATTR_DEFAULT, #CLASS_ATTR_SAVE, and #CLASS_ATTR_PAINT. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULT - @see CLASS_ATTR_PAINT - @see CLASS_ATTR_SAVE -*/ -#define CLASS_ATTR_DEFAULT_SAVE_PAINT(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULT(c,attrname,flags,parsestr); CLASS_ATTR_SAVE(c,attrname,flags); CLASS_ATTR_PAINT(c,attrname,flags); } - - -/** - A convenience wrapper for #CLASS_ATTR_DEFAULTNAME, #CLASS_ATTR_SAVE, and #CLASS_ATTR_PAINT. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULTNAME - @see CLASS_ATTR_PAINT - @see CLASS_ATTR_SAVE -*/ -#define CLASS_ATTR_DEFAULTNAME_PAINT(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULTNAME(c,attrname,flags,parsestr); CLASS_ATTR_PAINT(c,attrname,flags); } - - -/** - A convenience wrapper for #CLASS_ATTR_DEFAULTNAME, #CLASS_ATTR_SAVE, and #CLASS_ATTR_PAINT. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULTNAME - @see CLASS_ATTR_PAINT - @see CLASS_ATTR_SAVE -*/ -#define CLASS_ATTR_DEFAULTNAME_SAVE_PAINT(c,attrname,flags,parsestr) \ - { CLASS_ATTR_DEFAULTNAME(c,attrname,flags,parsestr); CLASS_ATTR_SAVE(c,attrname,flags); CLASS_ATTR_PAINT(c,attrname,flags); } - - -// useful attr attr macros for inpector properties - - -/** - Add a new attribute to the specified attribute to specify an editor style for the Max inspector. - Available styles include -
      -
    • "text" : a text editor
    • -
    • "onoff" : a toggle switch
    • -
    • "rgba" : a color chooser
    • -
    • "enum" : a menu of available choices, whose symbol will be passed upon selection
    • -
    • "enumindex" : a menu of available choices, whose index will be passed upon selection
    • -
    • "rect" : a style for displaying and editing #t_rect values
    • -
    • "font" : a font chooser
    • -
    • "file" : a file chooser dialog
    • -
    - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. -*/ -#define CLASS_ATTR_STYLE(c,attrname,flags,parsestr) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"style",USESYM(symbol),flags,parsestr) - - -/** - Add a new attribute to the specified attribute to specify an a human-friendly label for the Max inspector. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param labelstr A C-string, which will be parsed into an array of atoms to set the initial value. -*/ -#define CLASS_ATTR_LABEL(c,attrname,flags,labelstr) \ - CLASS_ATTR_ATTR_FORMAT(c,attrname,"label",USESYM(symbol),flags,"s",gensym_tr(labelstr)) - - -/** - Add a new attribute to the specified attribute to specify a list of choices to display in a menu - for the Max inspector. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark This macro automatically calls - @code - CLASS_ATTR_STYLE(c,attrname,flags,"enum"). - @endcode - - @see CLASS_ATTR_ENUMINDEX -*/ -#define CLASS_ATTR_ENUM(c,attrname,flags,parsestr) \ - { CLASS_ATTR_STYLE(c,attrname,flags,"enum"); CLASS_ATTR_ATTR_PARSE(c,attrname,"enumvals",USESYM(atom),flags,parsestr); } - - -/** - Add a new attribute to the specified attribute to specify a list of choices to display in a menu - for the Max inspector. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark This macro automatically calls - @code - CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"). - @endcode - - @see CLASS_ATTR_ENUM -*/ -#define CLASS_ATTR_ENUMINDEX(c,attrname,flags,parsestr) \ - { CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); CLASS_ATTR_ATTR_PARSE(c,attrname,"enumvals",USESYM(atom),flags,parsestr); } - -// localizable versions -#define CLASS_ATTR_ENUMINDEX2(c,attrname,flags,enum1,enum2) \ -{ t_atom aaa[2]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); \ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,2,aaa); } - -#define CLASS_ATTR_ENUMINDEX3(c,attrname,flags,enum1,enum2,enum3) \ -{ t_atom aaa[3]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); atom_setsym(aaa+2,gensym_tr(enum3));\ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,3,aaa); } - -#define CLASS_ATTR_ENUMINDEX4(c,attrname,flags,enum1,enum2,enum3,enum4) \ -{ t_atom aaa[4]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); atom_setsym(aaa+2,gensym_tr(enum3)); atom_setsym(aaa+3,gensym_tr(enum4));\ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,4,aaa); } - -#define CLASS_ATTR_ENUMINDEX5(c,attrname,flags,enum1,enum2,enum3,enum4,enum5) \ -{ t_atom aaa[5]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); atom_setsym(aaa+2,gensym_tr(enum3));\ -atom_setsym(aaa+3,gensym_tr(enum4)); atom_setsym(aaa+4,gensym_tr(enum5));\ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,5,aaa); } - -#define CLASS_ATTR_ENUMINDEX6(c,attrname,flags,enum1,enum2,enum3,enum4,enum5,enum6) \ -{ t_atom aaa[6]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); atom_setsym(aaa+2,gensym_tr(enum3));\ -atom_setsym(aaa+3,gensym_tr(enum4)); atom_setsym(aaa+4,gensym_tr(enum5)); atom_setsym(aaa+5,gensym_tr(enum6));\ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,6,aaa); } - -#define CLASS_ATTR_ENUMINDEX7(c,attrname,flags,enum1,enum2,enum3,enum4,enum5,enum6,enum7) \ -{ t_atom aaa[7]; CLASS_ATTR_STYLE(c,attrname,flags,"enumindex"); atom_setsym(aaa,gensym_tr(enum1)); atom_setsym(aaa+1,gensym_tr(enum2)); atom_setsym(aaa+2,gensym_tr(enum3));\ -atom_setsym(aaa+3,gensym_tr(enum4)); atom_setsym(aaa+4,gensym_tr(enum5)); atom_setsym(aaa+5,gensym_tr(enum6)); atom_setsym(aaa+6,gensym_tr(enum7));\ -CLASS_ATTR_ATTR_ATOMS(c,attrname,"enumvals",USESYM(atom),flags,7,aaa); } - -/** - Add a new attribute to the specified attribute to specify a category to which the attribute is assigned - in the Max inspector. - Categories are represented in the inspector as tabs. - If the specified category does not exist then it will be created. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. -*/ -#define CLASS_ATTR_CATEGORY(c,attrname,flags,parsestr) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"category",USESYM(symbol),flags,str_tr(parsestr)) - - -/** - A convenience wrapper for #CLASS_ATTR_STYLE, and #CLASS_ATTR_LABEL. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param stylestr A C-string that names the style for the attribute. - See #CLASS_ATTR_STYLE for the available styles. - @param labelstr A C-string that names the category to which the attribute is assigned in the inspector. - - @see CLASS_ATTR_STYLE - @see CLASS_ATTR_LABEL -*/ -#define CLASS_ATTR_STYLE_LABEL(c,attrname,flags,stylestr,labelstr) \ - { CLASS_ATTR_ATTR_PARSE(c,attrname,"style",USESYM(symbol),flags,stylestr); CLASS_ATTR_ATTR_FORMAT(c,attrname,"label",USESYM(symbol),flags,"s",gensym_tr(labelstr)); } - - -/** - Add a new attribute to the specified attribute to flag an attribute as invisible to the Max inspector. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. -*/ -#define CLASS_ATTR_INVISIBLE(c,attrname,flags) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"invisible",USESYM(long),flags,"1") - - -/** - Add a new attribute to the specified attribute to specify a default order in which to list attributes. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark A value of zero indicates that there is no ordering. Ordering values begin at 1. For example: - @code - CLASS_ATTR_ORDER(c, "firstattr", 0, "1"); - CLASS_ATTR_ORDER(c, "secondattr", 0, "2"); - CLASS_ATTR_ORDER(c, "thirdattr", 0, "3"); - @endcode -*/ -#define CLASS_ATTR_ORDER(c,attrname,flags,parsestr) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"order",USESYM(long),flags,parsestr) - -/** - Add a new attribute to the specified attribute to specify that it should appear in the inspector's Basic tab. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - - */ -#define CLASS_ATTR_BASIC(c,attrname,flags) \ -CLASS_ATTR_ATTR_PARSE(c,attrname,"basic",USESYM(long),flags,"1") - - - - -// useful attr attr macro for objects that embed binary data as base64 - -#define CLASS_ATTR_ATOMARRAY(c,attrname,flags) \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"atomarray",USESYM(long),flags,"1") - - -/** Define and add attributes to class methods. - @ingroup attr - @param c The class pointer. - @param methodname The name of the existing method as a C-string. - @param attrname The name of the attribute to add as a C-string. - @param type The datatype of the attribute to be added. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestring A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark An example which makes a method invisible to users: - @code - class_addmethod(c, (method)my_foo, "foo", 0); - CLASS_METHOD_ATTR_PARSE(c, "foo", "undocumented", gensym("long"), 0, "1"); - @endcode -*/ -#define CLASS_METHOD_ATTR_PARSE(c,methodname,attrname,type,flags,parsestring) \ - { t_hashtab *methods=NULL; \ - t_object *m=NULL; \ - methods = (t_hashtab *)class_extra_lookup(c,gensym("methods")); \ - if (methods) { \ - hashtab_lookup(methods,gensym((methodname)),&m); \ - if (m) \ - object_addattr_parse(m,attrname,type,flags,parsestring); \ - } \ - } - - -/** - Add a new attribute to the specified attribute to specify a legacy default value. - The default value will be automatically set when the object is created only if your object uses a dictionary constructor - with the #CLASS_FLAG_NEWDICTIONARY flag. - - @ingroup attr - @param c The class pointer. - @param legacyattrname The name of the attribute. - @param newattrname The name of the attribute. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the legacy value, used by jbox_processlegacydefaults() - */ -#define CLASS_ATTR_LEGACYDEFAULT(c,legacyattrname,newattrname,flags,parsestr) \ -{ \ - t_object *theattr = (t_object *)class_attr_get(c,gensym(legacyattrname)); \ - t_hashtab *legs = NULL; \ - CLASS_ATTR_ATTR_PARSE(c,legacyattrname,"legacydefault",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); \ - legs = (t_hashtab *)class_extra_lookup(c, gensym("legacydefaults")); \ - if (legs == NULL) { \ - legs = (t_hashtab *)hashtab_new(0); hashtab_flags(legs, OBJ_FLAG_DATA); \ - class_extra_store(c, gensym("legacydefaults"), (t_object *)legs); \ - } \ - hashtab_store(legs, gensym(legacyattrname), (t_object *)gensym(newattrname)); \ -} - - -/** - Add a new attribute to the specified attribute to flag it as obsolete. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - */ -#define CLASS_ATTR_OBSOLETE(c,attrname,flags) \ -{ \ - t_object *attr; \ - attr = (t_object *)class_attr_get(c,gensym(attrname)); \ - if (!attr) { \ - attr = attribute_new(attrname, USESYM(atom), 0, (method)object_attr_obsolete_getter, (method)object_attr_obsolete_setter); \ - class_addattr(c, attr); \ - } \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"obsolete",USESYM(long),flags,"1"); \ - CLASS_ATTR_ATTR_PARSE(c,attrname,"invisible",USESYM(long),flags,"1"); \ -} - - -/** - Add a new attribute to the specified attribute to flag it as renamed. - - @ingroup attr - @param c The class pointer. - @param oldname The name of the old attribute as a C-string. - @param newname The name of the new attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - */ -#define CLASS_ATTR_RENAMED(c,oldname,newname,flags) \ -{ \ - CLASS_ATTR_OBSOLETE(c,oldname,flags); \ - CLASS_ATTR_ATTR_PARSE(c,oldname,"renamed",USESYM(symbol),flags,newname); \ -} - - -/** - Add a new attribute to the specified attribute to indicate in which version the attribute was introduced. - - @ingroup attr - @param c The class pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param versionstr A C-string, which will be parsed set the version number (e.g. "7.0.0"). - */ -#define CLASS_ATTR_INTRODUCED(c,attrname,flags,versionstr) \ -CLASS_ATTR_ATTR_PARSE(c,attrname,"introduced",USESYM(symbol),flags,str_tr(versionstr)) - - -/** - Add a new attribute to the specified method to flag it as obsolete. - - @ingroup attr - @param c The class pointer. - @param methodname The name of the method as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - */ -#define CLASS_METHOD_OBSOLETE(c,methodname,flags) \ -{ t_hashtab *methods=NULL; \ - t_object *m=NULL; \ - methods = (t_hashtab *)class_extra_lookup(c,gensym("methods")); \ - if (methods) { \ - hashtab_lookup(methods,gensym((methodname)),&m); \ - if (!m) \ - { \ - class_addmethod(c,(method)object_method_obsolete,methodname,A_GIMME,0L); \ - hashtab_lookup(methods,gensym((methodname)),&m); \ - } \ - if (m) \ - { \ - object_addattr_parse(m,"invisible",USESYM(long),flags,"1"); \ - object_addattr_parse(m,"obsolete",USESYM(long),flags,"1"); \ - } \ - } \ -} - -/** - Add a new attribute to the specified method to flag a method as renamed. - - @ingroup attr - @param c The class pointer. - @param oldname The name of the old method as a C-string. - @param newname The name of the new method as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - */ -#define CLASS_METHOD_RENAMED(c,oldname,newname,flags) \ -{ \ - CLASS_METHOD_OBSOLETE(c,oldname,flags); \ - CLASS_METHOD_ATTR_PARSE(c,oldname,"renamed",USESYM(symbol),flags,newname); \ -} - -/** - Add a new attribute to the specified method to indicate in which version the method was introduced. - - @ingroup attr - @param c The class pointer. - @param methodname The name of the method as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param versionstr A C-string, which will be parsed set the version number (e.g. "7.0.0"). - */ -#define CLASS_METHOD_INTRODUCED(c,methodname,flags,versionstr) \ -CLASS_METHOD_ATTR_PARSE(c,methodname,"introduced",USESYM(symbol),flags,str_tr(versionstr)) - - -#define OBJ_ATTR_ATTR_ATOMS object_attr_addattr_atoms -#define OBJ_ATTR_ATTR_PARSE object_attr_addattr_parse -#define OBJ_ATTR_ATTR_FORMAT object_attr_addattr_format - - -/** - An instance-attribute version of #CLASS_ATTR_DEFAULT. - - @ingroup attr - @param x The #t_object instance pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULT -*/ -#define OBJ_ATTR_DEFAULT(x,attrname,flags,parsestr) \ - { t_object *theattr=(t_object *)object_attr_get(x,gensym(attrname)); OBJ_ATTR_ATTR_PARSE(x,attrname,"default",(t_symbol *)object_method(theattr,USESYM(gettype)),flags,parsestr); } - - -/** - An instance-attribute version of #CLASS_ATTR_SAVE. - - @ingroup attr - @param x The #t_object instance pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @see CLASS_ATTR_SAVE -*/ -#define OBJ_ATTR_SAVE(x,attrname,flags) \ - OBJ_ATTR_ATTR_PARSE(x,attrname,"save",USESYM(long),flags,"1") - - -/** - An instance-attribute version of #CLASS_ATTR_DEFAULT_SAVE. - - @ingroup attr - @param x The #t_object instance pointer. - @param attrname The name of the attribute as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - @see CLASS_ATTR_DEFAULT_SAVE -*/ -#define OBJ_ATTR_DEFAULT_SAVE(x,attrname,flags,parsestr) \ - { OBJ_ATTR_DEFAULT(x,attrname,flags,parsestr); OBJ_ATTR_SAVE(x,attrname,flags); } - - -// sticky macros for attribute attributes, and method attributes. Useful for defining attribute groups - -/** - Create an attribute, and add it to all following attribute declarations. - The block is closed by a call to #CLASS_STICKY_ATTR_CLEAR. - - @ingroup attr - @param c The class pointer. - @param name The name of the new attribute to create as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark The most common use of CLASS_STICKY_ATTR is for creating multiple attributes with the same category, - as in this example: - @code - CLASS_STICKY_ATTR(c, "category", 0, "Foo"); - - CLASS_ATTR_DOUBLE(c, "bar", 0, t_myobject, x_bar); - CLASS_ATTR_LABEL(c, "bar", 0, "A Bar"); - - CLASS_ATTR_CHAR(c, "switch", 0, t_myobject, x_switch); - CLASS_ATTR_STYLE_LABEL(c, "switch", 0, "onoff", "Bar Switch"); - - CLASS_ATTR_DOUBLE(c, "flow", 0, t_myobject, x_flow); - CLASS_ATTR_LABEL(c, "flow", 0, "Flow Amount"); - - CLASS_STICKY_ATTR_CLEAR(c, "category"); - @endcode - - @see CLASS_STICKY_ATTR_CLEAR -*/ -#define CLASS_STICKY_ATTR(c,name,flags,parsestr) \ - { t_object *attr = attribute_new_parse(name,NULL,flags,parsestr); class_sticky(c,gensym("sticky_attr"),gensym(name),attr); } - - -/** - Close a #CLASS_STICKY_ATTR block. - - @ingroup attr - @param c The class pointer. - @param name The name of the sticky attribute as a C-string. - @see CLASS_STICKY_ATTR -*/ -#define CLASS_STICKY_ATTR_CLEAR(c,name) class_sticky_clear(c,gensym("sticky_attr"),name?gensym(name):NULL) - -#define CLASS_STICKY_CATEGORY(c,flags,name) \ -{ t_object *attr = attribute_new_format("category",NULL,flags,"s",gensym_tr(name)); class_sticky(c,gensym("sticky_attr"),gensym("category"),attr); } - -#define CLASS_STICKY_CATEGORY_CLEAR(c) class_sticky_clear(c,gensym("sticky_attr"),gensym("category")) - -/** - Create an attribute, and add it to all following method declarations. - The block is closed by a call to #CLASS_STICKY_METHOD_CLEAR. - - @ingroup attr - @param c The class pointer. - @param name The name of the new attribute to create as a C-string. - @param flags Any flags you wish to declare for this new attribute, as defined in #e_max_attrflags. - @param parsestr A C-string, which will be parsed into an array of atoms to set the initial value. - - @remark The most common use of CLASS_STICKY_ATTR is for creating multiple attributes with the same category, - as in this example: - @code - CLASS_STICKY_METHOD(c, "undocumented", 0, "1"); - - // add some methods here with class_addmethod() - // the undocumented attribute for methods means that the ref-page - // generator will ignore these methods. - - CLASS_STICKY_METHOD_CLEAR(c, "undocumented"); - @endcode - - @see CLASS_STICKY_METHOD_CLEAR -*/ -#define CLASS_STICKY_METHOD(c,name,flags,parsestr) \ - { t_object *attr = attribute_new_parse(name,NULL,flags,parsestr); class_sticky(c,gensym("sticky_method"),gensym(name),attr); } - - -/** - Close a #CLASS_STICKY_METHOD block. - - @ingroup attr - @param c The class pointer. - @param name The name of the sticky attribute as a C-string. - @see CLASS_STICKY_METHOD -*/ -#define CLASS_STICKY_METHOD_CLEAR(c,name) class_sticky_clear(c,gensym("sticky_method"),name?gensym(name):NULL) - - - - -// support for long lists - -#define OBEX_UTIL_MAX_ATOM_GETBYTES 1048576 -#define OBEX_UTIL_MAX_ATOM_STATIC 2048 - - -//static memory case -#define OBEX_UTIL_ATOM_SETUP_VAR_STATIC t_atom atemp[OBEX_UTIL_MAX_ATOM_STATIC]; t_atom *av2=atemp; long ac2=OBEX_UTIL_MAX_ATOM_STATIC; -#define OBEX_UTIL_ATOM_CLEANUP_VAR_STATIC -#define OBEX_UTIL_ATOM_SETUP_ARRAY_STATIC(ac) t_atom atemp[OBEX_UTIL_MAX_ATOM_STATIC]; t_atom *av2=atemp; long ac2; ac2 = MIN(ac,OBEX_UTIL_MAX_ATOM_STATIC); -#define OBEX_UTIL_ATOM_CLEANUP_ARRAY_STATIC(ac) - -//dynamic memory case -#define OBEX_UTIL_ATOM_SETUP_VAR_DYN t_atom *av2=NULL; long ac2=0; -#define OBEX_UTIL_ATOM_CLEANUP_VAR_DYN if (ac2&&av2) mm_freebytes((char *)av2,sizeof(t_atom)*ac2); -#define OBEX_UTIL_ATOM_SETUP_ARRAY_DYN(ac) t_atom *av2=NULL; long ac2=0; av2 = (t_atom *)mm_getbytes(sizeof(t_atom)*ac); ac2 = ac; -#define OBEX_UTIL_ATOM_CLEANUP_ARRAY_DYN(ac) if (ac2&&av2) mm_freebytes(av2,sizeof(t_atom)*ac2); - - -//combo static/dynamic. faster for smaller atom lists on input, but not limited -#define OBEX_UTIL_ATOM_SETUP_VAR_COMBO OBEX_UTIL_ATOM_SETUP_VAR_DYN // same for VAR -#define OBEX_UTIL_ATOM_CLEANUP_VAR_COMBO OBEX_UTIL_ATOM_CLEANUP_VAR_DYN // same for VAR -#define OBEX_UTIL_ATOM_SETUP_ARRAY_COMBO(ac) \ - t_atom atemp[OBEX_UTIL_MAX_ATOM_STATIC]; \ - t_atom *av2=atemp; \ - long ac2; \ - long usestatic=1; \ - ac2 = MIN(ac,OBEX_UTIL_MAX_ATOM_STATIC); \ - if (ac>OBEX_UTIL_MAX_ATOM_STATIC) { usestatic=0; av2 = (t_atom *)mm_getbytes(sizeof(t_atom)*ac); ac2=ac; } -#define OBEX_UTIL_ATOM_CLEANUP_ARRAY_COMBO(ac) if ((!usestatic)&&ac2&&av2) mm_freebytes((char *)av2,sizeof(t_atom)*ac2); - - -// default to combo -#define OBEX_UTIL_ATOM_SETUP_VAR OBEX_UTIL_ATOM_SETUP_VAR_COMBO -#define OBEX_UTIL_ATOM_CLEANUP_VAR OBEX_UTIL_ATOM_CLEANUP_VAR_COMBO -#define OBEX_UTIL_ATOM_SETUP_ARRAY OBEX_UTIL_ATOM_SETUP_ARRAY_COMBO -#define OBEX_UTIL_ATOM_CLEANUP_ARRAY OBEX_UTIL_ATOM_CLEANUP_ARRAY_COMBO - - -/** - Flags that determine how functions convert atoms into text (C-strings). - @ingroup atom -*/ -typedef enum{ - OBEX_UTIL_ATOM_GETTEXT_DEFAULT = 0x00000000, ///< default translation rules for getting text from atoms - OBEX_UTIL_ATOM_GETTEXT_TRUNCATE_ZEROS = 0x00000001, ///< eliminate redundant zeros for floating point numbers (default used) - OBEX_UTIL_ATOM_GETTEXT_SYM_NO_QUOTE = 0x00000002, ///< don't introduce quotes around symbols with spaces - OBEX_UTIL_ATOM_GETTEXT_SYM_FORCE_QUOTE = 0x00000004, ///< always introduce quotes around symbols (useful for JSON) - OBEX_UTIL_ATOM_GETTEXT_COMMA_DELIM = 0x00000008, ///< separate atoms with commas (useful for JSON) - OBEX_UTIL_ATOM_GETTEXT_FORCE_ZEROS = 0x00000010, ///< always print the zeros - OBEX_UTIL_ATOM_GETTEXT_NUM_HI_RES = 0x00000020, ///< print more decimal places - OBEX_UTIL_ATOM_GETTEXT_NUM_LO_RES = 0x00000040, ///< print fewer decimal places (HI_RES will win though) - OBEX_UTIL_ATOM_GETTEXT_NOESCAPE = 0x00000080, ///< don't add extra escape characters - OBEX_UTIL_ATOM_GETTEXT_LINEBREAK_NODELIM = 0x00000100, ///< don't insert spaces before/after linebreak characters -} e_max_atom_gettext_flags; - - -// atom utilities (will move to atomutils2.c) - -/** - Assign an array of char values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of chars. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setchar_array(long ac, t_atom *av, long count, unsigned char *vals); - - -/** - Assign an array of long integer values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of longs. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setlong_array(long ac, t_atom *av, long count, t_atom_long *vals); - - -/** - Assign an array of 32bit float values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of floats. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setfloat_array(long ac, t_atom *av, long count, float *vals); - - -/** - Assign an array of 64bit float values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of doubles. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setdouble_array(long ac, t_atom *av, long count, double *vals); - - -/** - Assign an array of #t_symbol* values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of symbols. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setsym_array(long ac, t_atom *av, long count, t_symbol **vals); - - -/** - Assign an array of #t_atom values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the second array of atoms. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setatom_array(long ac, t_atom *av, long count, t_atom *vals); - - -/** - Assign an array of #t_object* values to an array of atoms. - - @ingroup atom - @param ac The number of atoms to try to fetch from the array of objects. - You should have at least this number of atoms allocated in av. - @param av The address to the first of an array of allocated atoms. - @param count The number of values in the array specified by vals. - @param vals The array from which to copy the values into the array of atoms at av. - @return A Max error code. -*/ -t_max_err atom_setobj_array(long ac, t_atom *av, long count, t_object **vals); - - -// these variable size calls can alloc mem if desired - -/** - Parse a C-string into an array of atoms. - This function allocates memory for the atoms if the ac and av parameters are NULL. - Otherwise it will attempt to use any memory already allocated to av. - Any allocated memory should be freed with sysmem_freeptr(). - - @ingroup atom - @param ac The address of a variable to hold the number of returned atoms. - @param av The address of a #t_atom pointer to which memory may be allocated and atoms copied. - @param parsestr The C-string to parse. - @return A Max error code. - - @remark The following example will parse the string "foo bar 1 2 3.0" into an array of 5 atoms. - The atom types will be determined automatically as 2 #A_SYM atoms, 2 #A_LONG atoms, and 1 #A_FLOAT atom. - @code - t_atom *av = NULL; - long ac = 0; - t_max_err err = MAX_ERR_NONE; - - err = atom_setparse(&ac, &av, "foo bar 1 2 3.0"); - @endcode -*/ -t_max_err atom_setparse(long *ac, t_atom **av, C74_CONST char *parsestr); - - -t_max_err atom_setbinbuf(long *ac, t_atom **av, void *buf); - - -t_max_err atom_setattrval(long *ac, t_atom **av, t_symbol *attrname, t_object *obj); - - -t_max_err atom_setobjval(long *ac, t_atom **av, t_object *obj); - - - - -/** - Create an array of atoms populated with values using sprintf-like syntax. - atom_setformat() supports clfdsoaCLFDSOA tokens - (primitive type scalars and arrays respectively for the - char, long, float, double, #t_symbol*, #t_object*, #t_atom*). - It also supports vbp@ tokens (obval, binbuf, parsestr, attribute). - - This function allocates memory for the atoms if the ac and av parameters are NULL. - Otherwise it will attempt to use any memory already allocated to av. - Any allocated memory should be freed with sysmem_freeptr(). - - @ingroup atom - - @param ac The address of a variable to hold the number of returned atoms. - @param av The address of a #t_atom pointer to which memory may be allocated and atoms copied. - @param fmt An sprintf-style format string specifying values for the atoms. - @param ... One or more arguments which are to be substituted into the format string. - - @return A Max error code. - @see atom_getformat() - @see atom_setparse() -*/ -t_max_err atom_setformat(long *ac, t_atom **av, C74_CONST char *fmt, ...); - -// same as atom_setformat using va_list -t_max_err atom_setformat_va(long *ac, t_atom **av, C74_CONST char *fmt, va_list args); - - -/** - Retrieve values from an array of atoms using sscanf-like syntax. - atom_getformat() supports clfdsoaCLFDSOA tokens - (primitive type scalars and arrays respectively for the - char, long, float, double, #t_symbol*, #t_object*, #t_atom*). - It does not support vbp@ the tokens found in atom_setformat(). - - @ingroup atom - - @param ac The number of atoms to parse in av. - @param av The address of the first #t_atom pointer in an array to parse. - @param fmt An sscanf-style format string specifying types for the atoms. - @param ... One or more arguments which are address of variables to be set according to the fmt string. - - @return A Max error code. - @see atom_setformat() -*/ -t_max_err atom_getformat(long ac, t_atom *av, C74_CONST char *fmt, ...); - -// same as atom_getformat using va_list -t_max_err atom_getformat_va(long ac, t_atom *av, C74_CONST char *fmt, va_list args); - - -/** - Convert an array of atoms into a C-string. - - @ingroup atom - - @param ac The number of atoms to fetch in av. - @param av The address of the first #t_atom pointer in an array to retrieve. - @param textsize The size of the string to which the atoms will be formatted and copied. - @param text The address of the string to which the text will be written. - @param flags Determines the rules by which atoms will be translated into text. - Values are bit mask as defined by #e_max_atom_gettext_flags. - - @return A Max error code. - @see atom_setparse() -*/ -t_max_err atom_gettext(long ac, t_atom *av, long *textsize, char **text, long flags); - - -/** - Convert an array of atoms into a C-string, specifying floating-point precision. - - @ingroup atom - - @param ac The number of atoms to fetch in av. - @param av The address of the first #t_atom pointer in an array to retrieve. - @param textsize The size of the string to which the atoms will be formatted and copied. - @param text The address of the string to which the text will be written. - @param flags Determines the rules by which atoms will be translated into text. - Values are bit mask as defined by #e_max_atom_gettext_flags. - @param precision Determines the number of digits after the decimal point when floats are translated into text. - This overrides the OBEX_UTIL_ATOM_GETTEXT_NUM_HI_RES and - OBEX_UTIL_ATOM_GETTEXT_NUM_LO_RES #e_max_atom_gettext_flags. - Pass -1 to ignore this value and behave as atom_gettext(). - - @return A Max error code. - @see atom_setparse() -*/ -t_max_err atom_gettext_precision(long ac, t_atom *av, long *textsize, char **text, long flags, long precision); - - -/** - Fetch an array of char values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getchar_array(long ac, t_atom *av, long count, unsigned char *vals); - - -/** - Fetch an array of long integer values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getlong_array(long ac, t_atom *av, long count, t_atom_long *vals); - - -/** - Fetch an array of 32bit float values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getfloat_array(long ac, t_atom *av, long count, float *vals); - - -/** - Fetch an array of 64bit float values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getdouble_array(long ac, t_atom *av, long count, double *vals); - - -/** - Fetch an array of #t_symbol* values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getsym_array(long ac, t_atom *av, long count, t_symbol **vals); - - -/** - Fetch an array of #t_atom values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getatom_array(long ac, t_atom *av, long count, t_atom *vals); - - -/** - Fetch an array of #t_object* values from an array of atoms. - - @ingroup atom - @param ac The number of atoms allocated in the av parameter. - @param av The address to the first of an array of allocated atoms. - @param count The number of values to fetch from the array specified by vals. - @param vals The address of the array to which is copied the values from av. - @return A Max error code. -*/ -t_max_err atom_getobj_array(long ac, t_atom *av, long count, t_object **vals); - - - -/** - Determines whether or not an atom represents a #t_string object. - - @ingroup atom - @param a The address of the atom to test. - @return Returns true if the #t_atom contains a valid #t_string object. -*/ -long atomisstring(const t_atom *a); - - -/** - Determines whether or not an atom represents a #t_atomarray object. - - @ingroup atom - @param a The address of the atom to test. - @return Returns true if the #t_atom contains a valid #t_atomarray object. -*/ -long atomisatomarray(t_atom *a); - - -/** - Determines whether or not an atom represents a #t_dictionary object. - - @ingroup atom - @param a The address of the atom to test. - @return Returns true if the #t_atom contains a valid #t_dictionary object. -*/ -long atomisdictionary(t_atom *a); - - -// quick object programming macros -#define OB_MSG(x,p) object_method_parse(x,NULL,p,NULL); - -//object_method_typed utilities - -/** - Convenience wrapper for object_method_typed() that uses atom_setparse() to define the arguments. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param parsestr A C-string to parse into an array of atoms to pass to the method. - @param rv The address of an atom to hold a return value. - @return A Max error code. - - @see object_method_typed() - @see atom_setparse() -*/ -t_max_err object_method_parse(t_object *x, t_symbol *s, C74_CONST char *parsestr, t_atom *rv); -t_max_err object_method_binbuf(t_object *x, t_symbol *s, void *buf, t_atom *rv); -t_max_err object_method_attrval(t_object *x, t_symbol *s, t_symbol *attrname, t_object *obj, t_atom *rv); -t_max_err object_method_objval(t_object *x, t_symbol *s, t_object *obj, t_atom *rv); - -/** - Convenience wrapper for object_method_typed() that uses atom_setformat() to define the arguments. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param rv The address of an atom to hold a return value. - @param fmt An sprintf-style format string specifying values for the atoms. - @param ... One or more arguments which are to be substituted into the format string. - @return A Max error code. - - @see object_method_typed() - @see atom_setformat() -*/ -t_max_err object_method_format(t_object *x, t_symbol *s, t_atom *rv, C74_CONST char *fmt, ...); - - - -/** - Convenience wrapper for object_method_typed() that passes a single char as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_char(t_object *x, t_symbol *s, unsigned char v, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes a single long integer as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_long(t_object *x, t_symbol *s, long v, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes a single 32bit float as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_float(t_object *x, t_symbol *s, float v, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes a single 64bit float as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_double(t_object *x, t_symbol *s, double v, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes a single #t_symbol* as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_sym(t_object *x, t_symbol *s, t_symbol *v, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes a single #t_object* as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param v An argument to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_obj(t_object *x, t_symbol *s, t_object *v, t_atom *rv); - - - -/** - Convenience wrapper for object_method_typed() that passes an array of char values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_char_array(t_object *x, t_symbol *s, long ac, unsigned char *av, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes an array of long integers values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_long_array(t_object *x, t_symbol *s, long ac, t_atom_long *av, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes an array of 32bit floats values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_float_array(t_object *x, t_symbol *s, long ac, float *av, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes an array of 64bit float values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_double_array(t_object *x, t_symbol *s, long ac, double *av, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes an array of #t_symbol* values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_sym_array(t_object *x, t_symbol *s, long ac, t_symbol **av, t_atom *rv); - - -/** - Convenience wrapper for object_method_typed() that passes an array of #t_object* values as an argument. - - @ingroup obj - @param x The object to which the message will be sent. - @param s The name of the method to call on the object. - @param ac The number of arguments to pass to the method. - @param av The address of the first of the array of arguments to pass to the method. - @param rv The address of an atom to hold a return value. - - @return A Max error code. - @see object_method_typed() -*/ -t_max_err object_method_obj_array(t_object *x, t_symbol *s, long ac, t_object **av, t_atom *rv); - - -// call_method_typed utilities -- not currently used in any Cycling '74 code - -t_max_err call_method_typed(method m, t_object *x, t_symbol *s, long ac, t_atom *av, t_atom *rv); -t_max_err call_method_parse(method m, t_object *x, t_symbol *s, char *parsestr, t_atom *rv); -t_max_err call_method_binbuf(method m, t_object *x, t_symbol *s, void *buf, t_atom *rv); -t_max_err call_method_attrval(method m, t_object *x, t_symbol *s, t_symbol *attrname, t_object *obj, t_atom *rv); -t_max_err call_method_objval(method m, t_object *x, t_symbol *s, t_object *obj, t_atom *rv); -t_max_err call_method_format(method m, t_object *x, t_symbol *s, t_atom *rv, char *fmt, ...); - -t_max_err call_method_char(method m, t_object *x, t_symbol *s, unsigned char v, t_atom *rv); -t_max_err call_method_long(method m, t_object *x, t_symbol *s, long v, t_atom *rv); -t_max_err call_method_float(method m, t_object *x, t_symbol *s,float v, t_atom *rv); -t_max_err call_method_double(method m, t_object *x, t_symbol *s, double v, t_atom *rv); -t_max_err call_method_sym(method m, t_object *x, t_symbol *s, t_symbol *v, t_atom *rv); -t_max_err call_method_obj(method m, t_object *x, t_symbol *s, t_object *v, t_atom *rv); - -t_max_err call_method_char_array(method m, t_object *x, t_symbol *s, long ac, unsigned char *av, t_atom *rv); -t_max_err call_method_long_array(method m, t_object *x, t_symbol *s, long ac, t_atom_long *av, t_atom *rv); -t_max_err call_method_float_array(method m, t_object *x, t_symbol *s, long ac, float *av, t_atom *rv); -t_max_err call_method_double_array(method m, t_object *x, t_symbol *s, long ac, double *av, t_atom *rv); -t_max_err call_method_sym_array(method m, t_object *x, t_symbol *s, long ac, t_symbol **av, t_atom *rv); -t_max_err call_method_obj_array(method m, t_object *x, t_symbol *s, long ac, t_object **av, t_atom *rv); - - -// object attribute methods (will move to attribtue_util.c with the rest of these) - -/** - Set an attribute value with one or more atoms parsed from a C-string. - - @ingroup attr - @param x The object whose attribute will be set. - @param s The name of the attribute to set. - @param parsestr A C-string to parse into an array of atoms to set the attribute value. - @return A Max error code. - @see atom_setparse() -*/ -t_max_err object_attr_setparse(t_object *x, t_symbol *s, C74_CONST char *parsestr); -t_max_err object_attr_setbinbuf(t_object *x, t_symbol *s, void *buf); -t_max_err object_attr_setattrval(t_object *x, t_symbol *s, t_symbol *attrname, t_object *obj); -t_max_err object_attr_setobjval(t_object *x, t_symbol *s, t_object *obj); -t_max_err object_attr_setformat(t_object *x, t_symbol *s, C74_CONST char *fmt, ...); - - -// t_attribute these probably belong in attribute.c -t_object *attribute_new_atoms(C74_CONST char *attrname, t_symbol *type, long flags, long ac, t_atom *av); -t_object *attribute_new_parse(C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *parsestr); -t_object *attribute_new_binbuf(C74_CONST char *attrname, t_symbol *type, long flags, void *buf); -t_object *attribute_new_attrval(C74_CONST char *attrname, t_symbol *type, long flags, t_symbol *objattrname, t_object *obj); -t_object *attribute_new_objval(C74_CONST char *attrname, t_symbol *type, long flags, t_object *obj); -t_object *attribute_new_format(C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *fmt, ...); - - -// general object constructors for objects with typed constructors - -/** - Create a new object with one or more atoms parsed from a C-string. - The object's new method must have an #A_GIMME signature. - - @ingroup attr - @param name_space The namespace in which to create the instance. Typically this is either #CLASS_BOX or #CLASS_NOBOX. - @param classname The name of the class to instantiate. - @param parsestr A C-string to parse into an array of atoms to set the attribute value. - - @return A pointer to the new instance. - @see atom_setparse() - @see object_new_typed() -*/ -void *object_new_parse(t_symbol *name_space, t_symbol *classname, C74_CONST char *parsestr); -void *object_new_binbuf(t_symbol *name_space, t_symbol *classname, void *buf); -void *object_new_attrval(t_symbol *name_space, t_symbol *classname, t_symbol *objattrname, t_object *obj); -void *object_new_objval(t_symbol *name_space, t_symbol *classname, t_object *obj); -void *object_new_format(t_symbol *name_space, t_symbol *classname, C74_CONST char *fmt, ...); // not used or tested in any Cycling '74 code - - -// attr attr functions necessary due to offset attributes as singletons for the class -// need to copy object local to set any attributes. -// undocumented for now in favor of using the macros defined above. - -t_max_err object_attr_addattr(t_object *x, t_symbol *attrname, t_object *attr); -t_object *object_attr_attr_get(t_object *x, t_symbol *attrname, t_symbol *attrname2); -t_max_err object_attr_attr_setvalueof(t_object *x, t_symbol *attrname, t_symbol *attrname2, long argc, t_atom *argv); -t_max_err object_attr_attr_getvalueof(t_object *x, t_symbol *attrname, t_symbol *attrname2, long *argc, t_atom **argv); - -t_max_err class_attr_addattr(t_class *c, t_symbol *attrname, t_object *attr); -t_object *class_attr_attr_get(t_class *c, t_symbol *attrname, t_symbol *attrname2); -t_max_err class_attr_attr_setvalueof(t_class *c, t_symbol *attrname, t_symbol *attrname2, long argc, t_atom *argv); -t_max_err class_attr_attr_getvalueof(t_class *c, t_symbol *attrname, t_symbol *attrname2, long *argc, t_atom **argv); - -t_max_err object_attr_enforcelocal(t_object *x, t_symbol *attrname); - -t_max_err class_addattr_atoms(t_class *c, C74_CONST char *attrname, t_symbol *type, long flags, long ac, t_atom *av); -t_max_err class_addattr_parse(t_class *c, C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *parsestr); -t_max_err class_addattr_format(t_class *c, C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *fmt, ...); -t_max_err class_attr_addattr_atoms(t_class *c, C74_CONST char *attrname, C74_CONST char *attrname2, t_symbol *type, long flags, long ac, t_atom *av); -t_max_err class_attr_addattr_parse(t_class *c, C74_CONST char *attrname, C74_CONST char *attrname2, t_symbol *type, long flags, C74_CONST char *parsestr); -t_max_err class_attr_addattr_format(t_class *c, C74_CONST char *attrname, C74_CONST char *attrname2, C74_CONST t_symbol *type, long flags, C74_CONST char *fmt, ...); - -t_max_err object_addattr_atoms(t_object *x, C74_CONST char *attrname, t_symbol *type, long flags, long ac, t_atom *av); -t_max_err object_addattr_parse(t_object *x, C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *parsestr); -t_max_err object_addattr_format(t_object *x, C74_CONST char *attrname, t_symbol *type, long flags, C74_CONST char *fmt, ...); -t_max_err object_attr_addattr_atoms(t_object *x, C74_CONST char *attrname, C74_CONST char *attrname2, t_symbol *type, long flags, long ac, t_atom *av); -t_max_err object_attr_addattr_parse(t_object *x, C74_CONST char *attrname, C74_CONST char *attrname2, t_symbol *type, long flags, C74_CONST char *parsestr); -t_max_err object_attr_addattr_format(t_object *x, C74_CONST char *attrname, C74_CONST char *attrname2, t_symbol *type, long flags, C74_CONST char *fmt, ...); - - -// other general functions from obex.c -t_object *object_clone(t_object *x); -t_object *object_clone_generic(t_object *x); - -// this function has been de-activated and now does nothing -void object_zero(t_object *x); - - -// menu command stuff - -t_max_err class_addcommand(t_class *c, method cmd, method enabler, method handler, C74_CONST char *message); -void *object_commandenabled(t_object *o, t_symbol *cmd); -t_max_err object_getenabler(t_object *c, t_symbol *cmd, method *m); -t_max_err object_getcommand(t_object *o, t_symbol *cmd, method *m); -void *object_handlecommand(t_object *o, t_symbol *s, long argc, t_atom *argv, t_atom *rv); - -t_ptr_int object_attr_getdisabled(t_object *o, t_symbol *attrname); -t_max_err object_attr_setdisabled(t_object *o, t_symbol *attrname, long way); - -// arg replacing (for objects that save their own way in dictionaries and want values treated as "attributes" would be) -t_max_err object_replaceargs(t_object *x, long argc, t_atom *argv, char match, char poundfill); - -// stubs for obsolete attrs/methods -t_max_err object_attr_obsolete_getter(t_object *x, t_object *attr, long *ac, t_atom **av); -t_max_err object_attr_obsolete_setter(t_object *x, t_object *attr, long ac, t_atom *av); -void object_method_obsolete(t_object *x, t_symbol *s, long ac, t_atom *av); - - -END_USING_C_LINKAGE - -#endif //_EXT_OBEX_UTIL_H_ diff --git a/source/c74support/max-includes/ext_obstring.h b/source/c74support/max-includes/ext_obstring.h deleted file mode 100644 index 1a41bccd..00000000 --- a/source/c74support/max-includes/ext_obstring.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * obstring.h - * - * Copyright 2006 Cycling '74. All rights reserved. - * - */ - -#ifndef _EXT_OBSTRING_H_ -#define _EXT_OBSTRING_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** - The string object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup string -*/ -typedef struct _string -{ - t_object s_obj; - char *s_text; - long s_size; // number of bytes allocated -} t_string; - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - - -/** - Create a new string object. - @ingroup string - @param psz Pointer to a C-string that will be copied to memory internal to this string object instance. - @return The new string object instance pointer. -*/ -t_string* string_new(const char *psz); - - -/** - Fetch a pointer to a string object's internal C-string. - @ingroup string - @param x The string object instance. - @return A pointer to the internally maintained C-string. -*/ -const char* string_getptr(t_string *x); - - -/** - Reserve additional memory for future string growth. - @ingroup string - @param x The string object instance. - @param numbytes The total number of bytes to allocate for this string object. - */ -void string_reserve(t_string *x, long numbytes); - - -/** - Append a C-string onto the existing string maintained by a #t_string object. - Memory allocation for the string will grow as needed to hold the concatenated string. - - @ingroup string - @param x The string object instance. - @param s A string to append/concatenate with the existing string. - */ -void string_append(t_string *x, const char *s); - - -/** - Shorten a string by eliminating N characters from the end. - - @ingroup string - @param x The string object instance. - @param numchars The number of characters to chop from the end of the string. - */ -void string_chop(t_string *x, long numchars); - - -// TODO: This object has a number of additional methods exposed via Max's messaging interface - -END_USING_C_LINKAGE - -#endif //#ifndef _EXT_OBSTRING_H_ diff --git a/source/c74support/max-includes/ext_oms.h b/source/c74support/max-includes/ext_oms.h deleted file mode 100755 index c53010a3..00000000 --- a/source/c74support/max-includes/ext_oms.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_OMS_H_ -#define _EXT_OMS_H_ - -// OMS is no longer supported - -#endif /* _EXT_OMS_H_ */ diff --git a/source/c74support/max-includes/ext_packages.h b/source/c74support/max-includes/ext_packages.h deleted file mode 100755 index 9124d056..00000000 --- a/source/c74support/max-includes/ext_packages.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - ext_packages.h - API for access to Max Packages. - Timothy Place - Copyright 2013 - Cycling '74 -*/ - -#ifndef _EXT_PACKAGES_H_ -#define _EXT_PACKAGES_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_linklist.h" -#include "ext_dictionary.h" - -/** A container for a path/filename pair, - together with additional meta fields for special cases - @ingroup packages -*/ -typedef struct _package_file { - t_symbol *filename; - t_symbol *name; - short path; -} t_package_file; - - -BEGIN_USING_C_LINKAGE - - -/** return the max path for a named package's folder - - @ingroup packages - @param packagename the name of the package - @return the max path id for the package's folder - */ -short packages_getpackagepath(const char *packagename); - - -/** return linklist of max path ids for a given subpath of a package - - @ingroup packages - @param subfoldername the name of the folder (e.g. templates, prototypes, extensions, etc) - @param includesysfolder 1 if you want it to include the default max copy (e.g. stuff in the C74 folder), - a negative number will use the specified folder as the system folder - 0 will ignore the default location - @return linklist of max path ids -- you are responsible for freeing this linklist. -*/ -t_linklist *packages_createsubpathlist(const char *subfoldername, short includesysfolder); - - -/** return a linklist of max path ids for a given subpath of a package - and optionally a dictionary with all of the files contained therein. - - @ingroup packages - @param subfoldername the name of the folder (e.g. templates, prototypes, extensions, etc) - @param suffix_selector a file suffix used to filter only the specified files in the path (e.g., ".maxpat") - @param includesysfolder 1 if you want it to include the default max copy (e.g. stuff in the C74 folder), - a negative number will use the specified folder as the system folder - 0 will ignore the default location - @param subpathlist if not NULL, a linklist is alloc'd and returned here with all of the max path ids - @param names_to_packagefiles if not NULL, a dictionary is alloc'd and returned, keys are the names (suffix stripped) and the values are t_package_file instances - the linklist in the dictionary will have its keys sorted alphabetically - @return the usual max error code - */ -t_max_err packages_getsubpathcontents(const char *subfoldername, const char *suffix_selector, short includesysfolder, t_linklist **subpathlist, t_dictionary **names_to_packagefiles); - - -END_USING_C_LINKAGE - -#endif // _EXT_PACKAGES_H_ diff --git a/source/c74support/max-includes/ext_parameter.h b/source/c74support/max-includes/ext_parameter.h deleted file mode 100644 index 803a7ed0..00000000 --- a/source/c74support/max-includes/ext_parameter.h +++ /dev/null @@ -1,333 +0,0 @@ -/* - * ext_parameter.h - * - * Copyright 2008 Cycling '74. All rights reserved. - * - */ - -#ifndef _EXT_PARAMETER_H_ -#define _EXT_PARAMETER_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_dictionary.h" -#include "jpatcher_api.h" - -BEGIN_USING_C_LINKAGE - -#define PARAMETER_METHOD_FLAG_OVERRIDE (0L) // default is to override normal method with standard method -#define PARAMETER_METHOD_FLAG_PRE (1L << 0L) // user-defined pre-processing function for standard method -#define PARAMETER_METHOD_FLAG_POST (1L << 1L) // user-defined post-processing function for standard method -#define PARAMETER_METHOD_FLAG_FULL (1L << 2L) // user-defined override method -#define PARAMETER_METHOD_FLAG_DONOTHING (1L << 15L) // don't override at all - -#define PARAMETER_COLOR_FLAG_DEFAULT (0L) -#define PARAMETER_COLOR_FLAG_STYLE (1L << 0L) // use style system for color rather than defaults system - -#define PARAMETER_GESTURE_INDEX 999999 - -typedef enum { - PARAM_TYPE_INVALID = -1, - // these parameter types can be automated - PARAM_TYPE_FLOAT = 0, - PARAM_TYPE_INT, - PARAM_TYPE_ENUM, - - /////////////////////////////////////////////////////// - // these parameter types cannot be automated, not are they known to anyone but Max - PARAM_TYPE_BLOB, // generic atom type, can be stored, but doesn't use - // any other parameter features at this time (order excepted) - - PARAM_TYPE_FILE -} PARAM_TYPE; - -typedef enum { - PARAM_FLAGS_NONE = 0, - PARAM_FLAGS_FORCE_TYPE = 0x1, -} PARAM_FLAGS; - -typedef enum { - PARAM_TYPE_ENABLE_OFF, // parameter type menu not available in the inspector - PARAM_TYPE_ENABLE_ON, // enables basic parameter types Int, Float, Enum in the parameter type menu - PARAM_TYPE_ENABLE_BLOB, // and additionally Blob - PARAM_TYPE_ENABLE_BLOB_ONLY, -} PARAM_TYPE_ENABLE; - -typedef enum { - PARAM_UNITSTYLE_INVALID = -1, - PARAM_UNITSTYLE_INT, - PARAM_UNITSTYLE_FLOAT, - PARAM_UNITSTYLE_MS, - PARAM_UNITSTYLE_HZ, - PARAM_UNITSTYLE_DB, - PARAM_UNITSTYLE_PERCENT, - PARAM_UNITSTYLE_PAN, - PARAM_UNITSTYLE_SEMITONE, - PARAM_UNITSTYLE_MIDINOTE, - PARAM_UNITSTYLE_CUSTOM, // what does this do? - PARAM_UNITSTYLE_NATIVE, // use the type of the parameter to determine style -} PARAM_UNITSTYLE; - -typedef enum { - PARAM_MOD_INVALID = -1, - PARAM_MOD_NONE, - PARAM_MOD_UNI, - PARAM_MOD_BI, - PARAM_MOD_ADD, - PARAM_MOD_ABS -} PARAM_MOD; - -typedef enum { - PARAM_DATA_TYPE_INVALID = -1, - PARAM_DATA_TYPE_VALUE, - PARAM_DATA_TYPE_TYPE, - PARAM_DATA_TYPE_TYPE_ENABLE, - PARAM_DATA_TYPE_ORDER, - PARAM_DATA_TYPE_LONGNAME, - PARAM_DATA_TYPE_SHORTNAME, - PARAM_DATA_TYPE_MIN, - PARAM_DATA_TYPE_MAX, - PARAM_DATA_TYPE_ENUM, - PARAM_DATA_TYPE_MODMODE, - PARAM_DATA_TYPE_MODMIN, - PARAM_DATA_TYPE_MODMAX, - PARAM_DATA_TYPE_INITIAL_ENABLE, - PARAM_DATA_TYPE_INITIAL, - PARAM_DATA_TYPE_INITIAL_EDITABLE, - PARAM_DATA_TYPE_UNITSTYLE, - PARAM_DATA_TYPE_EXPONENT, - PARAM_DATA_TYPE_STEPS, - PARAM_DATA_TYPE_SPEEDLIM, - PARAM_DATA_TYPE_SMOOTHING, // unimplemented - PARAM_DATA_TYPE_UNITS, - PARAM_DATA_TYPE_INFO, - PARAM_DATA_TYPE_FOCUS, // read-only. use object_parameter_wants_focus() to set focus - PARAM_DATA_TYPE_INVISIBLE, - PARAM_DATA_TYPE_AUTOMATION_VALUE, - PARAM_DATA_TYPE_AUTOMATION_STATE, - PARAM_DATA_TYPE_MODULATION_VALUE, - PARAM_DATA_TYPE_DIRTY, - PARAM_DATA_TYPE_ASSIGNMENT_TEXT_MIDI, - PARAM_DATA_TYPE_ASSIGNMENT_TEXT_KEY, - PARAM_DATA_TYPE_ASSIGNMENT_TEXT_MACRO, - PARAM_DATA_TYPE_LEARNING_MODE, - PARAM_DATA_TYPE_FILEREF_PATH, - PARAM_DATA_TYPE_FILEREF_DISPLAYPATH, - PARAM_DATA_TYPE_FILEREF_DISPLAYNAME, - PARAM_DATA_TYPE_DEVICESTATE, // read-only - PARAM_DATA_TYPE_DEFER, - PARAM_DATA_TYPE_MAPPING_INDEX, // deprecated, do not use - PARAM_DATA_TYPE_NOBLOBCACHE, - PARAM_DATA_TYPE_RANGE, - PARAM_DATA_TYPE_REALVAL, - PARAM_DATA_TYPE_DISTANCEVAL, - PARAM_DATA_TYPE_LINEARVAL, -} PARAM_DATA_TYPE; - -typedef enum { - PARAM_VALUE_SET_DISTANCE = 0, - PARAM_VALUE_SET_REAL, - PARAM_VALUE_SET_GETONLY, - PARAM_VALUE_SET_DISTANCE_NONOTIFY, - PARAM_VALUE_SET_REAL_NONOTIFY -} PARAM_VALUE_SET_TYPE; - -typedef enum { - PARAM_VALUE_GET_OUTPUT = 0, - PARAM_VALUE_GET_AUTOMATION, - PARAM_VALUE_GET_MODULATION -} PARAM_VALUE_GET_TYPE; - -typedef enum { - PARAM_VALUE_DISTANCE = 0, - PARAM_VALUE_LINEAR, - PARAM_VALUE_REAL -} PARAM_VALUE_FORMAT; - -typedef enum { - PARAM_AUTOMATION_STATE_NONE = 0x00, - PARAM_AUTOMATION_STATE_AUTOMATED = 0x01, - PARAM_AUTOMATION_STATE_AUTOENABLED = 0x02, - PARAM_AUTOMATION_STATE_IRRELEVANT = 0x04, - PARAM_AUTOMATION_STATE_DISABLED = 0x08, - PARAM_AUTOMATION_STATE_MACRO = 0x10 -} PARAM_AUTOMATION_STATE; - -typedef enum { - PARAM_DEVICESTATE_ACTIVE = 0, - PARAM_DEVICESTATE_INACTIVE = 1 -} PARAM_DEVICESTATE; - -typedef enum { - PARAM_LEARNING_TYPE_NONE = 0, - PARAM_LEARNING_TYPE_MIDI, - PARAM_LEARNING_TYPE_KEY, - PARAM_LEARNING_TYPE_MACRO -} PARAM_LEARNING_TYPE; - -typedef struct _parameter_notify_data { - PARAM_DATA_TYPE type; - long ac; - t_atom *av; -} t_parameter_notify_data; - -typedef struct _param_class_defcolor_data { - t_symbol *classname; - t_symbol *attrname; - t_symbol *colorname; - long flags; -} t_param_class_defcolor_data; - -enum { - PARAM_VALUECHANGED_UNDEFINED = 0x00, - PARAM_VALUECHANGED_VISIBLE = 0x01 -}; - -enum { - PARAM_VISIBILITY_VISIBLE = 0, - PARAM_VISIBILITY_STOREONLY, // no automation, only store (in blob) - PARAM_VISIBILITY_HIDDEN -}; - -// call in main function -t_max_err class_parameter_init(t_class *c); -// call in new function -t_max_err object_parameter_init(t_object *x, PARAM_TYPE type); -// call in new function -t_max_err object_parameter_init_flags(t_object *x, PARAM_TYPE type, PARAM_FLAGS flags); -// call at end of new function, passing in object dictionary -t_max_err object_parameter_dictionary_process(t_object *x, t_dictionary *d); -// call in free function -t_max_err object_parameter_free(t_object *x); -// call in notify function, return value of TRUE means the notification was param data, in the pnd struct -t_bool object_parameter_notify(t_object *x, t_symbol *s, t_symbol *msg, void *sender, void *data, t_parameter_notify_data *pnd); -// get the value of a particular parameter datum -t_max_err object_parameter_getinfo(t_object *x, PARAM_DATA_TYPE type, long *ac, t_atom **av); -// set the value of a particular parameter datum -t_max_err object_parameter_setinfo(t_object *x, PARAM_DATA_TYPE type, long ac, t_atom *av); -// get the display string for a particular value -t_max_err object_parameter_string_get(t_object *x, double val, char **outstr); -// convert the string according to parameter type and unit to a value -t_max_err object_parameter_stringtovalue(t_object *x, double *value, char *str); -// set object value, returns clipped/stepped value -t_max_err object_parameter_value_set(t_object *x, PARAM_VALUE_SET_TYPE how, double *linear, double *real, char blobnotify); -// get the specified value, in the specified format -t_max_err object_parameter_value_get(t_object *x, PARAM_VALUE_GET_TYPE how, PARAM_VALUE_FORMAT what, double *value); -// set the initial value from the current value -t_max_err object_parameter_current_to_initial(t_object *x); -// get RGB color (0.-1.) based on one of the color symbols, listed below -t_max_err object_parameter_color_get(t_object *x, t_symbol *s, t_jrgba *jrgba); - -// set object value using atoms, most useful for blob or file types -t_max_err object_parameter_value_setvalueof(t_object *x, long ac, t_atom *av, char blobnotify); -t_max_err object_parameter_value_setvalueof_nonotify(t_object *x, long ac, t_atom *av, char blobnotify); -// get object value using atoms, most useful for blob or file types -t_max_err object_parameter_value_getvalueof(t_object *x, long *ac, t_atom **av); -// -t_max_err object_parameter_value_changed(t_object *x, char blobnotify); -t_max_err object_parameter_value_changed_nonotify(t_object *x, char blobnotify); - -t_max_err class_parameter_addmethod(t_class *c, method m, char *name, long flags, ...); - -t_max_err parameter_default_int(t_object *x, long n); -t_max_err parameter_default_float(t_object *x, double d); -t_max_err parameter_default_anything(t_object *x, t_symbol *s, long ac, t_atom *av); - -t_max_err class_parameter_register_default_color(t_class *c, t_symbol *attrname, t_symbol *colorname); -t_max_err class_parameter_register_default_color_flags(t_class *c, t_symbol *attrname, t_symbol *colorname, long flags); - -t_bool object_parameter_is_initialized(t_object *x); -t_bool object_parameter_is_in_Live(t_object *x); -t_bool object_parameter_is_in_maxtilde(t_object *x); -t_bool object_parameter_is_automated(t_object *x); -t_max_err object_parameter_wants_focus(t_object *x); -t_bool object_parameter_is_parameter(t_object *x); -t_atom_long object_parameter_get_order(t_object *x); - -typedef enum { - PARAMETER_ENABLE_SAVESTATE_UNSAVED = -1, - PARAMETER_ENABLE_SAVESTATE_OFF = 0, - PARAMETER_ENABLE_SAVESTATE_ON -} PARAMETER_ENABLE_SAVESTATE; - -PARAMETER_ENABLE_SAVESTATE object_parameter_getenable_savestate(t_object *x); - -enum { - PARAMETER_MAPPABLE_CONFIG_FLAGS_NONE = 0, - PARAMETER_MAPPABLE_CONFIG_FLAGS_TOGGLE_ZEROONE = 0x01, // this object is a toggle with values 0 and 1 (will be locked to enum) - PARAMETER_MAPPABLE_CONFIG_FLAGS_TOGGLE_OFFON = 0x02, // this object is a toggle with values off and on (will be locked to enum) - PARAMETER_MAPPABLE_CONFIG_FLAGS_ENUM = 0x03, // this object is an enum and will require an override to specify the range - PARAMETER_MAPPABLE_CONFIG_FLAGS_INT_MIDI = 0x04, // this object is an int (0 - 127) - PARAMETER_MAPPABLE_CONFIG_FLAGS_INT_FULL = 0x05, // this object is an int (0 - 255) - PARAMETER_MAPPABLE_CONFIG_FLAGS_INT = 0x06, // this object is an int and will require an override to specify the range - - PARAMETER_MAPPABLE_CONFIG_FLAGS_WANTSOVERRIDE = 0x10 // this object uses a known pattern ('min'/'max' or 'size'), the kernel should autogenerate overrides -}; - -enum { - PARAMETER_MAPPABLE_CONFIG_NOOVERRIDE = 0, - PARAMETER_MAPPABLE_CONFIG_OVERRIDE_MINMAX, // the object already has individual attributes for min/max - PARAMETER_MAPPABLE_CONFIG_OVERRIDE_SIZE, // the object already has an individual size attribute (min = 0, max = size - 1) - PARAMETER_MAPPABLE_CONFIG_OVERRIDE_OBJ // object will implement minmax getter/setter methods if necessary -}; - -typedef t_bool (*t_hasminmax_getmethod)(void *); -typedef t_max_err (*t_hasminmax_setmethod)(void *, t_bool); - -typedef t_max_err (*t_minmax_getmethod)(void *, double *, double *); -typedef t_max_err (*t_minmax_setmethod)(void *, double, double); - -typedef t_max_err (*t_enum_getmethod)(void *, long *, t_atom **); -typedef t_max_err (*t_enum_setmethod)(void *, long, t_atom *); - -typedef struct _parameter_mappable_override_minmax { - t_symbol *minimum; - t_symbol *maximum; - t_bool readonly; // do not allow the parameter to change the min/max -} t_parameter_mappable_override_minmax; - -typedef struct _parameter_mappable_override_size { - t_symbol *size; - t_bool readonly; // do not allow the parameter to change the size -} t_parameter_mappable_override_size; - -typedef struct _parameter_mappable_override_obj { - t_minmax_getmethod getmethod; - t_minmax_setmethod setmethod; - t_symbol *watchattr; // when this attr changes, we need to pull the new range -} t_parameter_mappable_override_obj; - -typedef union _parameter_mappable_override { - t_parameter_mappable_override_minmax minmax; - t_parameter_mappable_override_size size; - t_parameter_mappable_override_obj obj; -} t_parameter_mappable_override; - -typedef struct _parameter_mappable_hasminmax { - t_hasminmax_getmethod getmethod; - t_hasminmax_setmethod setmethod; -} t_parameter_mappable_hasminmax; - -typedef struct _parameter_mappable_enum { - t_enum_getmethod getmethod; - t_enum_setmethod setmethod; -} t_parameter_mappable_enum; - -typedef struct _parameter_mappable_config { - long flags; - long override_type; - t_parameter_mappable_override override_value; - t_parameter_mappable_hasminmax hasminmax; - t_parameter_mappable_enum enuminfo; -} t_parameter_mappable_config; - -t_bool object_parameter_hasminmax_false(void *x); -t_bool object_parameter_hasminmax_true(void *x); - -void class_parameter_mappable(t_class *c, t_parameter_mappable_config *config); -t_max_err class_parameter_setinfo(t_class *c, PARAM_DATA_TYPE type, long ac, t_atom *av); -t_max_err class_parameter_getinfo(t_class *c, PARAM_DATA_TYPE type, long *ac, t_atom **av); - -END_USING_C_LINKAGE - -#endif //_EXT_PARAMETER_H_ diff --git a/source/c74support/max-includes/ext_path.h b/source/c74support/max-includes/ext_path.h deleted file mode 100755 index 18957c78..00000000 --- a/source/c74support/max-includes/ext_path.h +++ /dev/null @@ -1,647 +0,0 @@ -// ext_path.h -- path definitions - -#ifndef _EXT_PATH_H_ -#define _EXT_PATH_H_ - -#include "ext_prefix.h" -#include "ext_common.h" -#include "ext_mess.h" -#include "ext_sysfile.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** - The size you should use when allocating strings for full paths. - @ingroup files -*/ -#define MAX_PATH_CHARS 2048 - -/** - The size you should use when allocating strings for filenames. - At the time of this writing it supports up to 256 UTF chars - @ingroup files -*/ -#define MAX_FILENAME_CHARS 512 - - -typedef short FILE_REF; - -#define PATH_SEPARATOR_CHAR '/' -#define PATH_SEPARATOR_STRING "/" -#define SEPARATOR_CHAR PATH_SEPARATOR_CHAR // for backwards compatibility - - -/** - Constants that determine the output of path_nameconform(). - @ingroup files - @see #e_max_path_types - @see path_nameconform() -*/ -typedef enum { - PATH_STYLE_MAX = 0, ///< use PATH_STYLE_MAX_PLAT - PATH_STYLE_NATIVE, ///< use PATH_STYLE_NATIVE_PLAT - PATH_STYLE_COLON, ///< ':' sep, "vol:" volume, ":" relative, "^:" boot - PATH_STYLE_SLASH, ///< '/' sep, "vol:/" volume, "./" relative, "/" boot - PATH_STYLE_NATIVE_WIN ///< '\\' sep, "vol:\\" volume, ".\\" relative, "\\" boot -} e_max_path_styles; - -#ifdef WIN_VERSION -#define PATH_STYLE_MAX_PLAT PATH_STYLE_SLASH -#define PATH_STYLE_NATIVE_PLAT PATH_STYLE_NATIVE_WIN -#else -#define PATH_STYLE_MAX_PLAT PATH_STYLE_SLASH -#define PATH_STYLE_NATIVE_PLAT PATH_STYLE_SLASH // PATH_STYLE_COLON path changes for Max 5-jkc -#endif - -/** - Constants that determine the output of path_nameconform(). - @ingroup files - @see #e_max_path_styles - @see path_nameconform() -*/ -typedef enum { - PATH_TYPE_IGNORE = 0, ///< ignore - PATH_TYPE_ABSOLUTE, ///< absolute path - PATH_TYPE_RELATIVE, ///< relative path - PATH_TYPE_BOOT, ///< boot path - PATH_TYPE_C74, ///< Cycling '74 folder - PATH_TYPE_PATH, ///< path - PATH_TYPE_DESKTOP, ///< desktop - PATH_TYPE_TILDE, ///< "home" - PATH_TYPE_TEMPFOLDER, ///< /tmp - PATH_TYPE_USERMAX, ///< ~/Documents/Max 8 - PATH_TYPE_MAXDB, ///< combi: try PATH_TYPE_C74, PATH_TYPE_TILDE, PATH_TYPE_RELATIVE, PATH_TYPE_ABSOLUTE in that order - PATH_TYPE_PLUGIN, ///< AudioUnit/VST plugin (an .auinfo or .vstinfo file in AppSupport) - PATH_TYPE_PACKAGE -} e_max_path_types; - - -#define PATH_CHAR_IS_SEPARATOR(c) (((c) == ':') || ((c) == '/') || ((c) == '\\')) - - -/** - Flags used to represent properties of a file in a #t_fileinfo struct. - @ingroup files -*/ -typedef enum { - PATH_FILEINFO_ALIAS = 1, ///< alias - PATH_FILEINFO_FOLDER = 2, ///< folder - PATH_FILEINFO_PACKAGE = 4 ///< package (Mac-only) -} e_max_fileinfo_flags; - -#define FILEINFO_ALIAS PATH_FILEINFO_ALIAS // for backwards compatibility -#define FILEINFO_FOLDER PATH_FILEINFO_FOLDER // for backwards compatibility - - -/** Flags used by functions such as path_foldernextfile() and path_openfolder(). - @ingroup files -*/ -typedef enum { - PATH_REPORTPACKAGEASFOLDER = 1, ///< if not true, then a Mac OS package will be reported as a file rather than a folder. - PATH_FOLDER_SNIFF = 2, ///< sniff - PATH_NOALIASRESOLUTION = 4 ///< no alias resolution -} e_max_path_folder_flags; - - -/** - Permissions or mode with which to open a file. - @ingroup files -*/ -typedef enum { - PATH_READ_PERM = 1, ///< Read mode - PATH_WRITE_PERM = 2, ///< Write mode - PATH_RW_PERM = 3 ///< Read/Write mode -} e_max_openfile_permissions; -#define READ_PERM PATH_READ_PERM // for backwards compatibility -#define WRITE_PERM PATH_WRITE_PERM // for backwards compatibility -#define RW_PERM PATH_RW_PERM // for backwards compatibility - -#define PATH_DEFAULT_PATHNAME_COUNT 16 - -// indices allow for fast access -typedef enum { - PATH_STARTUP_PATH = 0, - PATH_SEARCH_PATH, - PATH_ACTION_PATH, - PATH_HELP_PATH -} e_max_path_indices; - -#define STARTUP_PATH PATH_STARTUP_PATH // for backwards compatibility -#define SEARCH_PATH PATH_SEARCH_PATH // for backwards compatibility -#define ACTION_PATH PATH_ACTION_PATH // for backwards compatibility -#define HELP_PATH PATH_HELP_PATH // for backwards compatibility - -enum { - COLLECTIVE_NONE = 0, - COLLECTIVE_FILECOPY = 1, // flag for copying an object-used file to support path - COLLECTIVE_COPYTOMADEFOLDER = 2, // flag to copying to the folder you made - COLLECTIVE_EXTRACTTOTEMPFOLDER = 4 // flag to extract to the temp folder (works for collectives, m4l devices, too) -}; - -#define TYPELIST_SIZE 32 //maximum number of types returned - -typedef enum { - TYPELIST_MAXFILES = 1, - TYPELIST_EXTERNS = 2, - TYPELIST_COLLECTIVES = 4, - TYPELIST_MAXFORLIVE = 8, - TYPELIST_SNAPSHOTS = 16, - TYPELIST_GENPATCHERS = 32, - TYPELIST_SNIPPETS = 64 -} e_max_typelists; - - -/** - Information about a file. - @ingroup files -*/ -typedef struct _fileinfo { - t_fourcc type; ///< type (four-char-code) - t_fourcc creator; ///< Mac-only creator (four-char-code) - t_uint32 unused; ///< this was date but it wasn't populated and it wasn't used - t_int32 flags; ///< One of the values defined in #e_max_fileinfo_flags -} t_fileinfo; - - -/** The path data structure. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - @ingroup files -*/ -typedef struct _path { - void *p_name; // all we have on Windows, may just be folder name on Mac - long p_dirID; // directory ID on Mac - short p_vRefNum; // volume on Mac - short p_wd; // working directory on the Mac (compatibility mode) -} t_path; - - -/** The pathlink data structure. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - @ingroup files -*/ -typedef struct _pathlink { - short l_path; // index into path table, or p_wd in compatibility mode - short l_ancestor; // logical parent, i.e., what path caused this path to be included - short l_temp; // used for temporary flag when updating folders - struct _pathlink *l_next; - short l_parent; // true parent folder - short l_recursive; // true if is or was added from a parent recursively - // ddz -- this was not in the kernel -- void *l_watcher; // watcher to see if this folder changes -} t_pathlink; - - -// flags for t_searchpath -typedef enum { - PATH_FLAGS_RECURSIVE = 0x001, - PATH_FLAGS_READONLY = 0x010, - PATH_FLAGS_INCLUDEINCOLLECTIVE = 0x100 -} e_max_searchpath_flags; - - -/** - Retrieve the Path ID of the Max application. - @ingroup files - @return The path id. -*/ -short path_getapppath(void); - -short path_getsupportpath(void); - -#ifdef MAC_VERSION -typedef struct FSRef FSRef; - -short path_tofsref(C74_CONST short path, C74_CONST char *filename, FSRef *ref); -short path_fromfsref(FSRef *ref); -#endif // MAC_VERSION - -void path_namefrompathname(char *pathname, char *name); - - -/** - Find a Max document by name in the search path. - This routine performs the same function as the routine path_getdefault(). - locatefile() searches through the directories specified by the user for - Patcher files and tables in the File Preferences dialog as well as the - current default path (see path_getdefault) and the directory - containing the Max application - - @ingroup files - @param name A C string that is the name of the file to look for. - @param outvol The Path ID containing the location of the file if it is found. - @param binflag If the file found is in binary format (it's of type 'maxb') 1 is returned here; - if it's in text format, 0 is returned. - - @return If a file is found with the name - specified by filename, locatefile returns 0, otherwise it returns non-zero. - - @remark filename and vol can then be passed to binbuf_read to read and open file the file. - When using MAXplay, the search path consists of all subdirectories of - the directory containing the MAXplay application. locatefile only - searches for files of type 'maxb' and 'TEXT.' - - @see locatefile_extended() -*/ -short locatefile(C74_CONST char *name, short *outvol, short *binflag); - - -/** - Find a Max document by name in the search path. - This function searches through the same directories as locatefile, - but allows you to specify a type and creator of your own. - - @ingroup files - @param name A C string that is the name of the file to look for. - @param outvol The Path ID containing the location of the file if it is found. - @param filetype The filetype of the file to look for. - If you pass 0L, files of all filetypes are considered. - @param creator The creator of the file to look for. If you pass 0L, files with any creator are considered. - - @return If a file is found with the name - specified by filename, locatefile returns 0, otherwise it returns non-zero. - - @see locatefile_extended() -*/ -short locatefiletype(C74_CONST char *name, short *outvol, t_fourcc filetype, t_fourcc creator); - -short locatefilelist(char *name, short *outvol, t_fourcc *outtype, t_fourcc *filetypelist, short numtypes); - - -/** - Find a file by name. - If a complete path is not specified, search for the name in the search path. - This is the preferred method for file searching since its introduction in Max version 4. - - @ingroup files - @version 4.0 - - @param name The file name for the search, receives actual filename upon return. - @param outvol The Path ID of the file (if found). - @param outtype The file type of the file (if found). - @param filetypelist The file type(s) for which you are searching for, or NULL if any type is acceptable. - @param numtypes The number of file types in the typelist array (1 if a single entry, 0 if any type is acceptable). - - @return If a file is found with the name - specified by filename, locatefile returns 0, otherwise it returns non-zero. - - @see path_getdefault(). - - @remark The old file search routines locatefile() and locatefiletype() - are still supported in Max 4, but the use of a new routine - locatefile_extended() is highly recommended. However, - locatefile_extended() has an important difference from - locatefile() and locatefiletype() that may require some rewriting - of your code. It modifies its name parameter in certain cases, while - locatefile() and locatefiletype() do not. The two cases where it - could modify the incoming filename string are 1) when an alias is - specified, the file pointed to by the alias is returned; and 2) when a full - path is specified, the output is the filename plus the path number of the - folder it's in. - - This is important because many people pass the s_name field of a - #t_symbol to locatefile(). If the name field of a #t_symbol were to be - modified, the symbol table would be corrupted. To avoid this problem, - use strncpy_zero() to copy the contents of a #t_symbol to a character string first, - as shown below: - @code - char filename[MAX_FILENAME_CHARS]; - strncpy_zero(filename,str->s_name, MAX_FILENAME_CHARS); - result = locatefile_extended(filename,&path,&type,typelist,1); - @endcode -*/ -short locatefile_extended(char *name, short *outvol, t_fourcc *outtype, C74_CONST t_fourcc *filetypelist, short numtypes); - -short locatefile_pathlist(t_pathlink *list, char *name, short *outvol, t_fourcc *outtype, t_fourcc *filetypelist, short numtypes); - - -/** - Resolve a Path ID plus a (possibly extended) file name - into a path that identifies the file's directory and a filename. - This routine converts a name and Path ID to a standard form in which - the name has no path information and does not refer to an aliased file. - - @ingroup files - @param name A file name (which may be fully or partially qualified), - will contain the file name on return. - @param path The Path ID to be resolved. - @param outpath The Path ID of the returned file name. - - @return Returns 0 if successful. -*/ -short path_resolvefile(char *name, C74_CONST short path, short *outpath); - - -/** - Retrive a #t_fileinfo structure from a file/path combination. - - @ingroup files - @param name The file name to be queried. - @param path The Path ID of the file. - @param info The address of a #t_fileinfo structure to contain the file information. - - @return Returns 0 if successful, otherwise it returns an OS-specific error code. -*/ -short path_fileinfo(C74_CONST char *name, C74_CONST short path, t_fileinfo *info); - -short path_tempfolder(void); -short path_desktopfolder(void); -short path_userdocfolder(void); -short path_usermaxfolder(void); -short path_createfolder(C74_CONST short path, C74_CONST char *name, short *newpath); - -// internal use only -- not exported -- use path_createfolder() -short path_createnewfolder(short path, const char *name, short *newpath); - -short path_copyfile(short srcpath, char *srcname, short dstpath, char *dstname); -short path_copytotempfile(short srcpath, char *srcname, short *outpath, char *outname); -short path_copyfolder(short srcpath, short dstpath, const char *dstname, long recurse, short *newpath); -short C74_MUST_CHECK path_getpath(short path, const char *name, short *outpath); -short path_getname(short path, char *name, short *outpath); - - -/** - Create a fully qualified file name from a Path ID/file name combination. - Unlike path_topotentialname(), this routine will only convert a - pathname pair to a valid path string if the path exists. - - @ingroup files - @param path The path to be used. - @param file The file name to be used. - @param name Loaded with the fully extended file name on return. - @return Returns 0 if successful, otherwise it returns an OS-specific error code. -*/ -short path_topathname(C74_CONST short path, C74_CONST char *file, char *name); - - -/** - Create a filename and Path ID combination from a fully qualified file name. - Note that path_frompathname() does not require that the file actually exist. - In this way you can use it to convert a full path you may have received as an - argument to a file writing message to a form appropriate to provide to - a routine such as path_createfile(). - - @ingroup files - @param name The extended file path to be converted. - @param path Contains the Path ID on return. - @param filename Contains the file name on return. - @return Returns 0 if successful, otherwise it returns an OS-specific error code. -*/ -short path_frompathname(C74_CONST char *name, short *path, char *filename); - - -short path_frompotentialpathname(C74_CONST char *name, short *path, char *filename); - - -void path_splitnames(const char *pathname, char *foldername, char *filename); -short path_getnext(t_pathlink *list, short *val); - - -/** - Install a path as the default search path. - The default path is searched before the Max search path. For instance, - when loading a patcher from a directory outside the search path, the - patcher's directory is searched for files before the search path. - path_setdefault() allows you to set a path as the default. - - @ingroup files - @param path The path to use as the search path. - If path is already part of the Max Search path, it will not be added - (since, by default, it will be searched during file searches). - @param recursive If non-zero, all subdirectories will be installed in the default search list. - Be very careful with the use of the recursive argument. It has the capacity to - slow down file searches dramatically as the list of folders is being built. - Max itself never creates a hierarchical default search path. -*/ -void path_setdefault(short path, short recursive); - - -/** - Retrieve the Path ID of the default search path. - @ingroup files - @return The path id of the default search path. -*/ -short path_getdefault(void); - - -void path_setdefaultlist(struct _pathlink *list); - - -/** - Determine the modification date of the selected path. - - @ingroup files - @param path The Path ID of the directory to check. - @param date The last modification date of the directory. - @return An error code. -*/ -short path_getmoddate(short path, t_ptr_uint *date); - - -/** - Determine the modification date of the selected file. - - @ingroup files - @param filename The name of the file to query. - @param path The Path ID of the file. - @param date The last modification date of the file upon return. - @return An error code. -*/ -short path_getfilemoddate(C74_CONST char *filename, C74_CONST short path, t_ptr_uint *date); - - -short path_getfiledatesandsize(C74_CONST char *filename, short path, t_uint64 *create, t_uint64 *mod, t_uint64 *access, t_uint64 *size); - -short path_getfilecreationdate(C74_CONST char *filename, C74_CONST short path, t_ptr_uint *date); -short path_getfilesize(char *filename, short path, t_ptr_size *size); -long path_listcount(t_pathlink *list); - -short nameinpath(const char *name, short *ref); // <-- use path_nameinpath() -short path_nameinpath(C74_CONST char *name, C74_CONST short path, short *ref); - -short path_sysnameinpath(const char *name, short *ref); - - -/** - Prepare a directory for iteration. - @ingroup files - @param path The directory Path ID to open. - @return The return value of this routine is an internal "folder state" structure - used for further folder manipulation. It should be saved and used for - calls to path_foldernextfile() and path_closefolder(). - If the folder cannot be found or accessed, path_openfolder() returns 0. -*/ -void *path_openfolder(short path); - - -/** - Get the next file in the directory. - In conjunction with path_openfolder() and path_closefolder(), - this routine allows you to iterate through all of the files in a path. - - @ingroup files - @param xx The "folder state" value returned by path_openfolder(). - @param filetype Contains the file type of the file type on return. - @param name Contains the file name of the next file on return. - @param descend Unused. - @return Returns non-zero if successful, and zero when there are no more files. - @see #e_max_path_folder_flags -*/ -short path_foldernextfile(void *xx, t_fourcc *filetype, char *name, short descend); - - -/** - Complete a directory iteration. - @ingroup files - @param x The "folder state" value originally returned by path_openfolder(). -*/ -void path_closefolder(void *x); - - -short path_renamefile(C74_CONST char *name, C74_CONST short path, C74_CONST char *newname); -long path_getprefstring(long preftype, long index, t_symbol **s); -void path_setprefstring(long preftype, long index, t_symbol *s, long flags, t_symbol *label, short update); -void path_makefromsymbol(long pathtype, t_symbol *sp, short recursive); - -/** - Open a file given a filename and Path ID. - - @ingroup files - @param name The name of the file to be opened. - @param path The Path ID of the file to be opened. - @param ref A #t_filehandle reference to the opened file will be returned in this parameter. - @param perm The permission for the opened file as defined in #e_max_openfile_permissions. - @return An error code. -*/ -short path_opensysfile(C74_CONST char *name, C74_CONST short path, t_filehandle *ref, short perm); - - -/** - Create a file given a type code, a filename, and a Path ID. - - @ingroup files - @param name The name of the file to be opened. - @param path The Path ID of the file to be opened. - @param type The file type of the created file. - @param ref A #t_filehandle reference to the opened file will be returned in this parameter. - @return An error code. -*/ -short path_createsysfile(C74_CONST char *name, short path, t_fourcc type, t_filehandle *ref); - - -short path_createressysfile(C74_CONST char *name, C74_CONST short path, t_fourcc type, t_filehandle *ref); - - -/** - Convert a source path string to destination path string using the specified style and type. - - @ingroup files - @param src A pointer to source character string to be converted. - @param dst A pointer to destination character string. - @param style The destination filepath style, as defined in #e_max_path_styles - @param type The destination filepath type, as defined in #e_max_path_types - @return An error code. - - @see #MAX_PATH_CHARS -*/ -short path_nameconform(C74_CONST char *src, char *dst, long style, long type); - -short path_deletefile(C74_CONST char *name, C74_CONST short path); -short path_extendedfileinfo(C74_CONST char *name, short path, t_fileinfo *info, C74_CONST t_fourcc *typelist, short numtypes, short sniff); -short path_getstyle(char *name); -char path_getseparator(char *name); -short path_fileisresource(char *name, short path); - -/** - Create a fully qualified file name from a Path ID/file name combination, - regardless of whether or not the file exists on disk. - - @ingroup files - @param path The path to be used. - @param file The file name to be used. - @param name Loaded with the fully extended file name on return. - @param check Flag to check if a file with the given path exists. - @return Returns 0 if successful, otherwise it returns an OS-specific error code. - - @see path_topathname() -*/ -short path_topotentialname(C74_CONST short path, C74_CONST char *file, char *name, short check); - -short path_topotentialunicodename(short path, char *file, unsigned short **name, long *outlen, short check); -short path_fromunicodepathname(unsigned short *name, short *path, char *filename, short check); // if check is non-zero then file must exist - -/** - Translates a Max path+filename combo into a correct POSIX absolute path that can be used to pass to libraries - and also handles multiple volumes correctly. - - @ingroup files - @param in_path The Max path reference - @param in_filename The name of the file in that path. - @param out_filepath A string that is MAX_PATH_CHARS in length, which will receive the formatted absolute path upon return. - @return Returns 0 if successful. - - @see path_topotentialname() - @see path_nameconform() - - @code - // example for getting a windows-formatted path for a folder path: - path_toabsolutesystempath(pathid, "", filestring); - path_nameconform(filestring, sNativeQualifiedPathname, PATH_STYLE_NATIVE, PATH_TYPE_PATH); - @endcode -*/ -t_max_err path_toabsolutesystempath(const short in_path, const char *in_filename, char *out_filepath); - - -/** - Convert a path to an absolutepath as done by the absolutepath object in Max. - - @ingroup files - @param returned_path Address to a symbol pointer which will be filled-in upon successful return. - @param s Incoming (non-absolute) path. - @param filetypelist The first of an array of file types to limit the search. - @param numtypes The number of entries in the filetypelist parameter. - @return A Max error code. - - @see path_topathname() - @see locatefile_extended() - */ -t_max_err path_absolutepath(t_symbol **returned_path, const t_symbol *s, const t_fourcc *filetypelist, short numtypes); - -/** - Determine if a path/filename combination exists on disk. - - @ingroup files - @param path The Max path reference. - @param filename The name of the file in that path to test. - @return 1 = the specified file exists, 0 = the specified file does not exist. - - @see path_topathname() - @see path_topotentialname() - - */ -long path_exists(short path, const char *filename); -void path_addsearchpath(short path, short parent); -void path_addnamed(long pathtype, char *name, short recursive, short permanent); -void path_removefromlist(t_pathlink **list, short parent); - -// private: internal use only -short path_collpathnamefrompath(short vol, short *collvol, char *filename); -char path_inpath(short testvol, short topvol); - -short defvolume(void); // <-- use path_getdefault() - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_PATH_H_ diff --git a/source/c74support/max-includes/ext_post.h b/source/c74support/max-includes/ext_post.h deleted file mode 100755 index bca6f7a8..00000000 --- a/source/c74support/max-includes/ext_post.h +++ /dev/null @@ -1,254 +0,0 @@ -#ifndef _EXT_POST_H_ -#define _EXT_POST_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -/** - Print text to the Max window. - Max 5 introduced object_post(), which provides several enhancements to post() - where a valid #t_object pointer is available. - - post() is a printf() for the Max window. It even works from non-main threads, - queuing up multiple lines of text to be printed when the main thread processing resumes. - post() can be quite useful in debugging your external object. - - @ingroup console - @param fmt A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @remark Note that post only passes 16 bytes of arguments to sprintf, so if - you want additional formatted items on a single line, use postatom(). - - Example: - @code - short whatIsIt; - - whatIsIt = 999; - post ("the variable is %ld",(long)whatIsIt); - @endcode - - @remark The Max Window output when this code is executed. - @code - the variable is 999 - @endcode - - @see object_post() - @see error() - @see cpost() -*/ -void post(C74_CONST char *fmt, ...); - - -/** - Print text to the system console. - On the Mac this post will be visible by launching Console.app in the /Applications/Utilities folder. - On Windows this post will be visible by launching the dbgView.exe program, which is a free download - as a part of Microsoft's SysInternals. - - @ingroup console - @param fmt A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @remark Particularly on MacOS 10.5, posting to Console.app can be a computationally expensive operation. - Use with care. - - @see post() - @see object_post() -*/ -void cpost(C74_CONST char *fmt, ...); - - -/** - Print an error to the Max window. - Max 5 introduced object_error(), which provides several enhancements to error() - where a valid #t_object pointer is available. - - error() is very similar to post(), thought it offers two additional features: - - the post to the Max window is highlighted (with a red background). - - the post can be trapped with the error object in a patcher. - - @ingroup console - @param fmt A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @see object_post() - @see post() - @see cpost() -*/ -void error(C74_CONST char *fmt, ...); - -/** - Put up an error or advisory alert box on the screen. - - Don't use this function. Instead use error(), object_error(), or object_error_obtrusive(). - - This function performs an sprintf() on fmtstring and items, then - puts up an alert box. ouchstring() will queue the message to a lower - priority level if it's called in an interrupt and there is no alert box - request already pending. - - @ingroup console - @param s A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @see error() - @see object_error() - @see object_error_obtrusive() -*/ -void ouchstring(C74_CONST char *s, ...); - - -/** - Print multiple items in the same line of text in the Max window. - This function prints a single #t_atom on a line in the Max window - without a carriage return afterwards, as post() does. Each #t_atom printed - is followed by a space character. - - @ingroup console - @param ap The address of a #t_atom to print. - - @see object_post() - @see post() - @see cpost() - -*/ -void postatom(t_atom *ap); - -void debug_printf(C74_CONST char *,...); - - -/** Receive messages from the error handler. - @ingroup misc - @param x The object to be subscribed to the error handler. - - @remark error_subscribe() enables your object to receive a message (error), - followed by the list of atoms in the error message posted to the Max - window. - - Prior to calling error_subscribe(), you should bind the error - message to an internal error handling routine: - @code - addmess((method)myobject_error, "error", A_GIMME, 0); - @endcode - Your error handling routine should be declared as follows: - @code - void myobject_error(t_myobject *x, t_symbol *s, short argc, t_atom *argv); - @endcode -*/ -void error_subscribe(t_object *x); - - -/** Remove an object as an error message recipient. - @ingroup misc - @param x The object to unsubscribe. -*/ -void error_unsubscribe(t_object *x); - - -void xsetpost(void); - -void poststring(const char *s); - -enum { - POSTROW_POST = 0, - POSTROW_ERROR = 1, - POSTROW_WARNING = 2, - POSTROW_BUG = 3, - POSTROW_BADGE = 4 -}; - -enum { - JMAXWINDOW_ADVANCE = 1, - JMAXWINDOW_APPEND = 2, - JMAXWINDOW_WRITE = 4, - JMAXWINDOW_UNIQUE = 8, - JMAXWINDOW_MULTILINE = 16 -}; - - -/** - Print text to the Max window, linked to an instance of your object. - - Max window rows which are generated using object_post() or object_error() can be - double-clicked by the user to have Max assist with locating the object in a patcher. - Rows created with object_post() and object_error() will also automatically provide - the name of the object's class in the correct column in the Max window. - - @ingroup console - @param x A pointer to your object. - @param s A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @remark Example: - @code - void myMethod(myObject *x, long someArgument) - { - object_post((t_object*)x, "This is my argument: %ld", someArgument); - } - @endcode - - @see object_error() -*/ -void object_post(t_object *x, C74_CONST char *s, ...); - - -/** - Print text to the Max window, linked to an instance of your object, - and flagged as an error (highlighted with a red background). - - Max window rows which are generated using object_post() or object_error() can be - double-clicked by the user to have Max assist with locating the object in a patcher. - Rows created with object_post() and object_error() will also automatically provide - the name of the object's class in the correct column in the Max window. - - @ingroup console - @param x A pointer to your object. - @param s A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @see object_post() - @see object_warn() -*/ -void object_error(t_object *x, C74_CONST char *s, ...); - - -/** - Print text to the Max window, linked to an instance of your object, - and flagged as a warning (highlighted with a yellow background). - - Max window rows which are generated using object_post(), object_error(), or object_warn can be - double-clicked by the user to have Max assist with locating the object in a patcher. - Rows created with object_post(), object_error(), or object_warn() will also automatically provide - the name of the object's class in the correct column in the Max window. - - @ingroup console - @param x A pointer to your object. - @param s A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @see object_post() - @see object_error() -*/ -void object_warn(t_object *x, C74_CONST char *s, ...); - -// ? -void object_bug(t_object *x, C74_CONST char *s, ...); - -// private? -void object_poststring(t_object *ob, long kind, long flags, char *text); - - - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_POST_H_ diff --git a/source/c74support/max-includes/ext_preferences.h b/source/c74support/max-includes/ext_preferences.h deleted file mode 100644 index 71e3f368..00000000 --- a/source/c74support/max-includes/ext_preferences.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef _EXT_PREFERENCES_H_ -#define _EXT_PREFERENCES_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_dictionary.h" - -BEGIN_USING_C_LINKAGE - -t_max_err preferences_getatomforkey(t_symbol *key, t_atom *value); -t_symbol *preferences_getsym(C74_CONST char *name); -void preferences_setsym(C74_CONST char *name, t_symbol *value); -long preferences_getlong(C74_CONST char *name); -void preferences_setlong(C74_CONST char *name, long value); -long preferences_getchar(C74_CONST char *name); -void preferences_setchar(C74_CONST char *name, long value); -t_max_err preferences_getatoms(C74_CONST char *name, long *argc, t_atom **argv); -t_max_err preferences_setatoms(C74_CONST char *name, long argc, t_atom *argv); -void *preferences_define(C74_CONST char *name, C74_CONST char *type, C74_CONST char *label, C74_CONST char *style, C74_CONST char *category, long attrflags, method get, method set, long flags); -void *preferences_class_define(t_class *c, C74_CONST char *name, C74_CONST char *type, C74_CONST char *label, C74_CONST char *style, C74_CONST char *category, long attrflags, method get, method set, long flags); -void *preferences_defineoption(C74_CONST char *name, C74_CONST char *label, C74_CONST char *category, char *ptr, method notify, long flags); -void *preferences_class_defineoption(t_class *c, C74_CONST char *name, C74_CONST char *label, C74_CONST char *category, char *ptr, method notify, long flags); -t_max_err preferences_writedictionary(C74_CONST t_dictionary *d, C74_CONST char *filename); -t_max_err preferences_readdictionary(C74_CONST char *filename, t_dictionary **d); -t_dictionary *simpleprefs_dictionary(); - -END_USING_C_LINKAGE - -enum { - PREFERENCES_FLAGS_INVISIBLE = 1, - PREFERENCES_FLAGS_DONTSAVE = 2 -}; - - -#endif // _EXT_PREFERENCES_H_ diff --git a/source/c74support/max-includes/ext_prefix.h b/source/c74support/max-includes/ext_prefix.h deleted file mode 100755 index 120921a9..00000000 --- a/source/c74support/max-includes/ext_prefix.h +++ /dev/null @@ -1,273 +0,0 @@ -#include "max_types.h" // safety check to insure C74_X64 is defined appropriately - -#ifndef _EXT_PREFIX_H_ -#define _EXT_PREFIX_H_ - -//////////////////////////////////////////////////////////////////////////////// -// macros - -#ifdef __cplusplus -/** - Ensure that any definitions following this macro use a C-linkage, not a C++ linkage. - The Max API uses C-linkage. - This is important for objects written in C++ or that use a C++ compiler. - This macro must be balanced with the #END_USING_C_LINKAGE macro. - @ingroup misc -*/ -#define BEGIN_USING_C_LINKAGE \ - extern "C" { -#else -/** - Ensure that any definitions following this macro use a C-linkage, not a C++ linkage. - The Max API uses C-linkage. - This is important for objects written in C++ or that use a C++ compiler. - This macro must be balanced with the #END_USING_C_LINKAGE macro. - @ingroup misc -*/ -#define BEGIN_USING_C_LINKAGE -#endif // __cplusplus - -#ifdef __cplusplus -/** - Close a definition section that was opened using #BEGIN_USING_C_LINKAGE. - @ingroup misc -*/ -#define END_USING_C_LINKAGE \ - } -#else -/** - Close a definition section that was opened using #BEGIN_USING_C_LINKAGE. - @ingroup misc -*/ -#define END_USING_C_LINKAGE -#endif // __cplusplus - -//////////////////////////////////////////////////////////////////////////////// -// Mac Target - -#ifdef MAC_VERSION - -// the C74_PRAGMA_STRUCT_PACK* macros are used to ensure that -// Win32 builds of Max externals use a 2 byte struct packing -// for all Max structs in projects that have a default struct -// packing other than 2 (this is typically 4). On Macintosh -// the default byte packing is 4, and it is with this packing -// that all Max structs are packed on Macintosh. If for some -// reason you are using a struct byte packing of something other -// than 4 on macintosh, there may be problems. Please let us -// know, and we can address this and the other Max header files to -// ensure 4 byte struct packing on Macintosh in such a setting. -#define C74_PRAGMA_STRUCT_PACKPUSH 0 -#define C74_PRAGMA_STRUCT_PACK 0 -#define C74_STRUCT_PACK_SIZE 4 - -// If the prefix header containing #include is not present, then we include -// a minimal set of required headers here. -#ifndef __MACTYPES__ -#include -#endif - -#include - -#endif // MAC_VERSION - - -//////////////////////////////////////////////////////////////////////////////// -// Linux Target - -#ifdef LINUX_VERSION - -#define C74_PRAGMA_STRUCT_PACKPUSH 0 -#define C74_PRAGMA_STRUCT_PACK 0 -#define C74_STRUCT_PACK_SIZE 4 - -#endif // LINUX_VERSION - - - -//////////////////////////////////////////////////////////////////////////////// -// Win32 Target - -#ifdef WIN_VERSION - -#ifndef C74_X64 - -// the C74_PRAGMA_STRUCT_PACK* macros are used to ensure that -// Win32 builds of Max externals use a 2 byte struct packing -// for all Max structs in projects that have a default struct -// packing other than 2 (this is typically 4). On Macintosh -// the default byte packing is 4, and it is with this packing -// that all Max structs are packed on Macintosh. If for some -// reason you are using a struct byte packing of something other -// than 4 on macintosh, there may be problems. Please let us -// know, and we can address this and the other Max header files to -// ensure 4 byte struct packing on Macintosh in such a setting. -#if ((defined(_MSC_VER) && !defined(__MWERKS__)) || (defined(__MWERKS__)&&(__MWERKS__ >= 0x0900))) -// Visual C++ or Metrowerks >=0x0900 support pack(push,n) -// this may not accomodate building for a windows target -// using Metrowerks on a macintosh, which might need to use -// the pragma align statement. -#define C74_PRAGMA_STRUCT_PACKPUSH 1 -#else -#define C74_PRAGMA_STRUCT_PACKPUSH 0 -#endif - -#define C74_PRAGMA_STRUCT_PACK 1 -#define C74_STRUCT_PACK_SIZE 2 - -#else // #if !C74_X64 -#define C74_PRAGMA_STRUCT_PACKPUSH 0 // don't specify packing for x64 target, use default -#define C74_PRAGMA_STRUCT_PACKPUSH 0 -#endif - -// promote this warning to an error because -// it helps catch using long* when we really need t_atom_long* for x64 -#pragma warning ( error : 4133 ) // incompatible types - -#if defined(DISABLE_A_BUNCH_OF_WINDOWS_WARNINGS) -#pragma warning( disable : 4005 ) // macro redefinition -#pragma warning( disable : 4101 ) // unreferenced local -#pragma warning( disable : 4800 ) // forcing value to bool 'true' or 'false' -#pragma warning( disable : 4805 ) // unsafe mix of type 'BOOL' and type 'bool' -#pragma warning( disable : 4087 ) // 'function' declared with 'void' parameter list -#pragma warning( disable : 4068 ) // unknown pragma -#pragma warning( disable : 4244 ) // implicit larger to smaller type conversion (int + float) -#pragma warning( disable : 4245 ) // implicit unsigned/signed type conversion -#pragma warning( disable : 4305 ) // truncation from 'type1' to 'type2' (e.g. double->float) -#endif - -#ifndef _CRT_SECURE_NO_WARNINGS -#define _CRT_SECURE_NO_WARNINGS -#endif - -#ifndef _SCL_SECURE_NO_WARNINGS -#define _SCL_SECURE_NO_WARNINGS -#endif - -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif - -#include -#include -#include -#include - -#endif // WIN_VERSION - -// c standard library -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef calcoffset - // The ifdefs for this macro have been set up like this so that Doxygen can document this macro on a Mac [TAP] -#else - /** - Find byte offset of a named member of a struct, relative to the beginning of that struct. - @ingroup misc - @param x The name of the struct - @param y The name of the member - @return A pointer-sized integer representing the number of bytes into the struct where the member begins. - */ -#define calcoffset(x,y) offsetof(x, y) -#endif - -#ifdef structmembersize - // The ifdefs for this macro have been set up like this so that Doxygen can document this macro on a Mac [TAP] -#else - /** - Find size of a named member of a struct. - @ingroup misc - @param structname The name of the struct - @param membername The name of the member - @return The size of the member of the struct. - */ -#define structmembersize(structname, membername) (sizeof(((structname*)0)->membername)) -#endif - -// debug support -#if defined (__GNUC__) && defined(C74_X64) -#ifndef C74DebugBreak -#ifdef __x86_64__ -#define C74DebugBreak asm("int3") -#elif defined(__aarch64__) -#define C74DebugBreak __asm__ volatile(".inst 0xd4200000") -#else -#warning implement me -#endif -#endif -#endif - -#ifdef WIN_VERSION -#define C74DebugBreak DebugBreak() -#endif - -#ifndef C74_STR - #define C74_STR_HELPER(x) #x - #define C74_STR(x) C74_STR_HELPER(x) -#endif - -#ifndef C74_ASSERT -#if defined(_DEBUG) || defined(DEBUG) -#define C74_ASSERT(condition) \ - if (!(condition)) { cpost("ASSERTION - failed condition: %s\n", C74_STR(condition)); C74DebugBreak; } -#else -#define C74_ASSERT(condition) -#endif -#endif - -// the following are convenient before casting to a smaller size -// so the debug build will let you know if you are truncating unexpectedly -#define C74_ASSERT_FITS_CHAR(x) C74_ASSERT(((char)(x)) == (long long) (x)) -#define C74_ASSERT_FITS_UCHAR(x) C74_ASSERT(((unsigned char)(x)) == (unsigned long long) (x)) -#define C74_ASSERT_FITS_SHORT(x) C74_ASSERT(((short)(x)) == (long long) (x)) -#define C74_ASSERT_FITS_USHORT(x) C74_ASSERT(((unsigned short)(x)) == (unsigned long long) (x)) -#define C74_ASSERT_FITS_LONG(x) C74_ASSERT(((long)(x)) == (long long) (x)) -#define C74_ASSERT_FITS_ULONG(x) C74_ASSERT(((unsigned long)(x)) == (unsigned long long)(x)) -#define C74_ASSERT_FITS_INT32(x) C74_ASSERT(((t_int32)(x)) == (long long) (x)) -#define C74_ASSERT_FITS_UINT32(x) C74_ASSERT(((t_uint32)(x)) == (unsigned long long) (x)) -#define C74_ASSERT_FITS_PTR_INT(x) C74_ASSERT(((t_ptr_int)(x)) == (long long) (x)) -#define C74_ASSERT_FITS_PTR_UINT(x) C74_ASSERT(((t_ptr_uint)(x)) == (unsigned long long) (x)) - -// C74_STATIC_ASSERT: generates a compile error if expression e is false -// Can be disabled by defining C74_ENABLE_STATIC_ASSERT to be 0 before including max headers -#if defined(_DEBUG) && !defined(C74_ENABLE_STATIC_ASSERT) -#define C74_ENABLE_STATIC_ASSERT 1 -#endif -#if C74_ENABLE_STATIC_ASSERT -#if (__cplusplus >= 201103L) -#define C74_STATIC_ASSERT(e, m) static_assert(e, m) -#else -#define C74_STATIC_ASSERT(e, m) extern char __C74_STATIC_ASSERT__[(e)?1:-1]; -#endif -#else -#define C74_STATIC_ASSERT(e, m) -#endif - -#if defined(C74_X64) && defined(WIN_VERSION) -// It used to be required to set two-byte packing of structures on windows. -// For x64 it is important to set packing to default. -typedef struct _testpackingstruct -{ - t_uint8 firstmember; - t_int32 secondmember; // -} t_testpackingstruct; - -// if external is still configured for two byte alignment this will cause a compile error -// in which case you should change the structure alignment to the compiler default -C74_STATIC_ASSERT( (calcoffset(t_testpackingstruct, secondmember) - calcoffset(t_testpackingstruct, firstmember)) > 2, "struct alignment must be set to default!" ); - -#endif - -#define C74_EXTERNAL_NOT_ON_X64(name) void ext_main(void *r) { error("%s: not supported on x64", name); } -#define C74_EXTERNAL_NOT_ON_X64_QUIET void ext_main(void *r) { return; } - -#endif // _EXT_PREFIX_H_ diff --git a/source/c74support/max-includes/ext_preprocessor.h b/source/c74support/max-includes/ext_preprocessor.h deleted file mode 100644 index 913c9dfb..00000000 --- a/source/c74support/max-includes/ext_preprocessor.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - Copyright (c) 2011, Stefan Reinalter - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source - distribution. -*/ - -// ext_preprocessor.h: -// - derived from preprocessor magic here: http://altdevblogaday.com/wp-content/uploads/2011/10/Assert.txt -// - macros changed from ME_PP_* to C74_* to avoid any name conflicts - -#ifndef _EXT_PREPROCESSOR_H_ -#define _EXT_PREPROCESSOR_H_ - -#define C74_EXPAND(x) x - -/// concatenates tokens, even when the tokens are macros themselves -#define C74_JOIN_HELPER_HELPER(_0, _1) _0##_1 -#define C74_JOIN_HELPER(_0, _1) C74_JOIN_HELPER_HELPER(_0, _1) -#define C74_JOIN_IMPL(_0, _1) C74_JOIN_HELPER(_0, _1) - -#define C74_JOIN_2(_0, _1) C74_JOIN_IMPL(_0, _1) -#define C74_JOIN_3(_0, _1, _2) C74_JOIN_2(C74_JOIN_2(_0, _1), _2) -#define C74_JOIN_4(_0, _1, _2, _3) C74_JOIN_2(C74_JOIN_3(_0, _1, _2), _3) -#define C74_JOIN_5(_0, _1, _2, _3, _4) C74_JOIN_2(C74_JOIN_4(_0, _1, _2, _3), _4) -#define C74_JOIN_6(_0, _1, _2, _3, _4, _5) C74_JOIN_2(C74_JOIN_5(_0, _1, _2, _3, _4), _5) -#define C74_JOIN_7(_0, _1, _2, _3, _4, _5, _6) C74_JOIN_2(C74_JOIN_6(_0, _1, _2, _3, _4, _5), _6) -#define C74_JOIN_8(_0, _1, _2, _3, _4, _5, _6, _7) C74_JOIN_2(C74_JOIN_7(_0, _1, _2, _3, _4, _5, _6), _7) -#define C74_JOIN_9(_0, _1, _2, _3, _4, _5, _6, _7, _8) C74_JOIN_2(C74_JOIN_8(_0, _1, _2, _3, _4, _5, _6, _7), _8) -#define C74_JOIN_10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9) C74_JOIN_2(C74_JOIN_9(_0, _1, _2, _3, _4, _5, _6, _7, _8), _9) -#define C74_JOIN_11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10) C74_JOIN_2(C74_JOIN_10(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9), _10) -#define C74_JOIN_12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) C74_JOIN_2(C74_JOIN_11(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10), _11) -#define C74_JOIN_13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) C74_JOIN_2(C74_JOIN_12(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11), _12) -#define C74_JOIN_14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) C74_JOIN_2(C74_JOIN_13(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12), _13) -#define C74_JOIN_15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) C74_JOIN_2(C74_JOIN_14(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13), _14) -#define C74_JOIN_16(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) C74_JOIN_2(C74_JOIN_15(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14), _15) - - -/// chooses a value based on a condition -#define C74_IF_0(t, f) f -#define C74_IF_1(t, f) t -#define C74_IF(cond, t, f) C74_JOIN_2(C74_IF_, C74_TO_BOOL(cond))(t, f) - - -/// converts a condition into a boolean 0 (=false) or 1 (=true) -#define C74_TO_BOOL_0 0 -#define C74_TO_BOOL_1 1 -#define C74_TO_BOOL_2 1 -#define C74_TO_BOOL_3 1 -#define C74_TO_BOOL_4 1 -#define C74_TO_BOOL_5 1 -#define C74_TO_BOOL_6 1 -#define C74_TO_BOOL_7 1 -#define C74_TO_BOOL_8 1 -#define C74_TO_BOOL_9 1 -#define C74_TO_BOOL_10 1 -#define C74_TO_BOOL_11 1 -#define C74_TO_BOOL_12 1 -#define C74_TO_BOOL_13 1 -#define C74_TO_BOOL_14 1 -#define C74_TO_BOOL_15 1 -#define C74_TO_BOOL_16 1 - -#define C74_TO_BOOL(x) C74_JOIN_2(C74_TO_BOOL_, x) - - -/// Returns 1 if the arguments to the variadic macro are separated by a comma, 0 otherwise. -#define C74_HAS_COMMA(...) C74_HAS_COMMA_EVAL(C74_HAS_COMMA_ARGS(__VA_ARGS__, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0)) -#define C74_HAS_COMMA_EVAL(...) __VA_ARGS__ -#define C74_HAS_COMMA_ARGS(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, ...) _16 - - -/// Returns 1 if the argument list to the variadic macro is empty, 0 otherwise. -#define C74_IS_EMPTY(...) \ - C74_HAS_COMMA \ - ( \ - C74_JOIN_5 \ - ( \ - C74_IS_EMPTY_CASE_, \ - C74_HAS_COMMA(__VA_ARGS__), \ - C74_HAS_COMMA(C74_IS_EMPTY_BRACKET_TEST __VA_ARGS__), \ - C74_HAS_COMMA(__VA_ARGS__ (~)), \ - C74_HAS_COMMA(C74_IS_EMPTY_BRACKET_TEST __VA_ARGS__ (~)) \ - ) \ - ) - -#define C74_IS_EMPTY_CASE_0001 , -#define C74_IS_EMPTY_BRACKET_TEST(...) , - - -// C74_VA_NUM_ARGS() is a very nifty macro to retrieve the number of arguments handed to a variable-argument macro. -// unfortunately, VS 2010 still has this preprocessor bug which treats a __VA_ARGS__ argument as being one single parameter: -// https://connect.microsoft.com/VisualStudio/feedback/details/521844/variadic-macro-treating-va-args-as-a-single-parameter-for-other-macros#details -#if _MSC_VER >= 1400 -# define C74_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, N, ...) N -# define C74_VA_NUM_ARGS_REVERSE_SEQUENCE 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 -# define C74_VA_NUM_ARGS_LEFT ( -# define C74_VA_NUM_ARGS_RIGHT ) -# define C74_VA_NUM_ARGS(...) C74_VA_NUM_ARGS_HELPER C74_VA_NUM_ARGS_LEFT __VA_ARGS__, C74_VA_NUM_ARGS_REVERSE_SEQUENCE C74_VA_NUM_ARGS_RIGHT -#else -# define C74_VA_NUM_ARGS(...) C74_VA_NUM_ARGS_HELPER(__VA_ARGS__, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) -# define C74_VA_NUM_ARGS_HELPER(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, N, ...) N -#endif - -// C74_NUM_ARGS correctly handles the case of 0 arguments -#define C74_NUM_ARGS(...) C74_IF(C74_IS_EMPTY(__VA_ARGS__), 0, C74_VA_NUM_ARGS(__VA_ARGS__)) - - -// C74_PASS_ARGS passes __VA_ARGS__ as multiple parameters to another macro, working around the following bug: -// https://connect.microsoft.com/VisualStudio/feedback/details/521844/variadic-macro-treating-va-args-as-a-single-parameter-for-other-macros#details -#if _MSC_VER >= 1400 -# define C74_PASS_ARGS_LEFT ( -# define C74_PASS_ARGS_RIGHT ) -# define C74_PASS_ARGS(...) C74_PASS_ARGS_LEFT __VA_ARGS__ C74_PASS_ARGS_RIGHT -#else -# define C74_PASS_ARGS(...) (__VA_ARGS__) -#endif - - -/// Expand any number of arguments into a list of operations called with those arguments -#define C74_EXPAND_ARGS_0(op, empty) -#define C74_EXPAND_ARGS_1(op, a1) op(a1, 0) -#define C74_EXPAND_ARGS_2(op, a1, a2) op(a1, 0) op(a2, 1) -#define C74_EXPAND_ARGS_3(op, a1, a2, a3) op(a1, 0) op(a2, 1) op(a3, 2) -#define C74_EXPAND_ARGS_4(op, a1, a2, a3, a4) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) -#define C74_EXPAND_ARGS_5(op, a1, a2, a3, a4, a5) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) -#define C74_EXPAND_ARGS_6(op, a1, a2, a3, a4, a5, a6) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) -#define C74_EXPAND_ARGS_7(op, a1, a2, a3, a4, a5, a6, a7) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) -#define C74_EXPAND_ARGS_8(op, a1, a2, a3, a4, a5, a6, a7, a8) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) -#define C74_EXPAND_ARGS_9(op, a1, a2, a3, a4, a5, a6, a7, a8, a9) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) -#define C74_EXPAND_ARGS_10(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) -#define C74_EXPAND_ARGS_11(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) -#define C74_EXPAND_ARGS_12(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) op(a12, 11) -#define C74_EXPAND_ARGS_13(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) op(a12, 11) op(a13, 12) -#define C74_EXPAND_ARGS_14(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) op(a12, 11) op(a13, 12) op(a14, 13) -#define C74_EXPAND_ARGS_15(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) op(a12, 11) op(a13, 12) op(a14, 13) op(a15, 14) -#define C74_EXPAND_ARGS_16(op, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) op(a1, 0) op(a2, 1) op(a3, 2) op(a4, 3) op(a5, 4) op(a6, 5) op(a7, 6) op(a8, 7) op(a9, 8) op(a10, 9) op(a11, 10) op(a12, 11) op(a13, 12) op(a14, 13) op(a15, 14) op(a16, 15) - -#define C74_EXPAND_ARGS(op, ...) C74_JOIN_2(C74_EXPAND_ARGS_, C74_NUM_ARGS(__VA_ARGS__)) C74_PASS_ARGS(op, __VA_ARGS__) - - -/// Turns any legal C++ expression into nothing -#define C74_UNUSED_IMPL(symExpr, n) , (void)sizeof(symExpr) -#define C74_UNUSED(...) (void)sizeof(true) C74_EXPAND_ARGS C74_PASS_ARGS(C74_UNUSED_IMPL, __VA_ARGS__) - -#define C74_VARFUN_0(VARFUN_IMPL) VARFUN_IMPL((void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_1(VARFUN_IMPL, p1) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_2(VARFUN_IMPL, p1, p2) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_3(VARFUN_IMPL, p1, p2, p3) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_4(VARFUN_IMPL, p1, p2, p3, p4) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_5(VARFUN_IMPL, p1, p2, p3, p4, p5) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_6(VARFUN_IMPL, p1, p2, p3, p4, p5, p6) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_7(VARFUN_IMPL, p1, p2, p3, p4, p5, p6, p7) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)(p7), (void*)(t_atom_long)0, (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_8(VARFUN_IMPL, p1, p2, p3, p4, p5, p6, p7, p8) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)(p7), (void*)(t_atom_long)(p8), (void*)(t_atom_long)0, (void*)(t_atom_long)0) -#define C74_VARFUN_9(VARFUN_IMPL, p1, p2, p3, p4, p5, p6, p7, p8, p9) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)(p7), (void*)(t_atom_long)(p8), (void*)(t_atom_long)(p9), (void*)(t_atom_long)0) -#define C74_VARFUN_10(VARFUN_IMPL, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)(p7), (void*)(t_atom_long)(p8), (void*)(t_atom_long)(p9), (void*)(t_atom_long)(p10)) -#define C74_VARFUN_11(VARFUN_IMPL, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11) VARFUN_IMPL((void*)(t_atom_long)(p1), (void*)(t_atom_long)(p2), (void*)(t_atom_long)(p3), (void*)(t_atom_long)(p4), (void*)(t_atom_long)(p5), (void*)(t_atom_long)(p6), (void*)(t_atom_long)(p7), (void*)(t_atom_long)(p8), (void*)(t_atom_long)(p9), (void*)(t_atom_long)(p10), (void*)(t_atom_long)(p11)) - -// C74_VARFUN supports calling a function via a macro in a way that looks like a var args function -// - VARFUN_IMPL: is a function that takes 10 void* parameters -// - there must be at least one parameter passed after the VARFUN_IMPL -// - each parameter passed is cast first to a t_atom_long and then to a void* -// this is done to sign-extend and promote shorter integer types -// - see object_method for an example - -#if _MSC_VER >= 1400 -#define C74_VARFUN(VARFUN_IMPL, ...) C74_JOIN_2(C74_VARFUN_, C74_NUM_ARGS(__VA_ARGS__)) C74_PASS_ARGS(VARFUN_IMPL, __VA_ARGS__) -#else -#define C74_VARFUN(VARFUN_IMPL, ...) C74_JOIN_2(C74_VARFUN_, C74_NUM_ARGS(__VA_ARGS__))( VARFUN_IMPL, __VA_ARGS__ ) -#endif - -#endif // #ifndef _EXT_PREPROCESSOR_H_ diff --git a/source/c74support/max-includes/ext_proto.h b/source/c74support/max-includes/ext_proto.h deleted file mode 100755 index 9de3ae08..00000000 --- a/source/c74support/max-includes/ext_proto.h +++ /dev/null @@ -1,1979 +0,0 @@ -/* ext_proto.h -- prototypes for MAX external methods */ -/* copyright 1996 Opcode/IRCAM */ -#ifndef _EXT_PROTO_H_ -#define _EXT_PROTO_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#ifdef WIN_VERSION -#include "ext_proto_win.h" -#endif - -BEGIN_USING_C_LINKAGE - -// object/class functions - -/** Use the setup() function to initialize your class by informing Max of its size, - the name of your functions that create and destroy instances, - and the types of arguments passed to the instance creation function. - - @ingroup class_old - - @param ident A global variable in your code that points to the initialized class. - @param makefun Your instance creation function. - @param freefun Your instance free function (see Chapter 7). - @param size The size of your objects data structure in bytes. - Usually you use the C sizeof operator here. - @param menufun No longer used. You should pass NULL for this parameter. - @param type The first of a list of arguments passed to makefun when an object is created. - @param ... Any additional arguments passed to makefun when an object is created. - Together with the type parameter, this creates a standard Max type list - as enumerated in #e_max_atomtypes. - The final argument of the type list should be a 0. - @see @ref chapter_anatomy -*/ -C74_DEPRECATED ( void setup(t_messlist **ident, method makefun, method freefun, t_getbytes_size size, method menufun, short type, ...) ) ; - - -/** Use addmess() to bind a function to a message other than the standard ones - covered by addbang(), addint(), etc. - - @ingroup class_old - @param f Function you want to be the method. - @param s C string defining the message. - @param type The first of one or more integers from #e_max_atomtypes specifying the arguments to the message. - @param ... Any additional types from #e_max_atomtypes for additonal arguments. - @see @ref chapter_anatomy -*/ -C74_DEPRECATED ( void addmess(method f, char *s, short type, ...) ); - - -/** - Used to bind a function to the common triggering message bang. - - @ingroup class_old - @param f Function to be the bang method. -*/ -C74_DEPRECATED ( void addbang(method f) ); - - -/** - Use addint() to bind a function to the int message received in the leftmost inlet. - @ingroup class_old - @param f Function to be the int method. -*/ -C74_DEPRECATED ( void addint(method f) ); - - -/** - Use addfloat() to bind a function to the float message received in the leftmost inlet. - @ingroup class_old - @param f Function to be the int method. -*/ -C74_DEPRECATED ( void addfloat(method f) ); - - -/** - Use addinx() to bind a function to a int message that will be received in - an inlet other than the leftmost one. - - @ingroup class_old - @param f Function to be the int method. - @param n Number of the inlet connected to this method. - 1 is the first inlet to the right of the left inlet. - - @remark This correspondence between inlet locations and messages is not - automatic, but it is strongly suggested that you follow existing practice. - You must set the correspondence up when creating an object of your - class with proper use of intin and floatin in your instance creation - function @ref chapter_anatomy_object_new. -*/ -C74_DEPRECATED ( void addinx(method f, short n) ); - - -/** - Use addftx() to bind a function to a float message that will be received in - an inlet other than the leftmost one. - - @ingroup class_old - @param f Function to be the float method. - @param n Number of the inlet connected to this method. - 1 is the first inlet to the right of the left inlet. - - @remark This correspondence between inlet locations and messages is not - automatic, but it is strongly suggested that you follow existing practice. - You must set the correspondence up when creating an object of your - class with proper use of intin and floatin in your instance creation - function @ref chapter_anatomy_object_new. -*/ -C74_DEPRECATED ( void addftx(method f, short n) ); - - -/** - Use newobject to allocate the space for an instance of your class and - initialize its object header. - - @ingroup class_old - @param maxclass The global class variable initialized in your main routine by the setup function. - @return A pointer to the new instance. - - @remark You call newobject() when creating an instance of your class in your - creation function. newobject allocates the proper amount of memory - for an object of your class and installs a pointer to your class in the - object, so that it can respond with your class's methods if it receives a - message. -*/ -C74_DEPRECATED ( void *newobject(void *maxclass) ); - - -/** - Release the memory used by a Max object. - freeobject() calls an object's free function, if any, then disposes the - memory used by the object itself. freeobject() should be used on any - instance of a standard Max object data structure, with the exception of - Qelems and Atombufs. Clocks, Binbufs, Proxies, Exprs, etc. should be freed with freeobject(). - - @ingroup class_old - @param op The object instance pointer to free. - - @remark This function can be replaced by the use of object_free(). - Unlike freeobject(), object_free() checkes to make sure the pointer is - not NULL before trying to free it. - - @see newobject() - @see object_free() -*/ -void freeobject(void *op); - - -/** Make a new instance of an existing Max class. - @ingroup class_old - - @param s className Symbol specifying the name of the class of the instance to be created. - @param argc Count of arguments in argv. - @param argv Array of t_atoms; arguments to the class's instance creation function. - - @return A pointer to the created object, or 0 if the class - didn't exist or there was another type of error in creating the instance. - - @remark This function creates a new instance of the specified class. Using - newinstance is equivalent to typing something in a New Object box - when using Max. The difference is that no object box is created in any - Patcher window, and you can send messages to the object directly - without connecting any patch cords. The messages can either be type- - checked (using typedmess) or non-type-checked (using the members - of the getfn family). - - This function is useful for taking advantage of other already-defined - objects that you would like to use 'privately' in your object, such as - tables. See the source code for the coll object for an example of using a - privately defined class. -*/ -void *newinstance(t_symbol *s, short argc, t_atom *argv); - - -/** - @ingroup class_old -*/ -C74_DEPRECATED (void finder_addclass(char *category, char *classString)); - - -/** - Use the alias function to allow users to refer to your object by a - name other than that of your shared library. - - @ingroup class_old - @param name An alternative name for the user to use to make an object of your class. -*/ -C74_DEPRECATED (void alias(char *name) ); - - -/** - @ingroup class_old -*/ -void class_noinlet(t_messlist *m); - - -/** - Use class_setname() to associate you object's name with it's filename - on disk. - - @ingroup class_old - @param obname A character string with the name of your object class as it appears in Max. - @param filename A character string with the name of your external's file as it appears on disk. -*/ -void class_setname(char *obname, char *filename); - - -short force_install(char *classname); -void loader_setpath(t_fourcc type, short path); - - - -// memory functions - -/** - Allocate small amounts of non-relocatable memory. - As of Max 5 it is unified with sysmem_newptr(), which is the preferred method for allocating memory. - @ingroup memory - @param size The size to allocate in bytes (up to 32767 bytes). - @return A pointer to the allocated memory. -*/ -char *getbytes(t_getbytes_size size); - - -/** - Free memory allocated with getbytes(). - As of Max 5 it is unified with sysmem_newptr(), which is the preferred method for allocating memory. - @ingroup memory - @param b A pointer to the block of memory previously allocated that you want to free. - @param size The size the block specified (as parameter b) in bytes. -*/ -void freebytes(void *b, t_getbytes_size size); - - -/** - Use getbytes16() to allocate small amounts of non-relocatable - memory that is aligned on a 16-byte boundary for use with vector optimization. - @ingroup memory - @param size The size to allocate in bytes (up to 32767 bytes). - @return A pointer to the allocated memory. - - @remark getbytes16() is identical to getbytes except that it returns memory - that is aligned to a 16-byte boundary. This allows you to allocate - storage for vector-optimized memory at interrupt level. Note that any - memory allocated with getbytes16() must be freed with - freebytes16(), not freebytes(). -*/ -char *getbytes16(t_getbytes_size size); - - -/** - Free memory allocated with getbytes16(). - As of Max 5 it is unified with sysmem_newptr(), which is the preferred method for allocating memory. - @ingroup memory - @param mem A pointer to the block of memory previously allocated that you want to free. - @param size The size the block specified (as parameter b) in bytes. - - @remark Note that freebytes16() will cause memory corruption if you pass it - memory that was allocated with getbytes(). Use it only with memory - allocated with getbytes16(). -*/ -void freebytes16(char *mem, t_getbytes_size size); - - -/** - Allocate relocatable memory. Deprecated, use sysmem_newhandle instead - - @ingroup memory - @param size The size to allocate in bytes. - @return The allocated handle. - @see sysmem_newhandle() -*/ -C74_DEPRECATED (char **newhandle(long size)); - - -/** - Change the size of a handle. Deprecated, use sysmem_resizehandle instead - - @ingroup memory - @param h The handle to resize. - @param size The new size to allocate in bytes. - @return Ignored. - @see sysmem_resizehandle() -*/ -C74_DEPRECATED (short growhandle(void *h, long size)); - - -/** - Free the memory used by a handle you no longer need. Deprecated, use sysmem_freehandle instead - - @ingroup memory - @param h The handle to dispose. - @see sysmem_freehandle() -*/ -C74_DEPRECATED (void disposhandle(char **h)); - -#ifdef MM_UNIFIED // sysmem and getbytes are unified -#define getbytes(size) ((char *)sysmem_newptr((t_ptr_size)(size))) -#define freebytes(p,size) sysmem_freeptr((char *)(p)) -#endif - -// symbol/string/text/error functions - -#ifndef gensym -/** - Given a C-string, fetch the matching #t_symbol pointer from the symbol table, - generating the symbol if neccessary. - - @ingroup symbol - @param s A C-string to be looked up in Max's symbol table. - @return A pointer to the #t_symbol in the symbol table. -*/ -t_symbol *gensym(C74_CONST char *s); -#endif - -/** - Given a C-string, fetch the matching #t_symbol pointer from the symbol table, - generating and translating the symbol if neccessary. - - @ingroup symbol - @param s A C-string to be looked up in Max's symbol table and then translated - @return A pointer to the #t_symbol in the symbol table. - */ - -#ifdef NO_TRANSLATION_SUPPORT -#define gensym_tr gensym -#else -t_symbol *gensym_tr(const char *s); -#endif - -// other translation stuff, to be documented... - -#ifdef NO_TRANSLATION_SUPPORT -#define str_tr(s) (s) -#define symbol_tr(s) (s) -#define sprintf_tr snprintf -#else -char *str_tr(const char *s); -t_symbol *symbol_tr(t_symbol *s); -int sprintf_tr(char *d, const char *fmt, ...); -#endif - -char *mayquote(char *s); - -short advise(const char *s, ...); -short advise_explain(const char *note, const char *explanation, const char *b1, const char *b2, const char *b3); - -/** - Print text to the Max window, linked to an instance of your object, - and flagged as an error (highlighted with a red background), - and grab the user's attention by displaying a banner in the patcher window. - - This function should be used exceedingly sparingly, with preference given to - object_error() when a problem occurs. - - @ingroup console - @param x A pointer to your object. - @param s A C-string containing text and printf-like codes - specifying the sizes and formatting of the additional arguments. - @param ... Arguments of any type that correspond to the format codes in fmtString. - - @see object_post() - @see object_error() -*/ -void object_error_obtrusive(t_object *x, C74_CONST char *s, ...); - - -long jdialog_showtext(const char *prompt, const char *deftext, long flags, const char **text); - - -// inlet/outlet functions - -/** - Use inlet_new() to create an inlet that can receive a specific message or any message. - - @ingroup inout - @param x Your object. - @param s Character string of the message, or NULL to receive any message. - @return A pointer to the new inlet. - - @remark inlet_new() ceates a general purpose inlet. - You can use it in circumstances where you would like special messages to be received in - inlets other than the leftmost one. - To create an inlet that receives a particular message, pass the message's - character string. For example, to create an inlet that receives only bang - messages, do the following - @code - inlet_new (myObject,"bang"); - @endcode - - @remark To create an inlet that can receive any message, pass NULL for msg - @code - inlet_new (myObject, NULL); - @endcode - - @remark Proxies are an alternative method for general-purpose inlets that have - a number of advantages. If you create multiple inlets as shown above, - there would be no way to figure out which inlet received a message. See - the discussion in @ref chapter_inout_proxies. -*/ -void *inlet_new(void *x, C74_CONST char *s); - -/** - Use intin() to create an inlet typed to receive only integers. - - @ingroup inout - @param x Your object. - @param n Location of the inlet from 1 to 9. 1 is immediately to the right of the leftmost inlet. - @return A pointer to the new inlet. - - @remark intin creates integer inlets. - It takes a pointer to your newly created object and an integer n, from 1 to 9. - The number specifies the message - type you'll get, so you can distinguish one inlet from another. For - example, an integer sent in inlet 1 will be of message type in1 and a - floating point number sent in inlet 4 will be of type ft4. You use - addinx() and addftx() to add methods to respond to these messages. - - The order you create additional inlets is important. If you want the - rightmost inlet to be the have the highest number in- or ft- message - (which is usually the case), you should create the highest number - message inlet first. -*/ -void *intin(void *x, short n); - - -/** - Use floatin() to create an inlet typed to receive only floats. - - @ingroup inout - @param x Your object. - @param n Location of the inlet from 1 to 9. 1 is immediately to the right of the leftmost inlet. - @return A pointer to the new inlet. -*/ -void *floatin(void *x, short n); - - -// for dynamic inlets -void *inlet_append(t_object *op, void *who, t_symbol *s1, t_symbol *s2); -void *inlet_insert_after(t_object *op,void *who, t_symbol *s1, t_symbol *s2, void *previous_inlet); -void inlet_delete(void *x); -void *inlet_nth(t_object *x, long n); -long inlet_count(t_object *x); - - -/** - Use outlet_new() to create an outlet that can send a specific non-standard message, or any message. - - @ingroup inout - @param x Your object. - @param s A C-string specifying the message that will be sent out this outlet, - or NULL to indicate the outlet will be used to send various messages. - The advantage of this kind of outlet's flexibility is balanced by the fact that - Max must perform a message-lookup in real-time for every message sent through it, - rather than when a patch is being constructed, as is true for other types of outlets. - Patchers execute faster when outlets are typed, since the message - lookup can be done before the program executes. - @return A pointer to the new outlet. -*/ -void *outlet_new(void *x, C74_CONST char *s); - - -// for dynamic outlets -void *outlet_append(t_object *op, t_symbol *s1, t_symbol *s2); -void *outlet_insert_after(t_object *op, t_symbol *s1, t_symbol *s2, void *previous_outlet); -void outlet_delete(void *x); -long outlet_count(t_object *x); -void *outlet_nth(t_object *x, long n); - - -/** - Use bangout() to create an outlet that will always send the bang message. - - @ingroup inout - @param x Your object. - @return A pointer to the new outlet. - - @remark You can send a bang message out a general purpose outlet, but creating - an outlet using bangout() allows Max to type-check the connection a - user might make and refuse to connect the outlet to any object that - cannot receive a bang message. bangout() returns the created outlet. -*/ -void *bangout(void *x); - - -/** - Use intout() to create an outlet that will always send the int message. - - @ingroup inout - @param x Your object. - @return A pointer to the new outlet. - - @remark You can send a bang message out a general purpose outlet, but creating - an outlet using bangout() allows Max to type-check the connection a - user might make and refuse to connect the outlet to any object that - cannot receive a bang message. bangout() returns the created outlet. -*/ -void *intout(void *x); - - -/** - Use floatout() to create an outlet that will always send the float message. - - @ingroup inout - @param x Your object. - @return A pointer to the new outlet. -*/ -void *floatout(void *x); - - -/** - Use listout() to create an outlet that will always send the list message. - @ingroup inout - @param x Your object. - @return A pointer to the new outlet. -*/ -void *listout(void *x); - - -/** - Use outlet_bang() to send a bang message out an outlet. - - @ingroup inout - @param o Outlet that will send the message. - @return Returns 0 if a stack overflow occurred, otherwise returns 1. -*/ -void *outlet_bang(t_outlet *x); - - -/** - Use outlet_int() to send an int message out an outlet. - - @ingroup inout - @param o Outlet that will send the message. - @param n Integer value to send. - @return Returns 0 if a stack overflow occurred, otherwise returns 1. -*/ -#ifndef outlet_int -void *outlet_int(t_outlet *x, t_atom_long n); -#endif - - -/** - Use outlet_float() to send a float message out an outlet. - - @ingroup inout - @param o Outlet that will send the message. - @param f Float value to send. - @return Returns 0 if a stack overflow occurred, otherwise returns 1. -*/ -#ifndef outlet_float -void *outlet_float(t_outlet *x, double f); -#endif - - -/** - Use outlet_list() to send a list message out an outlet. - - @ingroup inout - @param o Outlet that will send the message. - @param s Should be NULL, but can be the _sym_list. - @param ac Number of elements in the list in argv. - @param av Atoms constituting the list. - @return Returns 0 if a stack overflow occurred, otherwise returns 1. - - @remark outlet_list() sends the list specified by argv and argc out the - specified outlet. The outlet must have been created with listout or - outlet_new in your object creation function (see above). You create - the list as an array of Atoms, but the first item in the list must be an - integer or float. - - Here's an example of sending a list of three numbers. - @code - t_atom myList[3]; - long theNumbers[3]; - short i; - - theNumbers[0] = 23; - theNumbers[1] = 12; - theNumbers[2] = 5; - for (i=0; i < 3; i++) { - atom_setlong(myList+i,theNumbers[i]); - } - outlet_list(myOutlet,0L,3,&myList); - @endcode - - @remark It's not a good idea to pass large lists to outlet_list that are - comprised of local (automatic) variables. If the list is small, as in the - above example, there's no problem. If your object will regularly send - lists, it might make sense to keep an array of t_atoms inside your - object's data structure. -*/ -#ifndef outlet_list -void *outlet_list(t_outlet *x, t_symbol *s, short ac, t_atom *av); -#endif - - -/** - Use outlet_anything() to send any message out an outlet. - - @ingroup inout - @param o Outlet that will send the message. - @param s The message selector #t_symbol*. - @param ac Number of elements in the list in argv. - @param av Atoms constituting the list. - @return Returns 0 if a stack overflow occurred, otherwise returns 1. - - @remark This function lets you send an arbitrary message out an outlet. - Here are a couple of examples of its use. - - First, here's a hard way to send the bang message (see outlet_bang() for an easier way): - @code - outlet_anything(myOutlet, gensym("bang"), 0, NIL); - @endcode - - @remark And here's an even harder way to send a single integer (instead of using outlet_int()). - @code - t_atom myNumber; - - atom_setlong(&myNumber, 432); - outlet_anything(myOutlet, gensym("int"), 1, &myNumber); - @endcode - - @remark Notice that outlet_anything() expects the message argument as a - #t_symbol*, so you must use gensym() on a character string. - - If you'll be sending the same message a lot, you might call gensym() on the message string at - initialization time and store the result in a global variable to save the - (significant) overhead of calling gensym() every time you want to send a - message. - - Also, do not send lists using outlet_anything() with list as - the selector argument. Use the outlet_list() function instead. -*/ -#ifndef outlet_anything -void *outlet_anything(t_outlet *x, t_symbol *s, short ac, t_atom *av); -#endif - - -void *inlet4(void *x, void *w, char *s, char *s1); - - -void inlet_to(t_inlet *x, void *w); - - -short outlet_add(t_outlet *x, t_inlet *ip); - - -void outlet_rm(t_outlet *x, t_inlet *ip); - - -void outlet_atoms(void *out, short argc, t_atom *argv); - - - - -// clock functions - -/** - Create a new Clock object. - Normally, clock_new() is called in your instance creation - function—and it cannot be called from a thread other than the main thread. - To get rid of a clock object you created, use freeobject(). - - @ingroup clocks - @param obj Argument that will be passed to clock function fn when it is called. - This will almost always be a pointer to your object. - @param fn Function to be called when the clock goes off, - declared to take a single argument as shown in @ref clocks_using_clocks. - @return A pointer to a newly created Clock object. -*/ -t_clock *clock_new(void *obj, method fn); - -t_clock *clock_new_withscheduler(void *obj, method fn, t_scheduler *s); - -void clock_set(t_clock *x, long when); - -/** - Schedule the execution of a Clock. - clock_delay() sets a clock to go off at a certain number of - milliseconds from the current logical time. - - @ingroup clocks - @param x Clock to schedule. - @param n Delay, in milliseconds, before the Clock will execute. - @see clock_fdelay() -*/ -void clock_delay(t_clock *x, long n); - - -/** - Cancel the scheduled execution of a Clock. - clock_unset() will do nothing (and not complain) if the Clock passed - to it has not been set. - - @ingroup clocks - @param x Clock to cancel. -*/ -void clock_unset(t_clock *x); - - -/** - Schedule the execution of a Clock using a floating-point argument. - clock_delay() sets a clock to go off at a certain number of - milliseconds from the current logical time. - - @ingroup clocks - @param c Clock to schedule. - @param time Delay, in milliseconds, before the Clock will execute. - @see clock_delay() -*/ -void clock_fset(t_clock *x, double when); -void clock_fset2(t_clock *x, double when, double offset); -void clock_fdelay(t_clock *x, double f); -void clock_fdelay2(t_clock *x, double delay, double offset); - -/** - Find out the current logical time of the scheduler in milliseconds - as a floating-point number. - - @ingroup clocks - @param time Returns the current time. - @see gettime() - @see setclock_getftime() - @see setclock_gettime() -*/ -void clock_getftime(double *time); - - -/** Schedule a Clock on a scheduler. - Schedules the Clock c to execute at time units after the current - time. If scheduler x is 0 or does not point to a setclock object, the - internal millisecond scheduler is used. Otherwise c is scheduled on - the setclock object's list of Clocks. The Clock should be created with - clock_new(), the same as for a Clock passed to clock_delay(). - - @ingroup clocks - @param x A setclock object to be used for scheduling this clock. - @param c Clock object containing the function to be executed. - @param time Time delay (in the units of the Setclock) from the - current time when the Clock will be executed. - @see @ref setclock - @see setclock_fdelay() -*/ -void setclock_delay(t_setclock *x, t_clock *c, long when); - -/** Remove a Clock from a scheduler. - This function unschedules the Clock c in the list of Clocks in the - setclock object x, or the internal millisecond scheduler if scheduler is 0. - - @ingroup clocks - @param x The setclock object that was used to schedule this clock. - If 0, the clock is unscheduled from the internal millisecond scheduler. - @param c Clock object to be removed from the scheduler. - @see @ref setclock -*/ -void setclock_unset(t_setclock *x, t_clock *c); - -/** Find out the current time value of a setclock object. - @ingroup clocks - @param x A setclock object. - @return Returns the current time value of the setclock object scheduler. - If scheduler is 0, setclock_gettime is equivalent to the function - gettime that returns the current value of the internal millisecond clock. - @see @ref setclock - @see setclock_getftime() -*/ -long setclock_gettime(t_setclock *x); - -/** Schedule a Clock on a scheduler, using a floating-point time argument. - @ingroup clocks - @param s A setclock object to be used for scheduling this clock. - @param c Clock object containing the function to be executed. - @param time Time delay (in the units of the Setclock) from the - current time when the Clock will be executed. - @see @ref setclock - @see setclock_delay() -*/ -void setclock_fdelay(t_setclock *x, t_clock *c, double f); - -/** Find out the current time value of a setclock object in floating-point milliseconds. - @ingroup clocks - @param s A setclock object. - @param time The current time in milliseconds. - @see @ref setclock - @see setclock_gettime() -*/ -void setclock_getftime(t_setclock *x, double *time); - -// real-time - -/** - While most Max timing references "logical" time derived from Max's millisecond scheduler, - time values produced by the systimer_gettime() are referenced from the CPU clock and can be used - to time real world events with microsecond precision. - - The standard 'cpuclock' external in Max is a simple wrapper around this function. - - @ingroup clocks - @return Returns the current real-world time. -*/ -double systimer_gettime(void); - - -// scheduler functions - -/** - Find out the current logical time of the scheduler in milliseconds. - - @ingroup clocks - @return Returns the current time. - @see clock_getftime() -*/ -long gettime(void); -long getschedtime(void); -long getexttime(void); -short sched_isinpoll(void); -short sched_isinqueue(void); - -/** - Find the correct scheduler for the object and return the current time in milliseconds. - - @ingroup clocks - @return Returns the current time. - @see clock_getftime() - */ - -double gettime_forobject(t_object *x); - -/** - Cause a function to be executed at the timer level at some time in the future. - - @ingroup threading - @param ob First argument passed to the function fun when it executes. - @param fun Function to be called, see below for how it should be declared. - @param when The logical time that the function fun will be executed. - @param sym Second argument passed to the function fun when it executes. - @param argc Count of arguments in argv. argc is also the third argument passed to the function fun when it executes. - @param argv Array containing a variable number of #t_atom function arguments. - If this argument is non-zero, defer allocates memory to make a copy of the arguments - (according to the size passed in argc) - and passes the copied array to the function fun when it executes as the fourth argument. - - @remark schedule() calls a function at some time in the future. Unlike defer(), - the function is called in the scheduling loop when logical time is equal - to the specified value when. This means that the function could be - called at interrupt level, so it should follow the usual restrictions on - interrupt-level conduct. The function fun passed to schedule should - be declared as follows: - - @code - void myobject_do (myObject *client, t_symbol *s, short argc, t_atom *argv); - @endcode - - @remark One use of schedule() is as an alternative to using the lockout flag. - - @see defer() -*/ -void schedule(void *ob, method fun, long when, t_symbol *sym, short argc, t_atom *argv); -void schedulef(void *ob, method fun, double when, t_symbol *sym, short argc, t_atom *argv); - -/** Create a new local scheduler. - @ingroup clocks - @return A pointer to the newly created scheduler. - @see @ref creating_schedulers -*/ -t_scheduler *scheduler_new(void); - - -/** Make a scheduler current, so that future related calls (such as - clock_delay()) will affect the appropriate scheduler. - - @ingroup clocks - @param x The scheduler to make current. - @return This routine returns a pointer to the previously current scheduler, - saved and restored when local scheduling is complete. - @see @ref creating_schedulers -*/ -t_scheduler *scheduler_set(t_scheduler *x); - -/** Get the currently set scheduler. - - @ingroup clocks - @return This routine returns a pointer to the current scheduler, - @see @ref creating_schedulers -*/ -t_scheduler *scheduler_get(void); - -/** Get the scheduler associated with a given object, if any. - - @ingroup clocks - @param o The object who's scheduler is to be returned. - @return This routine returns a pointer to the scheduler or the passed in object, - @see @ref creating_schedulers -*/ -t_scheduler *scheduler_fromobject(t_object *obj); - -/** Run scheduler events to a selected time. - @ingroup clocks - @param x The scheduler to advance. - @param until The ending time for this run (in milliseconds). - @see @ref creating_schedulers -*/ -void scheduler_run(t_scheduler *x, double until); - - -/** Set the current time of the scheduler. - @ingroup clocks - @param x The scheduler to set. - @param time The new current time for the selected scheduler (in milliseconds). - @see @ref creating_schedulers -*/ -void scheduler_settime(t_scheduler *x, double time); - - -/** Retrieve the current time of the selected scheduler. - @ingroup clocks - @param x The scheduler to query. - @param time The current time of the selected scheduler. - @see @ref creating_schedulers -*/ -void scheduler_gettime(t_scheduler *x, double *time); - -/** Shift scheduler's current time and run time for all pending clock. - Could be used to change scheduler's time reference without impacting current clocks. - @ingroup clocks - @param x The scheduler to affect. - @param amount Number of milliseconds to shift by. - @see @ref creating_schedulers -*/ -void scheduler_shift(t_scheduler *x, double amount); - -/** - Cause a function to be executed at the timer level at some time in the future specified by a delay offset. - - @ingroup threading - @param ob First argument passed to the function fun when it executes. - @param fun Function to be called, see below for how it should be declared. - @param delay The delay from the current time before the function will be executed. - @param sym Second argument passed to the function fun when it executes. - @param argc Count of arguments in argv. argc is also the third argument passed to the function fun when it executes. - @param argv Array containing a variable number of #t_atom function arguments. - If this argument is non-zero, schedule_delay() allocates memory to make a copy of the arguments - (according to the size passed in argc) - and passes the copied array to the function fun when it executes as the fourth argument. - - @remark schedule_delay() is similar to schedule() but allows you to specify the - time as a delay rather than a specific logical time. - - @code - void myobject_click (t_myobject *x, Point pt, short modifiers) - { - t_atom a[1]; - a[0].a_type = A_LONG; - a[0].a_w.w_long = Random(); - schedule_delay(x, myobject_sched, 0 ,0, 1, a); - } - - void myobject_sched (t_myobject *x, t_symbol *s, short ac, t_atom *av) - { - outlet_int(x->m_out,av->a_w.w_long); - } - @endcode - - @see schedule() -*/ -void schedule_delay(void *ob, method fun, long delay, t_symbol *sym, short argc, t_atom *argv); -void schedule_fdelay(void *ob, method fun, double delay, t_symbol *sym, short argc, t_atom *argv); -void schedule_defer(void *ob, method fun, long delay, t_symbol *sym, short argc, t_atom *arv); -void schedule_fdefer(void *ob, method fun, double delay, t_symbol *sym, short argc, t_atom *arv); -short lockout_set(short); - -/** - Determine whether your code is executing in the Max scheduler thread. - - @ingroup threading - @return This function returns non-zero if you are within Max's scheduler thread, zero otherwise. - Note that if your code sets up other types of interrupt-level callbacks, - such as for other types of device drivers used in asynchronous mode, isr will return false. -*/ -long isr(void); - -// queue functions - -/** - Create a new Qelem. - The created Qelem will need to be freed using qelem_free(), do not use freeobject(). - - @ingroup qelems - @param obj Argument to be passed to function fun when the Qelem executes. - Normally a pointer to your object. - @param fn Function to execute. - @return A pointer to a Qelem instance. - You need to store this value to pass to qelem_set(). - - @remark Any kind of drawing or calling of Macintosh Toolbox routines that - allocate or purge memory should be done in a Qelem function. -*/ -void *qelem_new(void *obj, method fn); - - -/** - Cause a Qelem to execute. - - @ingroup qelems - @param q The Qelem whose function will be executed in the main thread. - - @remark The key behavior of qelem_set() is this: if the Qelem object has already - been set, it will not be set again. (If this is not what you want, see - defer().) This is useful if you want to redraw the state of some - data when it changes, but not in response to changes that occur faster - than can be drawn. A Qelem object is unset after its queue function has - been called. -*/ -void qelem_set(t_qelem *x); - - -/** - Cancel a Qelem's execution. - If the Qelem's function is set to be called, qelem_unset() will stop it - from being called. Otherwise, qelem_unset() does nothing. - - @ingroup qelems - @param q The Qelem whose execution you wish to cancel. -*/ -void qelem_unset(t_qelem *x); - - -/** - Free a Qelem object created with qelem_new(). - Typically this will be in your object's free funtion. - - @ingroup qelems - @param x The Qelem to destroy. -*/ -void qelem_free(t_qelem *x); - - -/** - Cause a Qelem to execute with a higher priority. - This function is identical to qelem_set(), except that the Qelem's - function is placed at the front of the list of routines to execute in the - main thread instead of the back. Be polite and only use - qelem_front() only for special time-critical applications. - - @ingroup qelems - @param x The Qelem whose function will be executed in the main thread. -*/ -void qelem_front(t_qelem *x); - - -/** - Defer execution of a function to the main thread if (and only if) - your function is executing in the scheduler thread. - - @ingroup threading - @param ob First argument passed to the function fun when it executes. - @param fn Function to be called, see below for how it should be declared. - @param sym Second argument passed to the function fun when it executes. - @param argc Count of arguments in argv. argc is also the third argument passed to the function fun when it executes. - @param argv Array containing a variable number of #t_atom function arguments. - If this argument is non-zero, defer allocates memory to make a copy of the arguments - (according to the size passed in argc) - and passes the copied array to the function fun when it executes as the fourth argument. - @return Return values is for internal Cycling '74 use only. - - @remark This function uses the isr() routine to determine whether you're at the - Max timer interrupt level (in the scheduler thread). - If so, defer() creates a Qelem (see @ref qelems), calls - qelem_front(), and its queue function calls the function fn you - passed with the specified arguments. - If you're not in the scheduler thread, the function is executed immediately with the - arguments. Note that this implies that defer() is not appropriate for - using in situations such as Device or File manager I/0 completion routines. - The defer_low() function is appropriate however, because it always defers. - - The deferred function should be declared as follows: - @code - void myobject_do (myObject *client, t_symbol *s, short argc, t_atom *argv); - @endcode - - @see defer_low() -*/ -void *defer(void *ob,method fn,t_symbol *sym,short argc,t_atom *argv); - - -/** - Defer execution of a function to the back of the queue on the main thread. - - @ingroup threading - @param ob First argument passed to the function fun when it executes. - @param fn Function to be called, see below for how it should be declared. - @param sym Second argument passed to the function fun when it executes. - @param argc Count of arguments in argv. argc is also the third argument passed to the function fun when it executes. - @param argv Array containing a variable number of #t_atom function arguments. - If this argument is non-zero, defer allocates memory to make a copy of the arguments - (according to the size passed in argc) - and passes the copied array to the function fun when it executes as the fourth argument. - @return Return values is for internal Cycling '74 use only. - - @remark defer_low() always defers a call to the function fun whether you are already - in the main thread or not, and uses qelem_set(), not qelem_front(). This - function is recommended for responding to messages that will cause - your object to open a dialog box, such as read and write. - - The deferred function should be declared as follows: - @code - void myobject_do (myObject *client, t_symbol *s, short argc, t_atom *argv); - @endcode - - @see defer() -*/ -void *defer_low(void *ob,method fn,t_symbol *sym,short argc,t_atom *argv); - -void *defer_medium(void *ob, method fn, t_symbol *sym, short argc, t_atom *argv); - -void *defer_front(void *ob, method fn, t_symbol *sym, short argc, t_atom *argv); - -// private -void *defer_sys_low(void *ob,method fn,t_symbol *sym,short argc,t_atom *argv); - - - -// binbuf functions - -/** - Use binbuf_new() to create and initialize a Binbuf. - @ingroup binbuf - @return Returns a new binbuf if successful, otherwise NULL. -*/ -void *binbuf_new(void); - - -/** - Use binbuf_vinsert() to append a Max message to a Binbuf adding a semicolon. - @ingroup binbuf - - @param x Binbuf containing the desired t_atom. - @param fmt A C-string containing one or more letters corresponding to the types of each element of the message. - s for #t_symbol*, l for long, or f for float. - @param ... Elements of the message, passed directly to the function as Symbols, longs, or floats. - - @remark binbuf_vinsert() works somewhat like a printf() for Binbufs. It - allows you to pass a number of arguments of different types and insert - them into a Binbuf. The entire message will then be terminated with a - semicolon. Only 16 items can be passed to binbuf_vinsert(). - - The example below shows the implementation of a normal object's - save method. The save method requires that you build a message that - begins with #N (the new object) , followed by the name of your object - (in this case, represented by the #t_symbol myobject), followed by any - arguments your instance creation function requires. In this example, - we save the values of two fields m_val1 and m_val2 defined as longs. - - @code - void myobject_save (myObject *x, Binbuf *dstBuf) - { - binbuf_vinsert(dstBuf, "ssll", gensym("#N"), - gensym("myobject"), - x->m_val1, x->m_val2); - } - @endcode - - Suppose that such an object had written this data into a file. If you - opened the file as text, you would see the following: - - @code - #N myobject 10 20; - #P newobj 218 82 30 myobject; - @endcode - - The first line will result in a new myobject object to be created; the - creation function receives the arguments 10 and 20. The second line - contains the text of the object box. The newobj message to a patcher - creates the object box user interface object and attaches it to the - previously created myobject object. Normally, the newex message is - used. This causes the object to be created using the arguments that - were typed into the object box. -*/ -void binbuf_vinsert(void *x, char *fmt, ...); - - -/** - Use binbuf_insert() to append a Max message to a Binbuf adding a semicolon. - @ingroup binbuf - - @param x Binbuf to receive the items. - @param s Ignored. Pass NULL. - @param argc Count of items in the argv array. - @param argv Array of t_atoms to add to the Binbuf. - - @remark You'll use binbuf_insert() instead of binbuf_append() if you were - saving your object into a Binbuf and wanted a semicolon at the end. If - the message is part of a file that will later be evaluated, such as a - Patcher file, the first argument argv[0] will be the receiver of the - message and must be a Symbol. binbuf_vinsert() is - easier to use than binbuf_insert(), since you don't have to format - your data into an array of Atoms first. - - binbuf_insert() will also convert the t_symbols #1 through #9 into - $1 through $9. This is used for saving patcher files that take - arguments; you will probably never save these symbols as part of - anything you are doing. -*/ -void binbuf_insert(t_binbuf *x, t_symbol *s, short argc, t_atom *argv); - - -/** - Use binbuf_eval to evaluate a Max message in a Binbuf, passing it arguments. - binbuf_eval() is an advanced function that evaluates the message in a - Binbuf with arguments in argv, and sends it to receiver. - - @ingroup binbuf - @param x Binbuf containing the message. - @param ac Count of items in the argv array. - @param av Array of t_atoms as the arguments to the message. - @param to Receiver of the message. - - @return The result of sending the message. -*/ -void *binbuf_eval(t_binbuf *x, short ac, t_atom *av, void *to); - - -/** - Use binbuf_getatom to retrieve a single t_atom from a Binbuf. - - @ingroup binbuf - @param x Binbuf containing the desired #t_atom. - @param p1 Offset into the Binbuf's array of types. Modified to point to the next #t_atom. - @param p2 Offset into the Binbuf's array of data. Modified to point to the next #t_atom. - @param ap Location of a #t_atom where the retrieved data will be placed. - - @return 1 if there were no t_atoms at the specified offsets, - 0 if there's a legitimate t_atom returned in result. - - @remark To get the first t_atom, set both typeOffset and stuffOffset to 0. - Here's an example of getting all the items in a Binbuf: - @code - t_atom holder; - long to, so; - - to = 0; - so = 0; - while (!binbuf_getatom(x, &to, &so, &holder)){ - // do something with the t_atom - } - @endcode -*/ -short binbuf_getatom(t_binbuf *x, long *p1, long *p2, t_atom *ap); - -/** - Use binbuf_text() to convert a text handle to a Binbuf. - binbuf_text() parses the text in the handle srcText and converts it - into binary format. Use it to evaluate a text file or text line entry into a - Binbuf. - - @ingroup binbuf - @param x Binbuf to contain the converted text. - It must have already been created with binbuf_new. - Its previous contents are destroyed. - @param srcText Handle to the text to be converted. It need not be terminated with a 0. - @param n Number of characters in the text. - @return If binbuf_text encounters an error during its operation, - a non-zero result is returned, otherwise it returns 0. - - @remark Note: Commas, symbols containing a dollar sign followed by a number - 1-9, and semicolons are identified by special pseudo-type constants for - you when your text is binbuf-ized. - - The following constants in the a_type field of Atoms returned by - binbuf_getAtom identify the special symbols #A_SEMI, - #A_COMMA, and #A_DOLLAR. - - For a #t_atom of the pseudo-type #A_DOLLAR, the a_w.w_long field of - the #t_atom contains the number after the dollar sign in the original - text or symbol. - - Using these pseudo-types may be helpful in separating 'sentences' and - 'phrases' in the input language you design. For example, the old pop-up - umenu object allowed users to have spaces in between words by requiring - the menu items be separated by commas. It's reasonably easy, using - binbuf_getatom(), to find the commas in a Binbuf in order to - determine the beginning of a new item when reading the atomized text - to be displayed in the menu. - - If you want to use a literal comma or semicolon in a symbol, precede it - with a backslash (\\) character. The backslash character can be included - by using two backslashes in a row. -*/ -short binbuf_text(t_binbuf *x, char **srcText, long n); - - -/** - Use binbuf_totext() to convert a Binbuf into a text handle. - binbuf_totext() converts a Binbuf into text and places it in a handle. - Backslashes are added to protect literal commas and semicolons - contained in symbols. The pseudo-types are converted into commas, - semicolons, or dollar-sign and number, without backslashes preceding - them. binbuf_text can read the output of binbuf_totext and - make the same Binbuf. - - @ingroup binbuf - @param x Binbuf with data to convert to text. - @param dstText Pre-existing handle where the text will be placed. - dstText will be resized to accomodate the text. - @param sizep Where binbuf_totext() returns the number of characters in the converted text handle. - @return If binbuf_totext runs out of memory during its operation, it returns a non-zero result, - otherwise it returns 0. -*/ -short binbuf_totext(t_binbuf *x, char **dstText, t_ptr_size *sizep); - - -/** - Use binbuf_set() to change the entire contents of a Binbuf. - The previous contents of the Binbuf are destroyed. - - @ingroup binbuf - @param x Binbuf to receive the items. - @param s Ignored. Pass NULL. - @param argc Count of items in the argv array. - @param argv Array of t_atoms to put in the Binbuf. -*/ -void binbuf_set(t_binbuf *x, t_symbol *s, short argc, t_atom *argv); - - -/** - Use binbuf_append to append t_atoms to a Binbuf without modifying them. - @ingroup binbuf - @param x Binbuf to receive the items. - @param s Ignored. Pass NULL. - @param argc Count of items in the argv array. - @param argv Array of atoms to add to the Binbuf. -*/ -void binbuf_append(t_binbuf *x, t_symbol *s, short argc, t_atom *argv); - -C74_DEPRECATED ( short binbuf_read(t_binbuf *x, const char *name, short volume, short binary) ); -C74_DEPRECATED ( short binbuf_write(t_binbuf *x, char *fn, short vol, short binary) ); - -void binbuf_delete(t_binbuf *x, long fromType, long toType, long fromData, long toData); -short binbuf_addtext(t_binbuf *x, char **text, long n); - - -/** - Use readatom() to read a single t_atom from a text buffer. - @ingroup binbuf - @param outstr C-string of 256 characters that will receive the next text item read from the buffer. - @param text Handle to the text buffer to be read. - @param n Starts at 0, and is modified by readatom to point to the next item in the text buffer. - @param e Number of characters in text. - @param ap Where the resulting t_atom read from the text buffer is placed. - @return readatom() returns non-zero if there is more text to read, - and zero if it has reached the end of the text. - Note that this return value has the opposite logic from that of binbuf_getatom(). - - @remark This function provides access to the low-level Max text evaluator used - by binbuf_text(). It is designed to operate on a handle of characters - (text) and called in a loop, as in the example shown below. - @code - long index = 0; - t_atom dst; - char outstr[256]; - - while (readatom(outstr,textHandle,&index,textLength,&dst)) - { - // do something with the resulting t_atom - } - @endcode - - @remark An alternative to using readatom is to turn your text into a Binbuf - using binbuf_text(), then call binbuf_getatom() in a loop. -*/ -short readatom(char *outstr, char **text, long *n, long e, t_atom *ap); -short readatom_flags(char *outstr, char **text, long *n, long e, t_atom *ap, long flags); -char *atom_string(t_atom *a); - -// message functions - -/** Send a typed message directly to a Max object. - @ingroup class_old - - @param op Max object that will receive the message. - @param msg The message selector. - @param argc Count of message arguments in argv. - @param argp Array of t_atoms; the message arguments. - @return If the receiver object can respond to the message, - typedmess() returns the result. Otherwise, an error message will be - seen in the Max window and 0 will be returned. - - @remark typedmess sends a message to a Max object (receiver) a message - with arguments. Note that the message - must be a #t_symbol, not a character string, so you must call gensym - on a string before passing it to typedmess. Also, note that untyped - messages defined for classes with the argument list #A_CANT cannot be - sent using typedmess. You must use getfn() etc. instead. - - Example: - @code - //If you want to send a bang message to the object bang_me… - void *bangResult; - bangResult = typedmess(bang_me,gensym("bang"),0,0L); - @endcode -*/ -void *typedmess(t_object *op, t_symbol *msg, short argc, t_atom *argp); - - -/** Use getfn() to send an untyped message to a Max object with error checking. - @ingroup class_old - - @param op Receiver of the message. - @param msg Message selector. - @return getfn returns a pointer to the method bound to the message selector - msg in the receiver's message list. It returns 0 and prints an error - message in Max Window if the method can't be found. -*/ -method getfn(t_object *op, t_symbol *msg); - - -/** Use egetfn() to send an untyped message to a Max object that always works. - @ingroup class_old - - @param op Receiver of the message. - @param msg Message selector. - @return egetfn returns a pointer to the method bound to the message selector - msg in the receiver's message list. If the method can't be found, a - pointer to a do-nothing function is returned. -*/ -method egetfn(t_object *op, t_symbol *msg); - - -/** Use zgetfn() to send an untyped message to a Max object without error checking. - @ingroup class_old - - @param op Receiver of the message. - @param msg Message selector. - @return zgetfn returns a pointer to the method bound to the message selector - msg in the receiver's message list. It returns 0 but doesn't print an - error message in Max Window if the method can't be found. -*/ -method zgetfn(t_object *op, t_symbol *msg); - - -void patcher_eachdo(t_intmethod fun, void *arg); // this one is still legit -void loadbang_suspend(void); // used by poly~ on windows -void loadbang_resume(void); // used by poly~ on windows - - -// table functions - -/** Get a handle to the data in a named table object. - @ingroup tables - - @param s Symbol containing the name of the table object to find. - @param hp Address of a handle where the table's data will be returned if the named table object is found. - @param sp Number of elements in the table (its size in longs). - @return If no table object is associated with the symbol tableName, table_get() returns a non-zero result. - - @remark table_get searches for a table associated with the t_symbol - tableName. If one is found, a Handle to its elements (stored as an - array of long integers) is returned and the function returns 0. - Never count on a table to exist across calls to - one of your methods. Call table_get and check the result each time - you wish to use a table. - - Here is an example of retrieving the 40th element of a table: - @code - long **storage,size,value; - if (!table_get(gensym("somename"),&storage,&size)) { - if (size > 40) - value = *((*storage)+40); - } - @endcode -*/ -short table_get(t_symbol *s, long ***hp, long *sp); - - -/** Mark a table object as having changed data. - @ingroup tables - @param s Symbol containing the name of a table object. - @return If no table is associated with tableName, table_dirty returns a non-zero result. -*/ -short table_dirty(t_symbol *s); - - -// file functions - -/** Load a data file into a handle. - This is a low-level routine used for reading text and data files. You - specify the file's name and Path ID, as well as a pointer to a Handle. - - @ingroup loading_max_files - @param name Name of the patcher file to load. - @param volume Path ID specifying the location of the file. - @param h Pointer to a handle variable that will receive the handle - that contains the data in the file. - @param sizep Size of the handle returned in h. - @return If the file is found, readtohandle creates a Handle, reads all the data in - the file into it, assigns the handle to the variable hp, and returns the - size of the data in size. readtohandle returns 0 if the file was - opened and read successfully, and non-zero if there was an error. -*/ -short readtohandle(C74_CONST char *name, short volume, char ***h, long *sizep); - -/** Load a patcher file by name and volume reference number. - @ingroup loading_max_files - @param name Filename of the patcher file to load (C string). - @param vol Path ID specifying the location of the file. - @return If the file is found, fileload tries to open - the file, evaluate it, open a window, and bring it to the front. A pointer - to the newly created Patcher is returned if loading is successful, - otherwise, if the file is not found or there is insufficient memory, zero - is returned. -*/ -void *fileload(C74_CONST char *name, short vol); - - -/** Pass arguments to Max files when you open them. - This function loads the specified file and returns a pointer to the - created object. Historically, intload() is was used to open patcher files, - whether they are in text or Max binary format. - It could also open table files whose contents begin with the word "table". - - @ingroup loading_max_files - @param name Name of the file to open. - @param volume Path ID specifying the location of the file. - @param s A symbol. - @param ac Count of t_atoms in av. To properly open a patcher file, ac should be 9. - @param av Array of t_atoms that will replace the changeable - arguments 1-9. The default behavior could be to set - all these to t_atoms of type #A_LONG with a value of 0. - @param couldedit If non-zero and the file is not a patcher file, the file is opened as a text file. - @return If couldedit is non-zero and the file is not a patcher file, it is made into - a text editor, and intoad() returns 0. If couldedit is non-zero, intload() - will alert the user to an error and return 0. If there is no error, the - value returned will be a pointer to a patcher or table object. -*/ -void *intload(C74_CONST char *name, short volume, t_symbol *s, short ac, t_atom *av, short couldedit); - - -/** Load a patcher file located in the Max search path by name. - This function searches for a patcher file, opens it, - evaluates it as a patcher file, opens a window for the patcher and brings - it to the front. You need only specify a filename and Max will look - through its search path for the file. The search path begins with the - current 'default volume' that is often the volume of the last opened - patcher file, then the folders specified in the File Preferences dialog, - searched depth first, then finally the folder that contains the Max - application. - - @ingroup loading_max_files - @param name Filename of the patcher file to load (C string). - @return If stringload() returns a non-zero result, you can later - use freeobject() to close the patcher, or just let users do it themselves. - If stringload() returns zero, no file with the specified name was - found or there was insufficient memory to open it. -*/ -void *stringload(C74_CONST char *name); - -void *resource_install(char *name, long rsrc); -void *toolfile_new(const char *name, short vol, t_fourcc type); -long toolfile_fread(t_toolfile *t, char *buf, long n); -long toolfile_fwrite(t_toolfile *t, char *buf, long n); -short toolfile_getc(t_toolfile *t); -void *onecopy_fileload(C74_CONST char *s, short path); - -// preset functions - -/** Give the preset object a general message to restore the current state of your object. - This is a general preset function for use when your object's state - cannot be restored with a simple int or set message. The example - below shows the expected format for specifying what your current - state is to a preset object. The first thing you supply is your object itself, - followed by the symbol that is the name of your object's class (which - you can retrieve from your object using the macro ob_sym, declared in - ext_mess.h). Next, supply the symbol that specifies the message you - want receive (a method for which had better be defined in your class), - followed by the arguments to this message—the current values of your - object's fields. - - @ingroup presets - @param fmt C string containing one or more letters corresponding - to the types of each element of the message. s for - Symbol, l for long, or f for float. - @param ... Elements of the message used to restore the state of - your object, passed directly to the function as Symbols, - longs, or floats. See below for an example that - conforms to what the preset object expects. -*/ -void preset_store(char *fmt, ... /*struct b100 arg1 */); - - -/** Restore the state of your object with a set message. - This function causes a set message with the argument value to be sent - to your object from the preset object when the user executes a preset. - - @ingroup presets - @param obj Your object. - @param val Current value of your object. - -*/ -void preset_set(t_object *obj, t_atom_long val); - - -/** Restore the state of your object with an int message. - This function causes an int message with the argument value to be - sent to your object from the preset object when the user executes a - preset. All of the existing user interface objects use the int message for - restoring their state when a preset is executed. - - @ingroup presets - @param x Your object. - @param n Current value of your object. -*/ -void preset_int(t_object *x, t_atom_long n); - - -C74_DEPRECATED ( void evnum_incr(void) ); -C74_DEPRECATED ( long evnum_get(void) ); - - -// proxy functions - -/** - Use proxy_new to create a new Proxy object. - - @ingroup inout - @param x Your object. - @param id A non-zero number to be written into your object when a message is received in this particular Proxy. - Normally, id will be the inlet number analogous to in1, in2 etc. - @param stuffloc A pointer to a location where the id value will be written. - @return A pointer to the new proxy inlet. - - @remark This routine creates a new Proxy object (that includes an inlet). It - allows you to identify messages based on an id value stored in the - location specified by stuffLoc. You should store the pointer - returned by proxy_new() because you'll need to free all Proxies in your - object's free function using object_free(). - - After your method has finished, Proxy sets the stuffLoc location - back to 0, since it never sees messages coming in an object's leftmost - inlet. You'll know you received a message in the leftmost inlet if the - contents of stuffLoc is 0. As of Max 4.3, stuffLoc is not always - guaranteed to be a correct indicator of the inlet in which a message was - received. Use proxy_getinlet() to determine the inlet number. -*/ -void *proxy_new(void *x, long id, long *stuffloc); - -/** - Use proxy_getinlet to get the inlet number in which a message was received. - Note that the owner argument should point to your external object's instance, not a proxy object. - - @ingroup inout - @param master Your object. - @return The index number of the inlet that received the message. -*/ -long proxy_getinlet(t_object *master); - -// the following functions are only used by dynamic inlet/outlet code -void *proxy_append(t_object *master, long id, long *stuffloc); -void *proxy_insert(t_object *master, long id, long *stuffloc, void *previous_proxy); -void *proxy_new_forinlet(t_object *master, long id, long *stuffloc, void *inlet); // create a new proxy for inlet -void proxy_delete(void *xx); // calls inlet_delete() -void proxy_setinletptr(void *xx, void *inlet); // associates proxy with inlet, removes any previous association -void *proxy_getinletptr(void *xx); // retrienve an associated inlet - -//void *gwind_new(t_object *assoc, t_symbol *s, short style, short left, short top, short bottom, short right); - - -// connection functions -void *connection_client(t_object *cli, t_symbol *name, t_symbol *classname, method traverse); -void connection_server(t_object *obj, t_symbol *name); -void connection_send(t_object *server, t_symbol *name, t_symbol *mess, void *arg); -void connection_delete(t_object *ob, t_symbol *name); - - -// quittask functions - -/** - Register a function that will be called when Max exits. - - @ingroup misc - @param m A function that will be called on Max exit. - @param a Argument to be used with method m. - - @remark quittask_install() provides a mechanism for your external to - register a routine to be called prior to Max shutdown. This is useful for - objects that need to provide disk-based persistance outside the - standard Max storage mechanisms, or need to shut down hardware or - their connection to system software and cannot do so in the - termination routine of a code fragment. -*/ -void quittask_install(method m, void *a); - - -/** - Unregister a function previously registered with quittask_install(). - - @ingroup misc - @param m Function to be removed as a shutdown method. -*/ -void quittask_remove(method m); -void quittask_remove2(method m, void *a); - -// miscellaneous functions - -/** - Determine version information about the current Max environment. - - This function returns the version number of Max. In Max versions - 2.1.4 and later, this number is the version number of the Max kernel - application in binary-coded decimal. Thus, 2.1.4 would return 214 hex - or 532 decimal. Version 3.0 returns 300 hex. - - Use this to check for the existence of particular function macros that are only present in more - recent Max versions. Versions before 2.1.4 returned 1, except for - versions 2.1.1 - 2.1.3 which returned 2. - - Bit 14 (counting from left) will - be set if Max is running as a standalone application, so you should - mask the lower 12 bits to get the version number. - - @ingroup misc - @return The Max environment's version number. -*/ -short maxversion(void); - - -C74_DEPRECATED ( long serialno(void) ); - -short ispatcher(t_object *x); -short isnewex(t_object *x); -void colorinfo(void *r); - -/** - Use open_promptset() to add a prompt message to the open file dialog displayed by open_dialog(). - - Calling this function before open_dialog() permits a string to - displayed in the dialog box instructing the user as to the purpose of the - file being opened. It will only apply to the call of open_dialog() that - immediately follows open_promptset(). - - @ingroup files - @param s A C-string containing the prompt you wish to display in the dialog box. - @return Ignore. - - @see open_dialog() -*/ -void open_promptset(C74_CONST char *s); - - -/** - Use saveas_promptset() to add a prompt message to the open file dialog displayed by saveas_dialog() - or saveasdialog_extended(). - - Calling this function before saveasdialog_extended() permits a string to - displayed in the dialog box instructing the user as to the purpose of the - file being opened. It will only apply to the call of saveasdialog_extended() that - immediately follows saveas_promptset(). - - @ingroup files - @param s A C-string containing the prompt you wish to display in the dialog box. - @return Ignore. - - @see open_dialog() -*/ -void saveas_promptset(C74_CONST char *s); - - -void dialog_setkey(t_fourcc type); -void saveasdialog_pathset(short path, short force); -void dialog_poll(short dosched, short doevent, unsigned short evtMask); -void forecolor(short index, short way); -void backcolor(short index, short way); -void *tabfromhandle(t_handle h, long n); -void stdlist(t_object *x, t_symbol *s, short ac, t_atom *av); -void assist_queue(t_object *x, method fun); -void inspector_open(t_object *x, void *p, void *b); -void *object_subpatcher(t_object *x, long *index, void *arg); - -// filewatch functions - -/** Create a new filewatcher. - The file will not be actively watched until filewatcher_start() is called. - The filewatcher can be freed using object_free(). - - @ingroup files - @param owner Your object. - This object will receive the message "filechanged" when the watcher sees a change in the file or folder. - @param path The path in which the file being watched resides, or the path of the folder being watched. - @param filename The name of the file being watched, or an empty string if you are simply watching the folder specified by path. - @return A pointer to the new filewatcher. - @remark The "filechanged" method should have the prototype: - @code - void myObject_filechanged(t_myObject *x, char *filename, short path); - @endcode - */ -void *filewatcher_new(t_object *owner, C74_CONST short path, C74_CONST char *filename); - -/** Start watching a file using a filewatcher created with filewatcher_new(). - @param x A filewatcher pointer, as returned by filewatcher_new(). */ -void filewatcher_start(void *x); - -/** Stop watching a file using a filewatcher created with filewatcher_new(). - @param x A filewatcher pointer, as returned by filewatcher_new(). */ -void filewatcher_stop(void *x); - - - -// fileusage functions - -/** Add a file to a collective. - @ingroup files - @param w Handle for the collective builder. - @param flags If flags == 1, copy this file to support folder of an app instead of to the collective in an app. - @param name The name of the file. - @param path The path of the file to add. -*/ -void fileusage_addfile(void *w, long flags, C74_CONST char *name, short path); - -void fileusage_addfilename(void *w, long flags, C74_CONST char *name); - -/** Add a package to a standalone. - @ingroup files - @param w Handle for the standalone builder - @param name The name of the package - @param subfoldernames A #t_atomarray containing symbols, each of which is a foldername in the package to include. - Pass NULL to include the entire package contents. - @version Introduced in Max 7.0.4 - */ -void fileusage_addpackage(void *w, C74_CONST char *name, t_atomarray *subfoldernames); -void fileusage_addpathname(void *w, long flags, C74_CONST char *name); -void fileusage_copyfolder(void *w, C74_CONST char *name, long recursive); -void fileusage_makefolder(void *w, C74_CONST char *name); - -/** Add a folder to a standalone. - @ingroup files - @param w Handle for the standalone builder - @param path Path of the folder - @param recursive Add the contents of the folder recursively (respected only when building standalones) - @version Introduced in Max 8.0.2 - */ -void fileusage_addfolder(void *w, short path, long recursive); - -#ifdef MAC_VERSION -long fontinfo_getencoding(long id); -long fontinfo_convert(t_object *x, char *src, long srclen, long encoding, char **out); -long fontinfo_reconvert(t_object *x, char *src, long srclen, long encoding, char **out); -void fontinfo_reconverthandle(t_object *x, char **h, long encoding); -#endif - - -long fontinfo_prefcheckencoding(void); - -t_atom *atom_dynamic_start(const t_atom *static_array, long static_count, long request_count); -void atom_dynamic_end(const t_atom *static_array, t_atom *request_array); - -short getfolder(short *vol); - -/** - Present the user with the standard open file dialog. - This function is convenient wrapper for using Mac OS Navigation - Services or Standard File for opening files. - - The mapping of extensions to types is configured in the C74:/init/max-fileformats.txt file. - The standard types to use for Max files are 'maxb' for old-format binary files, - 'TEXT' for text files, and 'JSON' for newer format patchers or other .json files. - - @ingroup files - @param name A C-string that will receive the name of the file the user wants to open. - The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS. - @param volptr Receives the Path ID of the file the user wants to open. - @param typeptr The file type of the file the user wants to open. - @param types A list of file types to display. This is not limited to 4 - types as in the SFGetFile() trap. Pass NULL to display all types. - @param ntypes The number of file types in typelist. Pass 0 to display all types. - - @return 0 if the user clicked Open in the dialog box. - If the user cancelled, open_dialog() returns a non-zero value. - - @see saveasdialog_extended() - @see locatefile_extended() - */ -short open_dialog(char *name, short *volptr, t_fourcc *typeptr, t_fourcc *types, short ntypes); - - -/** - Present the user with the standard save file dialog. - - The mapping of extensions to types is configured in the C74:/init/max-fileformats.txt file. - The standard types to use for Max files are 'maxb' for old-format binary files, - 'TEXT' for text files, and 'JSON' for newer format patchers or other .json files. - - @ingroup files - @param filename A C-string containing a default name for the file to save. - If the user decides to save a file, its name is returned here. - The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS. - - @param path If the user decides to save the file, the Path ID of the location chosen is returned here. - - @param binptr Pass NULL for this parameter. - This parameter was used in Max 4 to allow the choice of saving binary or text format patchers. - - @return 0 if the user choose to save the file. - If the user cancelled, returns a non-zero value. - - @see open_dialog() - @see saveasdialog_extended() - @see locatefile_extended() - */ -short saveas_dialog(char *filename, short *path, short *binptr); - - -/** - Present the user with the standard save file dialog with your own list of file types. - - saveasdialog_extended() is similar to saveas_dialog(), but allows the - additional feature of specifying a list of possible types. These will be - displayed in a pop-up menu. - - File types found in the typelist argument that match known Max types - will be displayed with descriptive text. Unmatched types will simply - display the type name (for example, "foXx" is not a standard type so it - would be shown in the pop-up menu as foXx) - - Known file types include: - - TEXT: text file - - maxb: Max binary patcher - - maxc: Max collective - - Midi: MIDI file - - Sd2f: Sound Designer II audio file - - NxTS: NeXT/Sun audio file - - WAVE: WAVE audio file. - - AIFF: AIFF audio file - - mP3f: Max preference file - - PICT: PICT graphic file - - MooV: Quicktime movie file - - aPcs: VST plug-in - - AFxP: VST effect patch data file - - AFxB: VST effect bank data file - - DATA: Raw data audio file - - ULAW: NeXT/Sun audio file - - @ingroup files - @param name A C-string containing a default name for the file to save. - If the user decides to save a file, its name is returned here. - The C-string should be allocated with a size of at least #MAX_FILENAME_CHARS. - - @param vol If the user decides to save the file, the Path ID of the location chosen is returned here. - - @param type Returns the type of file chosen by the user. - @param typelist The list of types provided to the user. - @param numtypes The number of file types in typelist. - - @return 0 if the user choose to save the file. - If the user cancelled, returns a non-zero value. - - @see open_dialog() - @see locatefile_extended() - */ -short saveasdialog_extended(char *name, short *vol, t_fourcc *type, t_fourcc *typelist, short numtypes); - -void saveas_autoextension(t_bool way); -void saveas_setselectedtype(t_fourcc type); - -short preferences_path(C74_CONST char *name, short create, short *path); -short preferences_subpath(C74_CONST char *name, short path, short create, short *subpath); -short textpreferences_read(C74_CONST char *filename, short path, short defaultid); -short textpreferences_default(short id); -void *textpreferences_open(void); -void textpreferences_addraw(void *p, C74_CONST char *fmt, ...); -void textpreferences_add(void *p, C74_CONST char *fmt, ...); -void textpreferences_addoption(void *p, C74_CONST char *fmt, ...); -void textpreferences_addrect(void *p, char *msg, short top, short left, short bottom, short right); -short textpreferences_close(void *p, C74_CONST char *filename, short path); - -END_USING_C_LINKAGE - -#endif // _EXT_PROTO_H_ - diff --git a/source/c74support/max-includes/ext_proto_win.h b/source/c74support/max-includes/ext_proto_win.h deleted file mode 100644 index 67cba129..00000000 --- a/source/c74support/max-includes/ext_proto_win.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __EXT_PROTO_WIN_H__ -#define __EXT_PROTO_WIN_H__ - -#include "ext_prefix.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -#ifdef WIN_VERSION - -HINSTANCE main_get_instance(); -HWND main_get_client(); -HWND main_get_frame(); -LPSTR main_get_commandline(); -LPSTR main_get_appfilename(); - -#endif // WIN_VERSION - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // __EXT_PROTO_WIN_H__ diff --git a/source/c74support/max-includes/ext_quickmap.h b/source/c74support/max-includes/ext_quickmap.h deleted file mode 100644 index 1820c476..00000000 --- a/source/c74support/max-includes/ext_quickmap.h +++ /dev/null @@ -1,116 +0,0 @@ - -#ifndef __QUICKMAP_H__ -#define __QUICKMAP_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_hashtab.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** The quickmap object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup quickmap -*/ -typedef struct _quickmap { - t_object m_obj; - t_hashtab *m_p1key; - t_hashtab *m_p2key; -} t_quickmap; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - - -BEGIN_USING_C_LINKAGE - -/** - Create a new quickmap object. - - @ingroup quickmap - @return Pointer to the new quickmap object. -*/ -void *quickmap_new(void); - - -/** - Add a pair of keys mapped to each other to the quickmap. - Note that these are considered to be a #t_symbol internally. - This means that if you are mapping a #t_symbol to a #t_object, for example, the #t_object will not automatically be - freed when you free the quickmap (unlike what happens when you typically free a #t_hashtab). - - @ingroup quickmap - - @param x The quickmap instance. - @param p1 The (first) key. - @param p2 The value (or the second key). - @return A Max error code. -*/ -void quickmap_add(t_quickmap *x, void *p1, void *p2); - - -/** - Drop a pair of keys mapped to each other in the quickmap. - - @ingroup quickmap - - @param x The quickmap instance. - @param p1 The first key. - @param p2 The second key. - @return A Max error code. -*/ -void quickmap_drop(t_quickmap *x, void *p1, void *p2); - - -/** - Given a (first) key, lookup the value (the second key). - - @ingroup quickmap - - @param x The quickmap instance. - @param p1 The (first) key. - @param p2 The address of a pointer which will hold the resulting key upon return. - @return A Max error code. -*/ -long quickmap_lookup_key1(t_quickmap *x, void *p1, void **p2); - - -/** - Given a (second) key, lookup the value (the first key). - - @ingroup quickmap - - @param x The quickmap instance. - @param p1 The (second) key. - @param p2 The address of a pointer which will hold the resulting key upon return. - @return A Max error code. -*/ -long quickmap_lookup_key2(t_quickmap *x, void *p1, void **p2); - - -/** - Set the readonly flag of the quickmap's hash tables. - See hashtab_readonly() for more information about this. - - @ingroup quickmap - - @param x The quickmap instance. - @param way Set to true to make the quickmap readonly (disable thread protection) - or false (the default) to enable thread protection. -*/ -void quickmap_readonly(t_quickmap *x, long way); - - -END_USING_C_LINKAGE - -#endif // __QUICKMAP_H__ diff --git a/source/c74support/max-includes/ext_sndfile.h b/source/c74support/max-includes/ext_sndfile.h deleted file mode 100755 index 8689c43d..00000000 --- a/source/c74support/max-includes/ext_sndfile.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef _EXT_SNDFILE_H_ -#define _EXT_SNDFILE_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_sysfile.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -typedef struct _sndfileinfo -{ - t_int32 sr; - t_ptr_size length; - t_ptr_size sampsize; // in bytes - t_fourcc filetype; - t_uint32 comptype; - t_uint32 format; - char name[128]; - t_int32 byteswap; - t_int32 nchans; - t_ptr_size frames; - void *inst; - void *markers; - t_ptr_size framesize; - t_ptr_size offset; -} t_sndfileinfo; - -short sndfile_info(char *filename, short vol, t_fourcc type, t_sndfileinfo *info); -short soundfile_info(char *filename, short vol, t_fourcc type, t_sndfileinfo *info); -long sndfile_writeheader(t_filehandle fh, t_fourcc type, long size, long nchans, long ssize, long srate, t_fourcc samptype); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#define SF_FILETYPE_AIFF FOUR_CHAR_CODE('AIFF') -#define SF_FILETYPE_SD2 FOUR_CHAR_CODE('Sd2f') -#define SF_FILETYPE_WAVE FOUR_CHAR_CODE('WAVE') -#define SF_FILETYPE_AU FOUR_CHAR_CODE('ULAW') -#define SF_FILETYPE_RAW FOUR_CHAR_CODE('DATA') - -#define SF_SAMPTYPE_INT FOUR_CHAR_CODE('NONE') -#define SF_SAMPTYPE_UINT FOUR_CHAR_CODE('UNSN') -#define SF_SAMPTYPE_FL32 FOUR_CHAR_CODE('FL32') -#define SF_SAMPTYPE_FL64 FOUR_CHAR_CODE('FL64') -#define SF_SAMPTYPE_MULAW FOUR_CHAR_CODE('ULAW') -#define SF_SAMPTYPE_ALAW FOUR_CHAR_CODE('ALAW') - -#define SF_SAMPTYPE_LE FOUR_CHAR_CODE('sowt') // little endian twos backwards - - -#ifdef __cplusplus -} -#endif - - -enum { - SF_MAXCHANS = 64, - SF_MAXVECS = 66, - //SF_BUFSIZE = 16384, - SF_BUFSIZE_DEF = 120960*4, - SF_BUFSIZE_QUANT = 20160, // 8factorial over two...ensures that we won't have problems wrapping - SF_MULT = 8, - SF_ATOM_MULT = 4, - SF_PRELOAD = 1, - SF_MAXPEND = 128, - SF_EMBED = 1, - SF_WEIRDCUE = 18811, - SF_MAX_SWITCH_PER_VECTOR = 16 -}; - - -typedef struct _sfplay_notification { - long cue; -} t_sfplay_notification; - - -typedef struct _soundfile_path { - t_symbol *filename; - short path; -} t_soundfile_path; - - -#endif // _EXT_SNDFILE_H_ diff --git a/source/c74support/max-includes/ext_strings.h b/source/c74support/max-includes/ext_strings.h deleted file mode 100755 index 5e7f203d..00000000 --- a/source/c74support/max-includes/ext_strings.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef _EXT_STRINGS_H_ -#define _EXT_STRINGS_H_ - -#include - -#include "ext_prefix.h" - -BEGIN_USING_C_LINKAGE - -#ifndef strncpy_zero -/** Copy the contents of one string to another, in a manner safer than the standard strcpy() or strncpy(). - This is the prefered function to use for this operation in Max. - @ingroup misc - @param dst The destination string (already allocated) for the copy. - @param src The source string that will be copied. - @param size The number of chars allocated to the dst string. -*/ -char *strncpy_zero(char *dst, const char* src, long size); -#endif - - -/** Concatenate the contents of one string onto the end of another, - in a manner safer than the standard strcat() or strncat(). - This is the prefered function to use for this operation in Max. - @ingroup misc - @param dst The destination string onto whose end the src string will be appended. - @param src The source string that will be copied. - @param size The number of chars allocated to the dst string. -*/ -char *strncat_zero(char *dst, const char* src, long size); - - -/** Copy the contents of a string together with value substitutions, - in a manner safer than the standard sprintf() or snprintf(). - This is the prefered function to use for this operation in Max. - @ingroup misc - @param buffer The destination string (already allocated) for the copy. - @param count The number of chars allocated to the buffer string. - @param format The source string that will be copied, which may include sprintf() formatting codes for substitutions. - @param ... An array of arguments to be substituted into the format string. -*/ -int snprintf_zero(char *buffer, size_t count, const char *format, ...); - - -#if TARGET_API_MAC_CARBON -#define CtoPstr(x) CopyCStringToPascal((const char *)(x),(unsigned char *)(x)) -#define PtoCstr(x) CopyPascalStringToC((ConstStr255Param)(x),(char *)(x)) -#endif // TARGET_API_MAC_CARBON - -#define SPRINTF_MAXLEN 4096 - -// Legacy - -void ctopcpy(unsigned char *p1, char *p2); -void ptoccpy(char *p1, unsigned char *p2); -void pstrcpy(unsigned char *p2, unsigned char *p1); - - -END_USING_C_LINKAGE - -#endif // _EXT_STRINGS_H_ diff --git a/source/c74support/max-includes/ext_support.h b/source/c74support/max-includes/ext_support.h deleted file mode 100755 index 16dca09e..00000000 --- a/source/c74support/max-includes/ext_support.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_SUPPORT_H_ -#define _EXT_SUPPORT_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_SUPPORT_H_ */ diff --git a/source/c74support/max-includes/ext_symobject.h b/source/c74support/max-includes/ext_symobject.h deleted file mode 100644 index 9a8704d5..00000000 --- a/source/c74support/max-includes/ext_symobject.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef __EXT_SYMOBJECT_H__ -#define __EXT_SYMOBJECT_H__ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** The symobject data structure. - @ingroup symobject -*/ -typedef struct _symobject{ - t_object obj; ///< Max object header. - t_symbol *sym; ///< The symbol contained by the object. - long flags; ///< Any user-flags you wish to set or get. - void *thing; ///< A generic pointer for attaching additional data to the symobject. -} t_symobject; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -BEGIN_USING_C_LINKAGE - -/** The symobject data structure. - - @ingroup symobject - @param sym A symbol with which to initialize the new symobject. - @return Pointer to the new symobject instance. -*/ -void *symobject_new(t_symbol *sym); - - -/** Utility for searching a linklist containing symobjects. - - @ingroup symobject - @param a (opaque) - @param b (opaque) - @return Returns true if a match is found, otherwise returns false. - - @remark The following example shows one common use of the this method. - @code - t_symobject *item = NULL; - long index; - t_symbol *textsym; - - textsym = gensym("something to look for"); - - // search for a symobject with the symbol 'something to look for' - index = linklist_findfirst(s_ll_history, (void **)&item, symobject_linklist_match, textsym); - if(index == -1){ - // symobject not found. - } - else{ - do something with the symobject, or with the index of the symbobject in the linklist - } - @endcode - -*/ -long symobject_linklist_match(void *a, void *b); - - -END_USING_C_LINKAGE - -#endif // #ifndef __EXT_SYMOBJECT_H__ diff --git a/source/c74support/max-includes/ext_sysfile.h b/source/c74support/max-includes/ext_sysfile.h deleted file mode 100644 index e4d5b1c0..00000000 --- a/source/c74support/max-includes/ext_sysfile.h +++ /dev/null @@ -1,243 +0,0 @@ -#ifndef _EXT_SYSFILE_H_ -#define _EXT_SYSFILE_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -typedef struct _filestruct t_filestruct; - -/** A t_filehandle is a cross-platform way of referring to an open file. - It is an opaque structure, meaning you don’t have access to the individual - elements of the data structure. You can use a t_filehandle only - with the file routines in the Sysfile API. Do not use other platform- - specific file functions in conjunction with these functions. - The perm parameter can be either READ_PERM, WRITE_PERM, or RW_PERM. - - @ingroup files */ -typedef t_filestruct *t_filehandle; - -/** Modes used by sysfile_setpos() - @ingroup files */ -typedef enum { - SYSFILE_ATMARK = 0, ///< ? - SYSFILE_FROMSTART = 1, ///< Calculate the file position from the start of the file. - SYSFILE_FROMLEOF = 2, ///< Calculate the file position from the logical end of the file. - SYSFILE_FROMMARK = 3 ///< Calculate the file position from the current file position. -} t_sysfile_pos_mode; - - -typedef enum { - SYSFILE_SUBFILE = 1, - SYSFILE_HANDLE = 2, // can call sysmem_freehandle on close - SYSFILE_RESOURCE = 4, // can call ReleaseResource on close - SYSFILE_MEMORY = 6, // either a handle or a resource - SYSFILE_RESFILE = 8, // a resource file - SYSFILE_OPENRESFILE = 16, // an already-open resource file - SYSFILE_EXTERNALDATA = 32, // don't do anything to f_data - SYSFILE_JUSTAPOINTER = 64, // f_data is really a 4-byte pointer - SYSFILE_EXTERNALDATA_CANWRITE = 128, // can sysfile_write() to external data - SYSFILE_EXTERNALDATA_CANGROW = 256, // if write goes beyond data, grow the handle (not valid with SYSFILE_JUSTAPOINTER) - SYSFILE_EXTERNALDATA_FREE = 512, // data is external, but free it anyway on file close - SYSFILE_EXTERNALDATA_LATEFREE = 1024 -} t_sysfile_flags; - -/** Flags used reading and writing text files. - @ingroup files */ -typedef enum { - TEXT_LB_NATIVE = 0x00000001L, ///< Use the linebreak format native to the current platform. - TEXT_LB_MAC = 0x00000002L, ///< Use Macintosh line breaks - TEXT_LB_PC = 0x00000004L, ///< Use Windows line breaks - TEXT_LB_UNIX = 0x00000008L, ///< Use Unix line breaks - TEXT_LB_MASK = 0x0000000FL, // can use to mask out non-LB related flags - TEXT_ENCODING_USE_FILE = 0x00000100L, ///< If this flag is not set then the encoding is forced to UTF8 - TEXT_NULL_TERMINATE = 0x00000200L ///< Terminate memory returned from sysfile_readtextfile() with a NULL character -} t_sysfile_text_flags; - -BEGIN_USING_C_LINKAGE - -/** Close a file opened with sysfile_open(). - This function is similar to FSClose() or fclose(). - It should be used instead of system-specific file closing routines in order to make max external - code that will compile cross-platform. - - @ingroup files - @param f The #t_filehandle structure of the file the user wants to close. - @return An error code. -*/ -t_max_err sysfile_close(t_filehandle f); - - -/** Read a file from disk. - This function is similar to FSRead() or fread(). It should be used instead of - these functions (or other system-specific file reading routines) in order - to make max external code that will compile cross-platform. It reads - "count" bytes from file handle at current file position into "bufptr". - The byte count actually read is set in "count", and the file position is - updated by the actual byte count read. - - @ingroup files - @param f The #t_filehandle structure of the file the user wants to open. - @param count Pointer to the number of bytes that will be read from the file at the current file position. - The byte count actually read is returned to this value. - @param bufptr Pointer to the buffer that the data will be read into. - @return An error code. -*/ -t_max_err sysfile_read( t_filehandle f, t_ptr_size *count, void *bufptr); - - -/** Read the contents of a file into a handle. - @ingroup files - @param f The open #t_filehandle structure to read into the handle. - @param h The address of a handle into which the file will be read. - @return An error code. - @remark You should free the pointer, when you are done with it, using sysmem_freehandle(). -*/ -t_max_err sysfile_readtohandle(t_filehandle f, char ***h); - - -/** Read the contents of a file into a pointer. - @ingroup files - @param f The open #t_filehandle structure to read into the handle. - @param p The address of a pointer into which the file will be read. - @return An error code. - @remark You should free the pointer, when you are done with it, using sysmem_freeptr(). -*/ -t_max_err sysfile_readtoptr(t_filehandle f, char **p); - - -/** Write part of a file to disk. - This function is similar to FSWrite() or fwrite(). It should be used instead - of these functions (or other system-specific file reading routines) in - order to make max external code that will compile cross-platform. The - function writes "count" bytes from "bufptr" into file handle at current - file position. The byte count actually written is set in "count", and the - file position is updated by the actual byte count written. - - @ingroup files - @param f The t_filehandle structure of the file to which the user wants to write. - @param count Pointer to the number of bytes that will be written to the file at the current file position. - The byte count actually written is returned to this value. - @param bufptr Pointer to the buffer that the data will be read from. - @return An error code. -*/ -t_max_err sysfile_write(t_filehandle f, t_ptr_size *count, const void *bufptr); - - -/** Set the size of a file handle. - This function is similar to and should be used instead of SetEOF(). - The function sets the size of file handle in bytes, specified by �“logeof?. - - @ingroup files - @param f The file's #t_filehandle structure. - @param logeof The file size in bytes. - @return An error code. -*/ -t_max_err sysfile_seteof(t_filehandle f, t_ptr_size logeof); - - -/** Get the size of a file handle. - This function is similar to and should be used instead of GetEOF(). - The function gets the size of file handle in bytes, and places it in �“logeof?. - - @ingroup files - @param f The file's #t_filehandle structure. - @param logeof The file size in bytes is returned to this value. - @return An error code. -*/ -t_max_err sysfile_geteof(t_filehandle f, t_ptr_size *logeof); - - -/** Set the current file position of a file handle. - This function is similar to and should be used instead of SetFPos(). - It is used to set the current file position of file handle to by the given - number of offset bytes relative to the mode used, as defined in #t_sysfile_pos_mode. - - @ingroup files - @param f The file's #t_filehandle structure. - @param mode Mode from which the offset will be calculated, as defined in #t_sysfile_pos_mode. - @param offset The offset in bytes relative to the mode. - @return An error code. -*/ -t_max_err sysfile_setpos(t_filehandle f, t_sysfile_pos_mode mode, t_ptr_int offset); - - -/** Get the current file position of a file handle. - This function is similar to and should be used instead of GetFPos(). - The function gets the current file position of file handle in bytes, and places it in "filepos". - - @ingroup files - @param f The file's #t_filehandle structure. - @param filepos The address of a variable to hold the current file position of file handle in bytes. - @return An error code. -*/ -t_max_err sysfile_getpos(t_filehandle f, t_ptr_size *filepos); - - -/** Copy the contents of one file handle to another file handle. - @ingroup files - @param src The file handle from which to copy. - @param dst The file handle to which the copy is written. - @param size The number of bytes to copy. If 0 the size of src will be used. - @return An error code. -*/ -t_max_err sysfile_spoolcopy(t_filehandle src, t_filehandle dst, t_ptr_size size); - - -// private -void sysfile_setobject(t_filehandle f, t_object *o); - - - -/** Read a text file from disk. - This function reads up to the maximum number of bytes given by - maxlen from file handle at current file position into the htext - handle, performing linebreak translation if set in flags. - - @ingroup files - @param f The #t_filehandle structure of the text file the user wants to open. - @param htext Handle that the data will be read into. - @param maxlen The maximum length in bytes to be read into the handle. - Passing the value 0L indicates no maximum (i.e. read the entire file). - @param flags Flags to set linebreak translation as defined in #t_sysfile_text_flags. - @return An error code. -*/ -t_max_err sysfile_readtextfile(t_filehandle f, t_handle htext, t_ptr_size maxlen, t_sysfile_text_flags flags); - - -/** Write a text file to disk. - This function writes a text handle to a text file performing linebreak - translation if set in flags. - - @ingroup files - @param f The #t_filehandle structure of the text file to which the user wants to write. - @param htext Handle that the data that will be read from. - @param flags Flags to set linebreak translation as defined in #t_sysfile_text_flags. - @return An error code. -*/ -t_max_err sysfile_writetextfile(t_filehandle f, t_handle htext, t_sysfile_text_flags flags); - - -/** Create a #t_filehandle from a pre-existing handle. - @ingroup files - @param h A handle for some data, data is *not* copied and *not* freed on file close. - @param flags Pass 0 (additional flags are private). - @param fh The address of a #t_filehandle which will be allocated. - @return An error code. -*/ -t_max_err sysfile_openhandle(char **h, t_sysfile_flags flags, t_filehandle *fh); - - -/** Create a #t_filehandle from a pre-existing pointer. - @ingroup files - @param p A pointer to some data. Data is *not* copied and *not* freed on file close. - @param length The size of p. - @param flags Pass 0 (additional flags are private). - @param fh The address of a #t_filehandle which will be allocated. - @return An error code. -*/ -t_max_err sysfile_openptrsize(char *p, t_ptr_size length, t_sysfile_flags flags, t_filehandle *fh); - -END_USING_C_LINKAGE - -#endif // _EXT_SYSFILE_H_ - diff --git a/source/c74support/max-includes/ext_sysmem.h b/source/c74support/max-includes/ext_sysmem.h deleted file mode 100644 index d0c96ef2..00000000 --- a/source/c74support/max-includes/ext_sysmem.h +++ /dev/null @@ -1,205 +0,0 @@ - -#ifndef _EXT_SYSMEM_H_ -#define _EXT_SYSMEM_H_ - -#include "ext_prefix.h" -#include "max_types.h" - -BEGIN_USING_C_LINKAGE - -#ifndef sysmem_newptr -/** - Allocate memory. - This function is similar to NewPtr() or malloc(). It allocates a pointer of - a given number of bytes and returns a pointer to the memory allocated. - - @ingroup memory - @param size The amount of memory to allocate. - @return A pointer to the allocated memory, or NULL if the allocation fails. -*/ -t_ptr sysmem_newptr(t_ptr_size size); - -#endif - - -/** - Allocate memory and set it to zero. - This function is similar to NewPtrClear() or calloc(). - It allocates a pointer of a given number of bytes, zeroing all memory, - and returns a pointer to the memory allocated. - - @ingroup memory - @param size The amount of memory to allocate. - @return A pointer to the allocated memory, or NULL if the allocation fails. -*/ -t_ptr sysmem_newptrclear(t_ptr_size size); - - -/** - Resize an existing pointer. - This function is similar to realloc(). - It resizes an existing pointer and returns a new pointer to the resized memory. - - @ingroup memory - @param ptr The pointer to the memory that will be resized. - @param newsize The new size of the pointer in bytes. - @return A pointer to the resized memory, or NULL if the allocation fails. -*/ -t_ptr sysmem_resizeptr(void *ptr, t_ptr_size newsize); - - -/** - Resize an existing pointer and clear the newly allocated memory, if any. - - @ingroup memory - @param ptr The pointer to the memory that will be resized. - @param newsize The new size of the pointer in bytes. - @return A pointer to the resized memory, or NULL if the allocation fails. -*/ -t_ptr sysmem_resizeptrclear(void *ptr, t_ptr_size newsize); - - -/** - Find the size of a pointer. This function is similar to _msize(). - - @ingroup memory - @param ptr The pointer whose size will be queried - @return The number of bytes allocated to the pointer specified. -*/ -t_ptr_size sysmem_ptrsize(void *ptr); - - -/** - Free memory allocated with sysmem_newptr(). - This function is similar to DisposePtr or free. - It frees the memory that had been allocated to the given pointer. - - @ingroup memory - @param ptr The pointer whose memory will be freed. -*/ -void sysmem_freeptr(void *ptr); - -#ifndef sysmem_copyptr -/** - Copy memory the contents of one pointer to another pointer. - This function is similar to BlockMove() or memcpy(). - It copies the contents of the memory from the source to the destination pointer. - - @ingroup memory - @param src A pointer to the memory whose bytes will be copied. - @param dst A pointer to the memory where the data will be copied. - @param bytes The size in bytes of the data to be copied. -*/ -void sysmem_copyptr(const void *src, void *dst, t_ptr_size bytes); - -#endif - - -/** - Allocate a handle (a pointer to a pointer). - This function is similar to NewHandle(). - It allocates a handle of a given number of bytes and returns a #t_handle. - - @ingroup memory - @param size The size of the handle in bytes that will be allocated. - @return A new #t_handle. -*/ -t_handle sysmem_newhandle(t_ptr_size size); - - -/** - Allocate a handle (a pointer to a pointer) whose memory is set to zero. - - @ingroup memory - @param size The size of the handle in bytes that will be allocated. - @return A new #t_handle. - @see sysmem_newhandle() -*/ -t_handle sysmem_newhandleclear(t_ptr_size size); - - -/** - Resize an existing handle. - This function is similar to SetHandleSize(). - It resizes an existing handle to the size specified. - - @ingroup memory - @param handle The handle that will be resized. - @param newsize The new size of the handle in bytes. - @return The number of bytes allocated to the specified handle. -*/ -t_max_err sysmem_resizehandle(t_handle handle, t_ptr_size newsize); - - -/** - Find the size of a handle. - This function is similar to GetHandleSize(). - - @ingroup memory - @param handle The handle whose size will be queried. - @return The number of bytes allocated to the specified handle. -*/ -t_ptr_size sysmem_handlesize(t_handle handle); - - -/** - Free memory allocated with sysmem_newhandle(). - - @ingroup memory - @param handle The handle whose memory will be freed. -*/ -void sysmem_freehandle(t_handle handle); - - -/** - Set the locked/unlocked state of a handle. - This function is similar to HLock or HUnlock. - It sets the lock state of a handle, using a zero or non-zero number. - - @ingroup memory - @param handle The handle that will be locked. - @param lock The new lock state of the handle. - @return The previous lock state. -*/ -int sysmem_lockhandle(t_handle handle, int lock); - - -/** - Add memory to an existing handle and copy memory to the resized portion from a pointer. - This function is similar to PtrAndHand(). It resizes an existing handle - by adding a given number of bytes to it and copies data from a pointer - into those bytes. - - @ingroup memory - @param p The existing pointer whose data will be copied into the resized handle. - @param h The handle which will be enlarged by the size of the pointer. - @param size The size in bytes that will be added to the handle. - @return The number of bytes allocated to the specified handle. -*/ -t_max_err sysmem_ptrandhand(void *p, t_handle h, t_ptr_size size); - - -/** Add memory to an existing handle and copy memory to the resized portion from a pointer. - Unlike sysmem_ptrandhand(), however, this copies the ptr before the previously exising handle data. - - @ingroup memory - @param p The existing pointer whose data will be copied into the resized handle. - @param h The handle which will be enlarged by the size of the pointer. - @param size The size in bytes that will be added to the handle. - @return An error code. -*/ -t_max_err sysmem_ptrbeforehand(void *p, t_handle h, t_ptr_size size); - - -/** Add a null terminator to a handle. - @ingroup memory - @param h A handle to null terminate. - @return An error code. -*/ -t_max_err sysmem_nullterminatehandle(t_handle h); - - -END_USING_C_LINKAGE - -#endif // _EXT_SYSMEM_H_ - diff --git a/source/c74support/max-includes/ext_sysmidi.h b/source/c74support/max-includes/ext_sysmidi.h deleted file mode 100755 index 4c098008..00000000 --- a/source/c74support/max-includes/ext_sysmidi.h +++ /dev/null @@ -1,79 +0,0 @@ -// sysmidi.h -#ifndef _EXT_SYSMIDI_H_ -#define _EXT_SYSMIDI_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -enum { - SYSMIDI_ENABLED = 1, - SYSMIDI_DYNAMIC = 2, - SYSMIDI_PERMANENT = 4 -}; - -typedef struct midistate -{ - long midicmd; /* top nibble of the most recent status byte */ - long chan; /* midi channel (if not sysex) */ - long sysex; /* true if we are getting a sysex message */ - long argc; /* # of bytes received in msg excluding status byte */ - t_uint8 *data; -} t_midistate; - -typedef struct _midiportinfo { - t_symbol *p_name; - struct _sysmididriver *p_driver; - long p_refnum; - long p_id; - short p_abbrev; - short p_chanoffset; - char p_enabled; - char p_dynamic; // is (was) a dynamically created port - char p_permanent; // should be saved in prefs - char p_delete; - void *p_data1; - long p_data2; - void *p_wait; - t_midistate p_state; - char p_mappingenabled; -} t_midiportinfo; - -typedef struct _sysmididriver { - t_object d_ob; - t_symbol *d_name; - char d_available; // positive response on informational instantiation - char d_hastimer; - method d_sendmethod; - method d_bytesreceivedmethod; - // driver-specific info follows -} t_sysmididriver; - -void sysmidi_enqbigpacket(t_midiportinfo *port, t_uint8 *data, double ts, long len, long contFlags); -long sysmidi_numinports(void); -long sysmidi_numoutports(void); -t_symbol *sysmidi_indextoname(long index, long io); -void sysmidi_iterate(method meth, void *arg, long io); -t_midiportinfo *sysmidi_createport(long id, long refnum, t_symbol *name, t_sysmididriver *dx, long io, long flags); -void sysmidi_deletemarked(long io); -t_midiportinfo *sysmidi_idtoport(long id, long io); -long sysmidi_uniqueid(void); -t_midiportinfo *sysmidi_data1toport(void *data, long io); -t_midiportinfo *sysmidi_nametoport(t_symbol *name, long io); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_SYSMIDI_H_ diff --git a/source/c74support/max-includes/ext_sysparallel.h b/source/c74support/max-includes/ext_sysparallel.h deleted file mode 100644 index 35a03746..00000000 --- a/source/c74support/max-includes/ext_sysparallel.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef _EXT_SYSPARALLEL_H_ -#define _EXT_SYSPARALLEL_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -BEGIN_USING_C_LINKAGE - -#define SYSPARALLEL_PRIORITY_DEFAULT 0x00 -#define SYSPARALLEL_PRIORITY_LOW 0x00 -#define SYSPARALLEL_PRIORITY_MEDIUM 0x04 -#define SYSPARALLEL_PRIORITY_HIGH 0x08 -#define SYSPARALLEL_PRIORITY_TASK_LOCAL 0xa0 - -#define SYSPARALLEL_MAX_WORKERS 64 - -#define SYSPARALLEL_STATE_IDLE 0 -#define SYSPARALLEL_STATE_RUN 1 -#define SYSPARALLEL_STATE_DONE 0 // changed to be the same as IDLE since it means the same thing -#define SYSPARALLEL_STATE_QUIT 3 - -#define SYSPARALLEL_TASK_FLAG_WORKERTRIGGERS (0x00000001) // first worker signals other works as necessary - -typedef struct _sysparallel_task -{ - t_object ob; - void *obex; - void *data; // global task data - method workerproc; // worker callback function - long workercount; // number of workers to use - struct _sysparallel_worker **workers; // worker array - unsigned char priority; // thread priority - char benchmark; // benchmark - long iteration; // for benchmarking - double begintime; // for benchmarking - double endtime; // for benchmarking - long cancel; // for cancel request - struct _sysparallel_thread_pool *pool; // this will be NULL. unless using SYSPARALLEL_PRIORITY_TASK_LOCAL - long maxworkercount; // maximum number of workers to use - long flags; // flags can be set after sysparallel_task_new but before running -} t_sysparallel_task; - - -typedef struct _sysparallel_worker -{ - t_object ob; - void *obex; - void *data; // worker specific data - method workerproc; // worker callback function, worker object passed in - t_sysparallel_task *task; // pointer to task parent (can be used to access global task data) - long id; // worker id - double begintime; // for benchmarking (uses task info) - double endtime; // for benchmarking (uses task info) - -} t_sysparallel_worker; - - -void sysparallel_init(void); -long sysparallel_processorcount(void); -long sysparallel_physical_processorcount(void); -t_sysparallel_task *sysparallel_task_new(void *data, method workerproc, long maxworkercount); -t_max_err sysparallel_task_workercount(t_sysparallel_task *x, long workercount); -t_max_err sysparallel_task_execute(t_sysparallel_task *x); -void sysparallel_task_signalworkers(t_sysparallel_task *x, long count); -t_max_err sysparallel_task_cancel(t_sysparallel_task *x); -void sysparallel_task_free(t_sysparallel_task *x); -void sysparallel_task_benchprint(t_sysparallel_task *x); -void sysparallel_task_data(t_sysparallel_task *x, void * data); -void sysparallel_task_workerproc(t_sysparallel_task *x, method workerproc); - -t_sysparallel_worker *sysparallel_worker_new(void *data, method workerproc, t_sysparallel_task *task); -t_max_err sysparallel_worker_execute(t_sysparallel_worker *x); -void sysparallel_worker_free(t_sysparallel_worker *x); - -END_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#endif // _EXT_SYSPARALLEL_H_ diff --git a/source/c74support/max-includes/ext_sysprocess.h b/source/c74support/max-includes/ext_sysprocess.h deleted file mode 100644 index a1022bcc..00000000 --- a/source/c74support/max-includes/ext_sysprocess.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef _EXT_SYSPROCESS_H_ -#define _EXT_SYSPROCESS_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -enum { - SYSPROCESS_LAUNCHFLAGS_NONE = 0, - SYSPROCESS_LAUNCHFLAGS_NOWINDOW = 0x01, - SYSPROCESS_LAUNCHFLAGS_NOWINDOW_ALLOWDIALOGS = 0x02 -}; - -// returns process id or 0 on error -long sysprocess_launch(const char *utf8path, const char *utf8commandline); - -// returns process id or 0 on error -long sysprocess_launch_withflags(const char *utf8path, const char *utf8commandline, long flags); - -// returns non-zero if process is still running -long sysprocess_isrunning(long id); - -// returns non-zero if process is still running, optional non-running process return value in 'retval' argument -// note that return value will only work reliably the first time the function is called on a terminated process -long sysprocess_isrunning_with_returnvalue(long id, long *retval); - -// kill a running process (SIGKILL), returns 0 if successful -long sysprocess_kill(long id); - -// returns 0 if successful -long sysprocess_activate(long id); - -// returns 0 if process isn't running -long sysprocess_getid(const char *utf8path); // find the process id for a given app - -// returns the id of the currently running process -long sysprocess_getcurrentid(void); - -// given process ID returns path as utf8 string -// note: you must free the returned memory with sysmem_freeptr() -long sysprocess_getpath(long id, char **utf8path); - -// sysprocesswatcher: monitors process with given id and if process quits calls given method with arg. -// note: method is called on a separate thread so you can possibly free a stalled main thread. -// If you are done then free the sysprocesswatcher with object_free() and the monitoring thread will be killed. -t_object* sysprocesswatcher_new(long id, method m, void *arg); - -// determines if the architecture of the named process (x64 or i386) fits the current one -long sysprocess_fitsarch(long id); - -END_USING_C_LINKAGE - -#endif // _EXT_SYSPROCESS_H_ diff --git a/source/c74support/max-includes/ext_syssem.h b/source/c74support/max-includes/ext_syssem.h deleted file mode 100644 index c40174a0..00000000 --- a/source/c74support/max-includes/ext_syssem.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _EXT_SYSSEM_H_ -#define _EXT_SYSSEM_H_ - -#include "ext_prefix.h" - -BEGIN_USING_C_LINKAGE - -// syssem is a platform independent way of using named semaphores -// that can be used to synchronize multiple processes - -typedef void * t_syssem; - -t_max_err syssem_create(t_syssem *x, const char *name, long flags, unsigned int value); -t_max_err syssem_open(t_syssem *x, const char *name, long flags); -t_max_err syssem_close(t_syssem x); -t_max_err syssem_wait(t_syssem x); -t_max_err syssem_trywait(t_syssem x); -t_max_err syssem_post(t_syssem x); - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_SYSSEM_H_ diff --git a/source/c74support/max-includes/ext_sysshmem.h b/source/c74support/max-includes/ext_sysshmem.h deleted file mode 100644 index d692253d..00000000 --- a/source/c74support/max-includes/ext_sysshmem.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _EXT_SYSSHMEM_H_ -#define _EXT_SYSSHMEM_H_ - -#include "ext_prefix.h" -#include "max_types.h" - -BEGIN_USING_C_LINKAGE - -// sysshmem is a platform independent interface to shared memory - -typedef void *t_sysshmem; - -#define SYSSHMEM_FLAGS_READONLY (0x00000001) - -t_max_err sysshmem_alloc(t_sysshmem *x, const char *name, long size, long flags); // allocate memory that can be shared -t_max_err sysshmem_open(t_sysshmem *x, const char *name, long flags); // open memory allocated elsewhere -t_max_err sysshmem_close(t_sysshmem x); // after this call t_sysshmem handle is no longer valid - -unsigned long sysshmem_getsize(t_sysshmem x); // number of bytes in shared memory block -void* sysshmem_getptr(t_sysshmem x); // pointer to actual memory - -END_USING_C_LINKAGE - -#endif // #ifndef _EXT_SYSSHMEM_H_ diff --git a/source/c74support/max-includes/ext_systhread.h b/source/c74support/max-includes/ext_systhread.h deleted file mode 100644 index 72c860d8..00000000 --- a/source/c74support/max-includes/ext_systhread.h +++ /dev/null @@ -1,282 +0,0 @@ -#ifndef _EXT_SYSTHREAD_H_ -#define _EXT_SYSTHREAD_H_ - -#include "ext_obex.h" - -BEGIN_USING_C_LINKAGE - -/** An opaque thread instance pointer. - @ingroup threading -*/ -typedef void *t_systhread; - -/** An opaque mutex handle. - @ingroup threading -*/ -typedef void *t_systhread_mutex; - - -/** An opaque cond handle. - @ingroup threading -*/ -typedef void *t_systhread_cond; - -typedef void *t_systhread_rwlock; - -typedef void *t_systhread_key; - -/** systhread_mutex_new() flags - @ingroup threading -*/ -typedef enum { - SYSTHREAD_MUTEX_NORMAL = 0x00000000, ///< Normal - SYSTHREAD_MUTEX_ERRORCHECK = 0x00000001, ///< Error-checking - SYSTHREAD_MUTEX_RECURSIVE = 0x00000002 ///< Recursive -} e_max_systhread_mutex_flags; - -typedef enum { - SYSTHREAD_PRIORITY_MIN = -30, - SYSTHREAD_PRIORITY_DEFAULT = 0, -#ifndef LINUX_VERSION - SYSTHREAD_PRIORITY_MAX = 30 -#else - SYSTHREAD_PRIORITY_MAX = 0 // Linux does not have high prio non-rt threads -#endif -} e_max_systhread_priority; - -typedef enum { - SYSTHREAD_RWLOCK_NORMAL = 0x00000000, - SYSTHREAD_RWLOCK_LITE = 0x00000001 -} e_max_systhread_rwlock_flags; - -/** - Create a new thread. - @ingroup threading - - @param entryproc A method to call in the new thread when the thread is created. - @param arg An argument to pass to the method specified for entryproc. - Typically this might be a pointer to your object's struct. - @param stacksize Not used. Pass 0 for this argument. - @param priority Pass 0 for default priority. The priority can range from -32 to 32 where -32 is low, 0 is default and 32 is high. - @param flags Not used. Pass 0 for this argument. - @param thread The address of a #t_systhread where this thread's instance pointer will be stored. - @return A Max error code as defined in #e_max_errorcodes. -*/ -long systhread_create(method entryproc, void *arg, long stacksize, long priority, long flags, t_systhread *thread); - - -/** - Forcefully kill a thread -- not recommended. - @ingroup threading - - @param thread The thread to kill. - @return A Max error code as defined in #e_max_errorcodes. -*/ -long systhread_terminate(t_systhread thread); - - -/** - Suspend the execution of the calling thread. - @ingroup threading - - @param milliseconds The number of milliseconds to suspend the execution of the calling thread. - The actual amount of time may be longer depending on various factors. -*/ -void systhread_sleep(long milliseconds); - - -/** - Exit the calling thread. - Call this from within a thread made using systhread_create() when the thread is no longer needed. - - @ingroup threading - @param status You will typically pass 0 for status. - This value will be accessible by systhread_join(), if needed. -*/ -void systhread_exit(long status); - - -/** - Wait for thread to quit and get return value from systhread_exit(). - - @ingroup threading - @param thread The thread to join. - @param retval The address of a long to hold the return value (status) from systhread_exit(). - @return A Max error code as defined in #e_max_errorcodes. - - @remark If your object is freed, and your thread function accesses memory from your object, - then you will obviously have a memory violation. - A common use of systhread_join() is to prevent this situation by waiting (in your free method) - for the thread to exit. -*/ -long systhread_join(t_systhread thread, unsigned int* retval); - -/** - Detach a thread. After detaching a thread you cannot call systhread_join() on it. - - @ingroup threading - @param thread The thread to join. - @return A Max error code as defined in #e_max_errorcodes. - - @remark You should either call systhread_join() on a thread or systhread_detach() - to allow the system to reclaim resources. - */ -long systhread_detach(t_systhread thread); - -/** - Return the thread instance pointer for the calling thread. - @ingroup threading - @return The thread instance pointer for the thread from which this function is called. -*/ -t_systhread systhread_self(void); - -/** - Compare two threads to see if they reference the same thread. - The t_systhread type is opaque and two should not be compared directly. - @ingroup threading - @param thread1 the first thread to be compared - @param thread2 the second thread to be compared - @return nonzero if the two parameters reference the same thread -*/ -long systhread_equal(t_systhread thread1, t_systhread thread2); - -/** - Set the thread priority for the given thread. - @ingroup threading - @param thread The thread for which to set the priority. - @param priority A value in the range -32 to 32 where -32 is lowest, 0 is default, and 32 is highest. -*/ -void systhread_setpriority(t_systhread thread, int priority); - -/** - Get the thread priority for the given thread. - @ingroup threading - @param thread The thread for which to find the priority. - @return The current priority value for the given thread. -*/ -int systhread_getpriority(t_systhread thread); - -char *systhread_getstackbase(void); - -/** Check to see if the function currently being executed is in the main thread. - @ingroup threading - @return Returns true if the function is being executed in the main thread, otherwise false. -*/ -short systhread_ismainthread(void); - - -/** Check to see if the function currently being executed is in a scheduler thread. - @ingroup threading - @return Returns true if the function is being executed in a scheduler thread, otherwise false. -*/ -short systhread_istimerthread(void); - - -/** Check to see if the function currently being executed is in an audio thread. - @ingroup threading - @return Returns true if the function is being executed in an audio thread, otherwise false. - */ - -short systhread_isaudiothread(void); - -/** - Set the name of the current thread, for debugging purposes. - Recommended to call from the top of the entryproc passed to systhread_create - - @ingroup threading - @param name The name to be given. -*/ -void systhread_set_name(const char* name); - -/** - Create a new mutex, which can be used to place thread locks around critical code. - The mutex should be freed with systhread_mutex_free(). - @ingroup mutex - - @param pmutex The address of a variable to store the mutex pointer. - @param flags Flags to determine the behaviour of the mutex, as defined in #e_max_systhread_mutex_flags. - @return A Max error code as defined in #e_max_errorcodes. - - @remark One reason to use systhread_mutex_new() instead of @ref critical is to - create non-recursive locks, which are lighter-weight than recursive locks. -*/ -long systhread_mutex_new(t_systhread_mutex *pmutex,long flags); - - -/** - Free a mutex created with systhread_mutex_new(). - @ingroup mutex - @param pmutex The mutex instance pointer. - @return A Max error code as defined in #e_max_errorcodes. -*/ -long systhread_mutex_free(t_systhread_mutex pmutex); - - -/** - Enter block of locked code code until a systhread_mutex_unlock() is reached. - It is important to keep the code in this block as small as possible. - @ingroup mutex - @param pmutex The mutex instance pointer. - @return A Max error code as defined in #e_max_errorcodes. - @see systhread_mutex_trylock() -*/ -long systhread_mutex_lock(t_systhread_mutex pmutex); - - -/** - Exit a block of code locked with systhread_mutex_lock(). - @ingroup mutex - @param pmutex The mutex instance pointer. - @return A Max error code as defined in #e_max_errorcodes. -*/ -long systhread_mutex_unlock(t_systhread_mutex pmutex); - - -/** - Try to enter block of locked code code until a systhread_mutex_unlock() is reached. - If the lock cannot be entered, this function will return non-zero. - - @ingroup mutex - @param pmutex The mutex instance pointer. - @return Returns non-zero if there was a problem entering. - @see systhread_mutex_lock() -*/ -long systhread_mutex_trylock(t_systhread_mutex pmutex); - - -/** - Convenience utility that combines systhread_mutex_new() and systhread_mutex_lock(). - @ingroup mutex - @param pmutex The address of a variable to store the mutex pointer. - @param flags Flags to determine the behaviour of the mutex, as defined in #e_max_systhread_mutex_flags. - @return A Max error code as defined in #e_max_errorcodes. -*/ -long systhread_mutex_newlock(t_systhread_mutex *pmutex,long flags); - -t_max_err systhread_rwlock_new(t_systhread_rwlock *rwlock, long flags); -t_max_err systhread_rwlock_free(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_rdlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_tryrdlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_rdunlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_wrlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_trywrlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_wrunlock(t_systhread_rwlock rwlock); -t_max_err systhread_rwlock_setspintime(t_systhread_rwlock rwlock, double spintime_ms); -t_max_err systhread_rwlock_getspintime(t_systhread_rwlock rwlock, double *spintime_ms); - -long systhread_cond_new(t_systhread_cond *pcond, long flags); -long systhread_cond_free(t_systhread_cond pcond); -long systhread_cond_wait(t_systhread_cond pcond, t_systhread_mutex pmutex); -long systhread_cond_signal(t_systhread_cond pcond); -long systhread_cond_broadcast(t_systhread_cond pcond); - -long systhread_key_create(t_systhread_key *key, void (*destructor)(void*)); -long systhread_key_delete(t_systhread_key key); -void* systhread_getspecific(t_systhread_key key); -long systhread_setspecific(t_systhread_key key, const void *value); -void systhread_eliminatedenormals(void); - -END_USING_C_LINKAGE - -#endif // _EXT_SYSTHREAD_H_ - diff --git a/source/c74support/max-includes/ext_systime.h b/source/c74support/max-includes/ext_systime.h deleted file mode 100644 index 933f6754..00000000 --- a/source/c74support/max-includes/ext_systime.h +++ /dev/null @@ -1,133 +0,0 @@ - -#ifndef _EXT_SYSTIME_H_ -#define _EXT_SYSTIME_H_ - -#include "ext_prefix.h" -#include "max_types.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -/** - The Systime data structure. - @ingroup systime -*/ - -typedef struct _datetime { - t_uint32 year; ///< year - t_uint32 month; ///< month, in range 1 through 12 - t_uint32 day; ///< day, in range 1 through 31 - t_uint32 hour; ///< hour - t_uint32 minute; ///< minute - t_uint32 second; ///< second - t_uint32 millisecond; ///< (reserved for future use) -} t_datetime; - -/** Flags for the sysdateformat_formatdatetime() function. - @ingroup systime -*/ -typedef enum { - SYSDATEFORMAT_FLAGS_SHORT = 1, ///< short - SYSDATEFORMAT_FLAGS_MEDIUM = 2, ///< medium - SYSDATEFORMAT_FLAGS_LONG = 3, ///< long - - SYSDATEFORMAT_RELATIVE = 16 -} e_max_dateflags; - -/** - Find out the operating system’s time in ticks. - @ingroup systime - @return the system time in ticks. -*/ -t_uint32 systime_ticks(void); - - -/** - Find out the operating system’s time in milliseconds. - Note that this is approximately the number of milliseconds since the OS was started up. - @ingroup systime - @return the system time in milliseconds. -*/ -t_uint32 systime_ms(void); - - -/** - Find out the current date/time as number of ms since January 1, 1970, GMT. - @ingroup systime - @return the number of milliseconds since January 1, 1970, GMT. - */ -t_int64 systime_datetime_milliseconds(void); - -/** - Find out the operating system’s current local date and time. - @ingroup systime - @param d Returns the system’s date and time in the local time zone in a #t_datetime data structure. -*/ -void systime_datetime(t_datetime *d); - - -/** - Find out the operating system’s time in seconds since midnight, January 1, 1904, GMT (mac HFS time). - @ingroup systime - @return the system time in seconds since midnight, January 1, 1904, GMT. -*/ -t_ptr_uint systime_seconds(void); - - -/** - Convert a time in seconds into a #t_datetime representation. - @ingroup systime - @param secs A number of seconds since midnight, January 1, 1904, GMT, to be represented as a #t_datetime. - @param d The address of a #t_datetime that will be filled to the corresponding time, in the local time zone. -*/ -void systime_secondstodate(t_ptr_uint secs, t_datetime *d); - - -/** - Convert a #t_datetime representation of time into seconds since midnight, January 1, 1904, GMT. - @ingroup systime - @param d The address of a #t_datetime to be converted to seconds. The #t_datetime values are in the local time zone. - @return The number of seconds between midnight, January 1, 1904, GMT and the time represented in d. -*/ -t_ptr_uint systime_datetoseconds(const t_datetime *d); - - -/** - Fill a #t_datetime struct with a datetime formatted string. - For example, the string "2007-12-24 12:21:00". - @ingroup systime - @param strf A string containing the datetime. - @param d The address of a #t_datetime to fill. -*/ -void sysdateformat_strftimetodatetime(const char *strf, t_datetime *d); - - -/** - Get a human friendly string representation of a #t_datetime. - For example: "Dec 17, 2020 at 10:48 AM" - or, when dateflags is SYSDATEFORMAT_RELATIVE a string like "Today", "Yesterday", etc. - @ingroup systime - @param d The address of a #t_datetime to format as a string. The t_datetime entries correspond to the local time. - @param dateflags One of the values defined in #e_max_dateflags. - @param timeflags Currently unused. Pass 0. - @param s An already allocated string to hold the human friendly result. - @param buflen The number of characters allocated to the string s. -*/ -void sysdateformat_formatdatetime(const t_datetime *d, long dateflags, long timeflags, char *s, long buflen); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // _EXT_SYSTIME_H_ - diff --git a/source/c74support/max-includes/ext_time.h b/source/c74support/max-includes/ext_time.h deleted file mode 100644 index 2a2fbe52..00000000 --- a/source/c74support/max-includes/ext_time.h +++ /dev/null @@ -1,213 +0,0 @@ -/* - * ext_time.h - * - * Copyright 2008 Cycling '74. All rights reserved. - * - */ - -#ifndef __EXT_TIME_H__ -#define __EXT_TIME_H__ - -#include "ext_itm.h" - -BEGIN_USING_C_LINKAGE - - - -/** - A high-level time object for tempo-based scheduling. - - @ingroup time - @see #t_itm - @see @ref chapter_itm -*/ -typedef t_object t_timeobject; - - -/*******************************************************************************/ - - -/** - Stop a currently scheduled time object. - - @ingroup time - @param x The time object. - -*/ -void time_stop(t_timeobject *x); - - -/** - Execute a time object's task, then if it was already set to execute, reschedule for the current interval value of the object. - - @ingroup time - @param x The time object. - -*/ -void time_tick(t_timeobject *x); - - -/** - Convert the value of a time object to milliseconds. - - @ingroup time - @param x The time object. - @return The time object's value, converted to milliseconds. -*/ -double time_getms(t_timeobject *x); - - -/** - Convert the value of a time object to ticks. - - @ingroup time - @param x The time object. - @return The time object's value, converted to ticks. -*/ -double time_getticks(t_timeobject *x); - - -/** - Return the phase of the ITM object (transport) associated with a time object. - - @ingroup time - @param tx The time object. - @param phase Pointer to a double to receive the progress within the specified time value of the associated ITM object. - @param slope Pointer to a double to receive the slope (phase difference) within the specified time value of the associated ITM object. - @param ticks -*/ -void time_getphase(t_timeobject *tx, double *phase, double *slope, double *ticks); - - -/** - Specify that a millisecond-based attribute to be updated automatically when the converted milliseconds of the time object's value changes. - - @ingroup time - @param x The time object. - @param attr Name of the millisecond based attribute in the owning object that will be updated - @param flags If TIME_FLAGS_LISTENTICKS is passed here, updating will not happen if the time value is fixed (ms) based - */ -void time_listen(t_timeobject *x, t_symbol *attr, long flags); - - -/** - Set the current value of a time object (either an interval or a position) using a Max message. - - @ingroup time - @param tx The time object. - @param s Message selector. - @param argc Count of arguments. - @param argv Message arguments. - */ -void time_setvalue(t_timeobject *tx, t_symbol *s, long argc, t_atom *argv); - -/** - Create an attribute permitting a time object to be changed in a user-friendly way. - - @ingroup time - @param c Class being initialized. - @param attrname Name of the attribute associated with the time object. - @param attrlabel Descriptive label for the attribute (appears in the inspector) - @param flags Options, see "Flags that determine time object behavior" above -*/ -void class_time_addattr(t_class *c, const char *attrname, const char *attrlabel, long flags); - -/** - Create a new time object. - - @ingroup time - @param owner Object that will own this time object (task routine, if any, will pass owner as argument). - @param attrname Name of the attribute associated with the time object. - @param tick Task routine that will be executed (can be NULL) - @param flags Options, see "Flags that determine time object behavior" above - @return The newly created #t_timeobject. -*/ -void *time_new(t_object *owner, t_symbol *attrname, method tick, long flags); - -/** - Return a time object associated with an attribute of an owning object. - - @ingroup time - @param owner Object that owns this time object (task routine, if any, will pass owner as argument). - @param attrname Name of the attribute associated with the time object. - @return The #t_timeobject associated with the named attribute. -*/ -t_object *time_getnamed(t_object *owner, t_symbol *attrname); - - -void time_enable_attributes(t_object *x); - -/** - Return whether this time object currently holds a fixed (millisecond-based) value. - - @ingroup time - @param x Time object. - @return True if time object's current value is fixed, false if it is tempo-relative. -*/ -long time_isfixedunit(t_timeobject *x); - - -/** - Schedule a task, with optional quantization. - - @ingroup time - @param x The time object that schedules temporary events (must have been created with TIME_FLAGS_USECLOCK but not TIME_FLAGS_PERMANENT) - @param quantize A time object that holds a quantization interval, can be NULL for no quantization. -*/ -void time_schedule(t_timeobject *x, t_timeobject *quantize); - - -/** - Schedule a task, with optional minimum interval, - - @ingroup time - @param x The time object that schedules temporary events (must have been created with TIME_FLAGS_USECLOCK but not TIME_FLAGS_PERMANENT) - @param quantize The minimum interval into the future when the event can occur, can be NULL if there is no minimum interval. -*/ -void time_schedule_limit(t_timeobject *x, t_timeobject *quantize); - -/** - Schedule a task for right now, with optional quantization. - - @ingroup time - @param x The time object that schedules temporary events. The time interval is ignored and 0 ticks is used instead. - @param quantize A time object that holds a quantization interval, can be NULL for no quantization. -*/ -void time_now(t_timeobject *x, t_timeobject *quantize); - - -/** - Return the ITM object associated with this time object. - - @ingroup time - @param ox Time object. - @return The associated #t_itm object. -*/ -void *time_getitm(t_timeobject *ox); - - -/** - Calculate the quantized interval (in ticks) if this time object were to be scheduled at the current time. - - @ingroup time - @param ox Time object. - @param vitm The associated ITM object (use time_getitm() to determine it). - @param oq A time object that holds a quantization interval, can be NULL. - @return Interval (in ticks) for scheduling this object. -*/ -double time_calcquantize(t_timeobject *ox, t_itm *vitm, t_timeobject *oq); - - -/** - Associate a named setclock object with a time object (unsupported). - - @ingroup time - @param tx Time object. - @param sc Name of an associated setclock object. -*/ -void time_setclock(t_timeobject *tx, t_symbol *sc); - -END_USING_C_LINKAGE - -#endif // __EXT_TIME_H__ - diff --git a/source/c74support/max-includes/ext_timeline.h b/source/c74support/max-includes/ext_timeline.h deleted file mode 100644 index 194f2845..00000000 --- a/source/c74support/max-includes/ext_timeline.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_TIMELINE_H_ -#define _EXT_TIMELINE_H_ - -// NOTE: This file is obsolete. - -#endif // _EXT_TIMELINE_H_ diff --git a/source/c74support/max-includes/ext_track.h b/source/c74support/max-includes/ext_track.h deleted file mode 100755 index b77ba427..00000000 --- a/source/c74support/max-includes/ext_track.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef _EXT_TRACK_H_ -#define _EXT_TRACK_H_ - -// NOTE: This file is obsolete. - -#endif /* _EXT_TRACK_H_ */ diff --git a/source/c74support/max-includes/ext_typelist.h b/source/c74support/max-includes/ext_typelist.h deleted file mode 100644 index 4c85b15f..00000000 --- a/source/c74support/max-includes/ext_typelist.h +++ /dev/null @@ -1,15 +0,0 @@ -// ext_typelist.h copyright 2019 cycling '74 all rights reserved - -#ifndef __EXT_TYPELIST_H__ -#define __EXT_TYPELIST_H__ - -#include "ext_prefix.h" -#include "max_types.h" - -BEGIN_USING_C_LINKAGE - -void typelist_make(t_fourcc *types, long include, short *numtypes); - -END_USING_C_LINKAGE - -#endif // #ifndef __EXT_TYPELIST_H__ diff --git a/source/c74support/max-includes/ext_user.h b/source/c74support/max-includes/ext_user.h deleted file mode 100755 index 13057904..00000000 --- a/source/c74support/max-includes/ext_user.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef __EXT_USER -#define __EXT_USER - -// NOTE: This file is obsolete. - -#endif - diff --git a/source/c74support/max-includes/ext_wind.h b/source/c74support/max-includes/ext_wind.h deleted file mode 100755 index 42adcc87..00000000 --- a/source/c74support/max-includes/ext_wind.h +++ /dev/null @@ -1,76 +0,0 @@ -/*************************/ -/* Copyright 1988 IRCAM. */ -/*************************/ -#ifndef _EXT_WIND_H_ -#define _EXT_WIND_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -/** Returned values from wind_advise() - @ingroup misc -*/ -typedef enum { - aaYes = 1, ///< Yes button was choosen - aaNo, ///< No button was choosen - aaCancel ///< Cancel button was choosen -} e_max_wind_advise_result; - - -// advise returns... - -#define ADVISE_SAVE 1 -#define aaSave ADVISE_SAVE -#define ADVISE_DISCARD 2 -#define aaDiscard ADVISE_DISCARD -#define ADVISE_CANCEL 3 -#define aaCancel ADVISE_CANCEL -#define ADVISE_FIRST ADVISE_SAVE -#define ADVISE_SECOND ADVISE_DISCARD -#define ADVISE_THIRD ADVISE_CANCEL - - - -/** Throw a dialog which may have text and up to three buttons. - For example, this can be used to ask "Save changes before..." - @ingroup misc - @param w The window with which this dialog is associated. - @param s A string with any sprintf()-like formatting to be displayed. - @param ... Any variables that should be substituted in the string defined by s. - @return One of the values defined in #e_max_wind_advise_result, depending on what the user selected. -*/ -short wind_advise(t_object *w, const char *s, ...); - -// internal use only -short wind_advise_explain(t_object *w, const char *note, const char *explanation, const char *b1, const char *b2, const char *b3); - -/** Change the cursor. - @ingroup misc - - @param which One of the following predefined cursors: - @code - #define C_ARROW 1 - #define C_WATCH 2 - #define C_IBEAM 3 - #define C_HAND 4 - #define C_CROSS 5 - #define C_PENCIL 6 - #define C_GROW 8 - @endcode - - @remark wind_setcursor() keeps track of what the cursor was previously set - to, so if something else has changed the cursor, you may not see a new - cursor if you set it to the previous argument to wind_setcursor(). - - The solution is to call wind_setcursor(0) before calling it with the - desired cursor constant. Use wind_setcursor(-1) to tell Max you’ll set - the cursor to your own cursor directly. -*/ -void wind_setcursor(short which); - - -END_USING_C_LINKAGE - -#endif // _EXT_WIND_H_ diff --git a/source/c74support/max-includes/ext_xmltree.h b/source/c74support/max-includes/ext_xmltree.h deleted file mode 100644 index 98569324..00000000 --- a/source/c74support/max-includes/ext_xmltree.h +++ /dev/null @@ -1,141 +0,0 @@ -#ifndef _EXT_XMLTREE_H_ -#define _EXT_XMLTREE_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_linklist.h" -#include "ext_sysfile.h" - -#ifdef __cplusplus -extern "C" { -#endif - -// opaque type definitions - -typedef struct _xmltree_node t_xmltree_node; -typedef struct _xmltree_charnode t_xmltree_charnode ; -typedef struct _xmltree_text t_xmltree_text; -typedef struct _xmltree_comment t_xmltree_comment; -typedef struct _xmltree_cdata t_xmltree_cdata; -typedef struct _xmltree_attribute t_xmltree_attribute; -typedef struct _xmltree_element t_xmltree_element; -typedef struct _xmltree_document t_xmltree_document; - -// prototypes - -// xmltree_node -t_max_err xmltree_node_addinterface(t_class *c); -t_max_err xmltree_node_sortchildlist(t_xmltree_node *x, long cmpfn(void *, void *)); -t_max_err xmltree_node_insertbefore(t_xmltree_node *x, t_xmltree_node *newchild, t_xmltree_node *refchild); -t_max_err xmltree_node_replacechild(t_xmltree_node *x, t_xmltree_node *newchild, t_xmltree_node *refchild); -t_max_err xmltree_node_removechild(t_xmltree_node *x, t_xmltree_node *refchild); -t_max_err xmltree_node_appendchild(t_xmltree_node *x, t_xmltree_node *newchild); -t_atom_long xmltree_node_haschildnodes(t_xmltree_node *x); -t_xmltree_node *xmltree_node_clonenode(t_xmltree_node *x, long deep); -t_max_err xmltree_node_removeallchildren(t_xmltree_node *x); -t_max_err xmltree_node_nodevalue(t_xmltree_node *x, void *attr, long ac, t_atom *av); -t_max_err xmltree_node_getnodevalue(t_xmltree_node *x, void *attr, long *ac, t_atom **av); -t_max_err xmltree_node_setnodevalasstring(t_xmltree_node *x, char *s); -t_max_err xmltree_node_getnodevalasstring(t_xmltree_node *x, long *len, char **s); -t_max_err xmltree_node_new(t_xmltree_node *x, t_symbol *nodetype); -t_max_err xmltree_node_free(t_xmltree_node *x); -// utils -t_symbol *xmltree_node_getnodevalue_sym(t_xmltree_node *x); -t_max_err xmltree_node_nodevalue_sym(t_xmltree_node *x, t_symbol *s); -t_atom_long xmltree_node_getnodevalue_long(t_xmltree_node *x); -t_max_err xmltree_node_nodevalue_long(t_xmltree_node *x, long c); -float xmltree_node_getnodevalue_float(t_xmltree_node *x); -t_max_err xmltree_node_nodevalue_float(t_xmltree_node *x, float f); -long xmltree_node_getnodevalue_sym_array(t_xmltree_node *x, long max, t_symbol **vals); -t_max_err xmltree_node_nodevalue_sym_array(void *x, long count, t_symbol **vals); -long xmltree_node_getnodevalue_long_array(t_xmltree_node *x, long max, t_atom_long *vals); -t_max_err xmltree_node_nodevalue_long_array(void *x, long count, long *vals); -long xmltree_node_getnodevalue_float_array(t_xmltree_node *x, long max, float *vals); -t_max_err xmltree_node_nodevalue_float_array(void *x, long count, float *vals); - - -// xmltree_charnode -t_max_err xmltree_charnode_addinterface(t_class *c); -char *xmltree_charnode_substringdata(t_xmltree_charnode *x, long offset, long count); -t_max_err xmltree_charnode_appenddata(t_xmltree_charnode *x, char *data); -t_max_err xmltree_charnode_insertdata(t_xmltree_charnode *x, long offset, char *data); -t_max_err xmltree_charnode_deletedata(t_xmltree_charnode *x, long offset, long count); -t_max_err xmltree_charnode_replacedata(t_xmltree_charnode *x, long offset, long count, char *data); -t_max_err xmltree_charnode_new(t_xmltree_charnode *x, t_symbol *nodetype); -t_max_err xmltree_charnode_free(t_xmltree_charnode *x); - -// xmltree_document -void xmltree_document_filename(t_xmltree_document *x, t_object *attr, long argc, t_atom *argv); -t_max_err xmltree_document_read(t_xmltree_document *x, t_symbol *s, long ac, t_atom *av); -t_max_err xmltree_document_write(t_xmltree_document *x, t_symbol *s, long ac, t_atom *av); -void xmltree_node_write(t_xmltree_node *x, t_filehandle fh, long depth); -void xmltree_document_print(t_xmltree_document *x); -t_xmltree_element *xmltree_document_createelement(t_xmltree_document *x, t_symbol *tagname); -t_xmltree_text *xmltree_document_createtextnode(t_xmltree_document *x, char *data); -t_xmltree_comment *xmltree_document_createcomment(t_xmltree_document *x, char *data); -t_xmltree_cdata *xmltree_document_createcdatasection(t_xmltree_document *x, char *data); -t_xmltree_attribute *xmltree_document_createattribute(t_xmltree_document *x, t_symbol *name); -t_linklist *xmltree_document_getelementsbytagname(t_xmltree_document *x, t_symbol *tagname); -void xmltree_document_xmlparse_element_start(t_xmltree_document *x, const char *el, const char **attr); -void xmltree_document_xmlparse_element_end(t_xmltree_document *x, const char *el); -void xmltree_document_xmlparse_default(t_xmltree_document *x, const char *s, int len); -void xmltree_document_xmlparse_characterdata(t_xmltree_document *x, const char *s, int len); -void xmltree_document_xmlparse_cdata_start(t_xmltree_document *x); -void xmltree_document_xmlparse_cdata_end(t_xmltree_document *x); -void xmltree_document_xmlparse_comment(t_xmltree_document *x, const char *s); -void xmltree_document_xmlparse_doctype_start(t_xmltree_document *x, const char *s); -void xmltree_document_xmlparse_doctype_end(t_xmltree_document *x); -void xmltree_document_createheader(t_xmltree_document *x, t_symbol *encoding); -void xmltree_document_createprocessinginstruction(t_xmltree_document *x, t_symbol *target, t_symbol *data); -void *xmltree_document_new(t_symbol *s, long argc, t_atom *argv); -void xmltree_document_free(t_xmltree_document *x); - -// xmltree_element -t_max_err xmltree_element_getattribute(t_xmltree_element *x, t_symbol *attrname, long *ac, t_atom **av); -t_max_err xmltree_element_setattribute(t_xmltree_element *x, t_symbol *attrname, long ac, t_atom *av); -t_max_err xmltree_element_removeattribute(t_xmltree_element *x, t_symbol *attrname); -t_xmltree_attribute *xmltree_element_getattributenode(t_xmltree_element *x, t_symbol *attrname); -t_xmltree_attribute *xmltree_element_setattributenode(t_xmltree_element *x, t_xmltree_attribute *attr); -t_xmltree_attribute * xmltree_element_removeattributenode(t_xmltree_element *x, t_xmltree_attribute *attr); -t_linklist *xmltree_element_getelementsbytagname(t_xmltree_element *x, t_symbol *tagname); -long xmltree_element_symcompare(t_xmltree_attribute *x,t_symbol *name); -void *xmltree_element_new(t_symbol *s, long argc, t_atom *argv); -void xmltree_element_free(t_xmltree_element *x); -// utils -t_symbol *xmltree_element_getattribute_sym(t_xmltree_element *x, t_symbol *attrname); -t_max_err xmltree_element_setattribute_sym(t_xmltree_element *x, t_symbol *attrname, t_symbol *s); -t_atom_long xmltree_element_getattribute_long(t_xmltree_element *x, t_symbol *attrname); -t_max_err xmltree_element_setattribute_long(t_xmltree_element *x, t_symbol *attrname, t_atom_long c); -float xmltree_element_getattribute_float(t_xmltree_element *x, t_symbol *attrname); -t_max_err xmltree_element_setattribute_float(t_xmltree_element *x, t_symbol *attrname, float f); -long xmltree_element_getattribute_sym_array(t_xmltree_element *x, t_symbol *attrname, long max, t_symbol **vals); -t_max_err xmltree_element_setattribute_sym_array(void *x, t_symbol *attrname, long count, t_symbol **vals); -long xmltree_element_getattribute_long_array(t_xmltree_element *x, t_symbol *attrname, long max, t_atom_long *vals); -t_max_err xmltree_element_setattribute_long_array(void *x, t_symbol *attrname, long count, long *vals); -long xmltree_element_getattribute_float_array(t_xmltree_element *x, t_symbol *attrname, long max, float *vals); -t_max_err xmltree_element_setattribute_float_array(void *x, t_symbol *attrname, long count, float *vals); - -// xmltree_attribute -long xmltree_attr_symcompare(t_xmltree_attribute *x,t_symbol *name); -void *xmltree_attribute_new(t_symbol *s, long argc, t_atom *argv); -void xmltree_attribute_free(t_xmltree_attribute *x); - -// xmltree_text -void *xmltree_text_new(t_symbol *s, long argc, t_atom *argv); -t_xmltree_text *xmltree_text_splittext(t_xmltree_text *x, long offset); -void xmltree_text_free(t_xmltree_text *x); - -// xmltree_comment -void *xmltree_comment_new(t_symbol *s, long argc, t_atom *argv); -void xmltree_comment_free(t_xmltree_comment *x); - -// xmltree_cdata -void *xmltree_cdata_new(t_symbol *s, long argc, t_atom *argv); -t_xmltree_cdata *xmltree_cdata_splittext(t_xmltree_cdata *x, long offset); -void xmltree_cdata_free(t_xmltree_cdata *x); - -#ifdef __cplusplus -} -#endif - -#endif //_EXT_XMLTREE_H_ diff --git a/source/c74support/max-includes/indexmap.h b/source/c74support/max-includes/indexmap.h deleted file mode 100644 index 68ba8d1d..00000000 --- a/source/c74support/max-includes/indexmap.h +++ /dev/null @@ -1,174 +0,0 @@ -// indexmap.h copyright 2007 Cycling '74 all rights reserved - -#ifndef _INDEXMAP_H_ -#define _INDEXMAP_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "ext_hashtab.h" - -BEGIN_USING_C_LINKAGE - -#if !defined( _EXT_SYSTHREAD_H_ ) && !defined ( _SYSTHREAD_H_ ) -typedef void *t_systhread_mutex; -#endif - -/** An indexmap element. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup indexmap - @see t_indexmap -*/ -typedef struct _indexmap_entry -{ - long e_index; - void *e_data; - long e_mark; -} t_indexmap_entry; - - -/** An indexmap object. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup indexmap - @see t_indexmap_entry -*/ -typedef struct _indexmap -{ - t_object m_ob; - t_hashtab *m_data2index; // convert from a data reference to an indexmap_entry (and hence index) - t_indexmap_entry **m_index2data; // convert from an index to a data reference - long m_i2dsize; // size of index2data array - long m_count; // how many items - t_systhread_mutex m_mutex; // protector -} t_indexmap; - - -// private -- initialize the indexmap class -void indexmap_initclass(void); - - -/** Create a new indexmap object. - - @ingroup indexmap - @return Pointer to the new indexmap object. -*/ -t_indexmap *indexmap_new(void); - - -/** Add an item to an indexmap. - - @ingroup indexmap - @param x The indexmap instance. - @param data The item to add. -*/ -void indexmap_append(t_indexmap *x, void *data); - - -/** Move an item to a different position in an indexmap. - - @ingroup indexmap - @param x The indexmap instance. - @param data The item in the indexmap to move. - @param newindex The new index to which to move the item. - @return A Max error code. -*/ -t_max_err indexmap_move(t_indexmap *x, void *data, long newindex); - - -/** Delete a specified item from an indexmap. - - @ingroup indexmap - @param x The indexmap instance. - @param data The item pointer to remove from the indexmap. - @return A Max error code. -*/ -t_max_err indexmap_delete(t_indexmap *x, void *data); - - -/** Delete an item from the indexmap by index. - - @ingroup indexmap - @param x The indexmap instance. - @param index The index of the item to remove from the indexmap. - @return A Max error code. -*/ -t_max_err indexmap_delete_index(t_indexmap *x, long index); - - -/** Delete multiple specified items from an indexmap. - - @ingroup indexmap - @param x The indexmap instance. - @param count The number of items to remove from the indexmap. - @param pdata The address of the first of an array of item pointers to remove from the indexmap. - @return A Max error code. -*/ -t_max_err indexmap_delete_multi(t_indexmap *x, long count, void **pdata); - - -/** Delete multiple items from an indexmap by index. - - @ingroup indexmap - @param x The indexmap instance. - @param count The number of items to remove from the indexmap. - @param indices The address of the first of an array of index numbers to remove the indexmap. - @return A Max error code. -*/ -t_max_err indexmap_delete_index_multi(t_indexmap *x, long count, long *indices); - - -/** Get an item from an indexmap by index. - - @ingroup indexmap - @param x The indexmap instance. - @param index The index from which to fetch a stored item. - @return The item stored at the specified index. -*/ -void *indexmap_datafromindex(t_indexmap *x, long index); - - -/** Find the index of an item given a pointer to the item. - - @ingroup indexmap - @param x The indexmap instance. - @param data The item whose index you wish to look up. - @param index The address of a variable to hold the retrieved index. - @return A Max error code. -*/ -t_max_err indexmap_indexfromdata(t_indexmap *x, void *data, long *index); - - -/** Return the number of items in an indexmap. - - @ingroup indexmap - @param x The indexmap instance. - @return The number of items in the indexmap. -*/ -long indexmap_getsize(t_indexmap *x); - - -/** Delete all items in an indexmap. - - @ingroup indexmap - @param x The indexmap instance. -*/ -void indexmap_clear(t_indexmap *x); - - -/** Sort the items in an indexmap. - Item are sorted using a #t_cmpfn function that is passed in as an argument. - - @ingroup indexmap - @param x The indexmap instance. - @param fn The function used to sort the list. - @see linklist_sort() -*/ -void indexmap_sort(t_indexmap *x, t_cmpfn fn); - -void indexmap_insert(t_indexmap *x, long index, void *data); - - -END_USING_C_LINKAGE - -#endif // _INDEXMAP_H_ diff --git a/source/c74support/max-includes/jdataview.h b/source/c74support/max-includes/jdataview.h deleted file mode 100644 index a4031cb3..00000000 --- a/source/c74support/max-includes/jdataview.h +++ /dev/null @@ -1,840 +0,0 @@ -// jdataview.h copyright 2007 cycling '74 all rights reserved - - -#ifndef _JDATAVIEW_H_ -#define _JDATAVIEW_H_ - -#include "indexmap.h" -#include "jpatcher_api.h" -#include "jgraphics.h" - -// symbols used - -BEGIN_USING_C_LINKAGE - -extern t_symbol *ps_jdv_update; - -// a jdataview has columns - -// constants - -#define JDATAVIEW_CELLMAX MAX_PATH_CHARS // maximum number of chars in a cell, do not try to write more than - // this number to the text buffer supplied by the 'getcelltext' functions - -#define JCOLUMN_DEFAULT_WIDTH 50 -#define JCOLUMN_DEFAULT_MINWIDTH 50 -#define JCOLUMN_DEFAULT_MAXWIDTH 100 - -#define JCOLUMN_DEFAULT_FONTSIZE 10 - -#define JCOLUMN_DEFAULT_MAXTEXTLEN 256 - -// values for c_alignment - -enum { - JCOLUMN_ALIGN_LEFT = 1, - JCOLUMN_ALIGN_CENTER, - JCOLUMN_ALIGN_RIGHT -}; - -enum { - JCOLUMN_STYLE_PLAIN = 0, - JCOLUMN_STYLE_BOLD = 1, - JCOLUMN_STYLE_ITALIC = 2 -}; - -enum { - JCOLUMN_MOUSE_ENTER = 0, - JCOLUMN_MOUSE_MOVE = 1, - JCOLUMN_MOUSE_EXIT = 2 -}; - -enum { - JCOLUMN_SORTDIRECTION_FORWARD = 1, - JCOLUMN_SORTDIRECTION_BACKWARD = 0 -}; - -enum { - JCOLUMN_INITIALLYSORTED_NONE = 0, - JCOLUMN_INITIALLYSORTED_FORWARDS = 1, - JCOLUMN_INITIALLYSORTED_BACKWARDS = 2 -}; - -// kinds of JUCE component style columns (or cells within columns) - -enum { - JCOLUMN_COMPONENT_NONE = 0, - JCOLUMN_COMPONENT_CHECKBOX = 1, - JCOLUMN_COMPONENT_TEXTEDITOR = 2, // eventually alphanumeric and numeric variants - JCOLUMN_COMPONENT_SLIDER = 3, - JCOLUMN_COMPONENT_COLOR = 4, - JCOLUMN_COMPONENT_MENU = 5 -}; - -enum { - JCOLUMN_MENU_INDEX = 1, // report index chosen instead of value of item - JCOLUMN_MENU_FONTMENU = 2, // flag for showing a font menu - JCOLUMN_MENU_PAINT = 4, // cell is drawn with client paint method - JCOLUMN_MENU_SELECT = 8, // row is selected on mouse down - JCOLUMN_MENU_NOPANEL = 16, // for font menu, don't include the show fonts item - JCOLUMN_MENU_CLEARITEM = 32, // for font menu, include a clear item - JCOLUMN_MENU_STYLEMENU = 64, // show a menu of all current styles - JCOLUMN_MENU_FONTFIXEDWIDTHONLY = 128 -}; - -enum { - JCOLUMN_TEXT_ONESYMBOL = 1, - JCOLUMN_TEXT_COMMASEPARATED = 2, - JCOLUMN_TEXT_ICON = 4, - JCOLUMN_TEXT_HASBUTTON = 8, - JCOLUMN_TEXT_FILECHOOSEBUTTON = 16, - JCOLUMN_TEXT_VIEWBUTTON = 32, - JCOLUMN_TEXT_EDITBUTTON = 64, - JCOLUMN_TEXT_TIME = 128, - JCOLUMN_TEXT_FLOAT = 256, - JCOLUMN_TEXT_INT = 512, - JCOLUMN_TEXT_CANTEDIT = 1024, - JCOLUMN_TEXT_FONTSIZE = 2048, - // 4096 is JCOLUMN_DISABLED -- do not use - JCOLUMN_TEXT_FILTERED = 8192, - JCOLUMN_TEXT_STRINGOBJECT = 16384, - JCOLUMN_TEXT_PITCH = 32768, - JCOLUMN_TEXT_FILECLEARBUTTON = 65536, - JCOLUMN_TEXT_SCANBUTTON = 131072 -}; - -enum { - JCOLUMN_SLIDER_NOTEXTBOX = 1, - JCOLUMN_SLIDER_ZERO_TO_ONE = 2 -}; - -#define JCOLUMN_DISABLED 0x1000 - - -/** A dataview cell description. - @ingroup jdataview */ -typedef struct _celldesc -{ - long row; - long col; - void *section; - long data; -} t_celldesc; - - -/** A dataview column. - Columns for a given dataview are stored in a #t_hashtab and accessed by name. - @ingroup jdataview */ -typedef struct _col -{ - t_object c_obj; - void *obex; - t_symbol *c_name; ///< column name (hash) - t_object *c_dv; ///< parent dataview - int c_id; ///< id in DataViewComponent - long c_width; ///< column width in pixels - long c_maxwidth; ///< max column width - long c_minwidth; ///< min column width - char c_autosize; ///< determine width of text column automatically (true/false) - char c_alignment; ///< display of text, left, right, center - t_symbol *c_font; ///< name of font - long c_fontsize; ///< font size (points?) - t_symbol *c_label; ///< heading of column - char c_separator; ///< separator mode - char c_button; ///< column has a button (true/false) - t_symbol *c_buttonlabel; ///< text in a button - t_symbol *c_customsort; ///< message sent to sort this column -- if none, default sorting is used based on value c_numeric - char c_overridesort; ///< if true only the sortdata method is called, not the sort method (true/false) - t_symbol *c_custompaint; ///< send this msg name to client to paint this column - t_symbol *c_valuemsg; ///< message sent when a component mode cell's value changes - t_symbol *c_beginmsg; ///< message sent when a component mode cell's value is about to start changing - t_symbol *c_endmsg; ///< message sent when a component mode cell's value is finished changing - t_symbol *c_rowcomponentmsg;///< message sent to determine what kind of component should be created for each cell in a column - t_symbol *c_custommenuset; ///< message to set a menu (for a readonly or custompaint column) - t_symbol *c_custommenuresult; ///< message sent when an item is chosen from a custom menu - char c_editable; ///< can you edit the data in a cell in this column - char c_selectable; ///< can select the data in a cell in this column (possibly without being able to edit) - char c_multiselectable; ///< can you select more than one cell in this column - char c_sortable; ///< can you click on a column heading to sort the data - long c_initiallysorted; ///< if this is set to JCOLUMN_INITIALLYSORTED_FORWARDS the column is displayed with the sort triangle - long c_maxtextlen; ///< maximum text length: this is used to allocate a buffer to pass to gettext (but there is also a constant) - long c_sortdirection; ///< 0 for ascending, 1 for descending - long c_component; ///< enum of components (check box etc.) - char c_canselect; ///< can select entire column - char c_cancut; ///< can cut/clear entire column - char c_cancopy; ///< can copy entire column - char c_cancutcells; ///< can cut a single cell (assumes "editable" or "selectable") (probably won't be implemented) - char c_cancopycells; ///< can copy a single cell - char c_canpastecells; ///< can paste into a single cell - char c_hideable; ///< can the column be hidden - char c_hidden; ///< is the column hidden (set/get) - char c_numeric; ///< is the data numeric (i.e., is getcellvalue implemented) - char c_draggable; ///< can drag the column to rearrange it - char c_casesensitive; ///< use case sensitive sorting (applies only to default text sorting) - char c_showinfo; ///< show info button for cell clue on mouse over - void *c_reference; ///< reference for the use of the client - double c_indentspacing; ///< amount of space (in pixels) for one indent level - t_symbol *c_insertbefore; ///< name of column before which this one should have been inserted (used only once) - t_symbol *c_cellcluemsg; ///< message to send requesting clue text for a cell - t_symbol *c_celltextcolormsg; ///< message to get the cell's text color - t_symbol *c_celltextstylemsg; ///< message to get the cell's style and alignment - t_symbol *c_cellentermsg; ///< message for cell enter - t_symbol *c_cellexitmsg; ///< message for cell exit - t_symbol *c_cellmovedmsg; ///< message for cell mouse move - t_symbol *c_cellclickmsg; ///< message for custom cell click action -} t_jcolumn; - - -/** The dataview object. - @ingroup jdataview */ -typedef struct _jdataview -{ - t_object d_obj; - void *obex; - t_linklist *d_components; ///< list of DataViewComponents showing this dataview - t_object *d_client; ///< object that will be sent messages to get data to display - t_hashtab *d_columns; ///< columns -- point to t_jcolumn objects - t_hashtab *d_id2columns; ///< columns from column IDs - t_linklist *d_colorder; ///< current order of columns - void *d_rowmap_obsolete; ///< no longer used - long d_numcols; ///< number of columns - double d_rowheight; ///< fixed height of a row in pixels - char d_autoheight; ///< height determined by font - char d_hierarchical; ///< does it allow hierarchical disclosure (true / false) -- not implemented yet - t_jrgba d_rowcolor1; ///< odd row color (striped) - t_jrgba d_rowcolor2; ///< even row color - t_jrgba d_selectcolor; ///< color when rows are selected - t_jrgba d_bordercolor; ///< border color - char d_bordercolorset; ///< was border color set? if not, use JUCE default - char d_canselectmultiple; ///< multiple rows are selectable - char d_cancopy; ///< copy enabled - char d_cancut; ///< cut / clear enabled - char d_canpaste; ///< paste enabled - char d_canrearrangerows; ///< rows can be dragged to rearrange -- may not be implemented yet - char d_canrearrangecolumns; ///< columns can be dragged to rearrange - long d_viscount; ///< number of visible views of this dataview - long d_inset; ///< inset for table inside containing component in pixels - char d_autosizeright; ///< right side autosizes when top-level component changes - char d_autosizebottom; ///< bottom autosizes when top-level component changes - char d_dragenabled; ///< enabled for dragging (as in drag and drop) - t_symbol *d_fontname; ///< font name - double d_fontsize; ///< font size - t_symbol *d_colheadercluemsg; ///< message to send requesting clue text for the column headers - char d_autosizerightcolumn; ///< right column should stretch to remaining width of the dataview, regardless of column width - char d_customselectcolor; ///< send getcellcolor message to draw selected cell, don't use select color - void *d_qelem; ///< defer updating - double d_colheaderheight; - char d_drawgrid; - long d_top_inset; ///< vertical inset for row background (default 0) - long d_bottom_inset; ///< vertical inset for row background (default 0) - long d_borderthickness; ///< border line thickness default 0 for no border - char d_keyfocusable; ///< notify component to grab some keys - char d_enabledeletekey; ///< delete key will delete selected rows - char d_usegradient; ///< color rows with gradient between rowcolor1 (top) and rowcolor2 (bottom) - char d_inchange; ///< in change flag for inspector end-change protection system - char d_horizscrollvisible; ///< is horizontal scroll bar visible - char d_vertscrollvisible; ///< is vertical scroll bar visible - char d_scrollvisset; ///< has the scroll visibility ever been changed since the dv was created? - char d_overridefocus; ///< override default focus behavior where ListBox is focused when assigning focus to the dataview - char d_usesystemfont; ///< use system font (true by default) - t_object *d_searchcolumn; ///< column we ask for celltext in order to navigate the selection via the keyboard - t_object *d_returnkeycolumn;///< column that is sent the return key when a given row is selected - void *d_navcache; ///< sorted list of column strings for key navigation - char d_usecharheight; ///< use font specified in points rather than pixels (default is pixels) - t_linklist *d_sections; ///< list of sections - char d_paintcellseparator; ///< should paint a line below a cell (grayish) - t_object *d_sortset; ///< sort col saved when dv is invisible - char d_solidheadercolor; - t_jrgba d_headerbgcolor; - t_jrgba d_headertextcolor; - void *d_context; - char d_drawheadertopline; - char d_drawheaderbottomline; - t_jrgba d_headerlinecolor; - char d_showcolumnheadercaptions; -} t_jdataview; - - -// private -- used to notify a component of a jdataview change -typedef struct _jdv_notifier -{ - t_jdataview *n_dataview; - t_symbol *n_what; - void *n_data; -} t_jdv_notifier; - - -/** used to pass data to a client sort function - @ingroup jdataview */ -typedef struct _privatesortrec -{ - t_jcolumn *p_col; ///< column object to sort - char p_fwd; ///< 1 if sorting "forwards" - t_object *p_client; ///< pointer to the client object - t_jdataview *p_dv; ///< pointer to the dataview -} t_privatesortrec; - -typedef struct _jsection -{ - t_symbol *s_name; // section name - char s_open; // is section disclosed? - char s_headervisible; // is header visible? - t_indexmap *s_rowmap; // map of rowrefs to row indices - void *s_data; // some data (not used yet) - t_jsurface *s_icon; // associated icon to display in header - t_jrgba s_bgcolor; // background color - char s_solidcolor; // uses solid color, not gradient -} t_jsection; - -// private -void jdataview_initclass(void); - - -/** Create a dataview. - You should free it with object_free(). - @ingroup jdataview - @return A pointer to the new instance. */ -void *jdataview_new(void); - - -/** Set a dataview's client. - The client is the object to which the dataview will send messages to get data, - notify of changes to cells, etc. - Typically this is the object in which you are creating the dataview. - @ingroup jdataview - @param dv The dataview instance. - @param client The object to be assigned as the dataview's client. */ -void jdataview_setclient(t_object *dv, t_object *client); - -/** Get a pointer to a dataview's client. - The client is the object to which the dataview will send messages to get data, - notify of changes to cells, etc. - @ingroup jdataview - @param dv The dataview instance. - @return A pointer to the dataview's client object. */ -t_object *jdataview_getclient(t_object *dv); - -// section support - -void *jdataview_newsection(t_object *dv, char *name, void *assoc, t_jsurface *icon, char initiallyopen, char headervisible); -int jdataview_numsections(t_object *dv); -void *jdataview_getnthsection(t_object *dv, long index); -int jdataview_section_getnumrows(t_object *dv, void *section); -long jdataview_section_isopen(t_object *dv, void *section); -void jdataview_section_setopen(t_object *dv, void *section, long way); -void jdataview_getsectionopenness(t_object *dv, char **state); -void jdataview_setsectionopenness(t_object *dv, char *state); -long jdataview_section_headervisible(t_object *dv, void *section); -void jdataview_section_setheadervisible(t_object *dv, void *section, long way); -t_symbol *jdataview_section_getname(t_object *dv, void *section); -t_jsurface *jdataview_section_geticon(t_object *dv, void *section); - - -// make it visible - -void jdataview_patchervis(t_object *dv, t_object *pv, t_object *box); -void jdataview_patcherinvis(t_object *dv, t_object *pv); -void jdataview_obscuring(t_object *dv, t_object *pv); - -void jdataview_repaintforview(t_object *dv, t_object *patcherview); - -// set global attributes - -void jdataview_setheight(t_object *dv, long height); -long jdataview_getheight(t_object *dv); - -void jdataview_setautoheight(t_object *dv, long way); -short jdataview_getautoheight(t_object *dv); - -void jdataview_setcolumnheaderheight(t_object *dv, double height); -double jdataview_getcolumnheaderheight(t_object *dv); - -void jdataview_setrowcolor1(t_object *dv, t_jrgba *c); -void jdataview_getrowcolor1(t_object *dv, t_jrgba *c); -void jdataview_setrowcolor2(t_object *dv, t_jrgba *c); -void jdataview_getrowcolor2(t_object *dv, t_jrgba *c); - -void jdataview_getselectcolor(t_object *dv, t_jrgba *c); -void jdataview_setselectcolor(t_object *dv, t_jrgba *c); - -void jdataview_setusegradient(t_object *dv, long way); -long jdataview_getusegradient(t_object *dv); - -void jdataview_setcanselectmultiple(t_object *dv, long way); -short jdataview_getcanselectmultiple(t_object *dv); - -void jdataview_setcancopy(t_object *dv, long way); -short jdataview_getcancopy(t_object *dv); - -void jdataview_setcanpaste(t_object *dv, long way); -short jdataview_getcanpaste(t_object *dv); - -void jdataview_setinset(t_object *dv, long inset); -long jdataview_getinset(t_object *dv); - -void jdataview_setautosizeright(t_object *dv, long way); -long jdataview_getautosizeright(t_object *dv); - -void jdataview_setautosizebottom(t_object *dv, long way); -long jdataview_getautosizebottom(t_object *dv); - -void jdataview_setautosizerightcolumn(t_object *dv, long way); -long jdataview_getautosizerightcolumn(t_object *dv); - -void jdataview_setusecharheightfont(t_object *dv, long way); - -// standard containersizechange method for objects to use -// i.e., class_addmethod(c, jdataview_containersizechange, "containersizechange", A_CANT, 0); - -typedef long (*t_containersizechange_fun)(t_object *x, double cw, double ch, double *width, double *height, int asr, int asb); - -t_atom_long jdataview_containersizechange(t_object *x, double cw, double ch, double *width, double *height, int asr, int asb); - -t_max_err jdataview_gethorizscrollvalues(t_object *x, double *min, double *max, double *start, double *size); -void jdataview_sethorizscrollvalues(t_object *x, double start, double size); - -t_max_err jdataview_getvertscrollvalues(t_object *x, double *min, double *max, double *start, double *size); -void jdataview_setvertscrollvalues(t_object *x, double start, double size); - -t_max_err jdataview_setscrollvisible(t_object *x, long vbar, long hbar); - -void jdataview_setborderthickness(t_object *dv, long val); -long jdataview_getborderthickness(t_object *dv); - -void jdataview_setkeyfocusable(t_object *x, long val); -long jdataview_getkeyfocusable(t_object *x); - -void jdataview_focusgained(t_object *x, t_object *patcherview); -void jdataview_focuslost(t_object *x, t_object *patcherview); - -void jdataview_setenabledeletekey(t_object *dv, long way); -long jdataview_getenabledeletekey(t_object *dv); - -void jdataview_setfontname(t_object *dv, t_symbol *fontname); -t_symbol *jdataview_getfontname(t_object *dv); -void jdataview_setfontsize(t_object *dv, double fsize); -double jdataview_getfontsize(t_object *dv); - -double jdataview_getclientfontsize(t_object *dv); - -void jdataview_columnheadermouse(t_object *dv, t_object *col, long msg); - -int jdataview_getdragenabled(t_object *dv); -void jdataview_setdragenabled(t_object *dv, long way); - -void jdataview_setcolumnheadercluemsg(t_object *dv, t_symbol *msg); -t_symbol *jdataview_getcolumnheadercluemsg(t_object *dv); -void jdataview_getcolumnheaderclue(t_object *dv, t_object *col, const char **a, const char **b); -void jdataview_setshowcolumnheadercaptions(t_object *dv, long way); -long jdataview_getshowcolumnheadercaptions(t_object *dv); - -int jdataview_getdrawgrid(t_object *dv); -void jdataview_setdrawgrid(t_object *dv, int way); -void jdataview_setrowinset(t_object *dv, long top, long bottom); -void jdataview_getrowinset(t_object *dv, long *top, long *bottom); - -t_object *jdataview_getsearchcolumn(t_object *dv); -void jdataview_setsearchcolumn(t_object *dv, t_object *col); -void jdataview_setoverridefocus(t_object *dv, long way); -long jdataview_getoverridefocus(t_object *dv); - -void jdataview_setreturnkeycolumn(t_object *dv, t_object *col); -t_object *jdataview_getreturnkeycolumn(t_object *dv); - -int jdataview_keynavigate(t_object *dv, const char *buffer); - -// header color - -void jdataview_setheaderbgcolor(t_object *dv, t_jrgba *c); -void jdataview_setheadertextcolor(t_object *dv, t_jrgba *c); -void jdataview_getheaderbgcolor(t_object *dv, t_jrgba *c); -void jdataview_getheadertextcolor(t_object *dv, t_jrgba *c); -long jdataview_getheadersolidcolor(t_object *dv); -void jdataview_setheadersolidcolor(t_object *dv, long way); -long jdataview_getdrawheadertopline(t_object *dv); -void jdataview_setdrawheadertopline(t_object *dc, long way); -long jdataview_getdrawheaderbottomline(t_object *dv); -void jdataview_setdrawheaderbottomline(t_object *d, long way); - -// context - -void jdataview_setcontext(t_object *dv, void *context); -void *jdataview_getcontext(t_object *dv); - -// columns access - -t_object *jdataview_addcolumn(t_object *dv, t_symbol *name, t_symbol *before, short unused); -t_object *jdataview_addcolumn_hidden(t_object *dv, t_symbol *name, t_symbol *before, short unused); -void *jcolumn_new(void); -void jcolumn_free(t_jcolumn *x); -void jcolumn_setdataview(t_object *c, t_object *dv); - -void jdataview_colname_delete(t_object *dv, t_symbol *name); -void jdataview_deletecolumn(t_object *dv, t_object *col); -void jdataview_movecolumn(t_object *dv, t_object *col, long toindex); -t_object *jdataview_getnamedcolumn(t_object *dv, t_symbol *name); -t_object *jdataview_getnthcolumn(t_object *dv, long index); -int jdataview_colname2index(t_object *dv, t_symbol *name); -void jdataview_colname_setvisible(t_object *dv, t_symbol *name, long way); -short jdataview_colname_getvisible(t_object *dv, t_symbol *name); -int jdataview_getnumcolumns(t_object *dv); -int jdataview_column2visibleindex(t_object *dv, t_object *col); - -// column - -int jcolumn_getwidth(t_object *col); -void jcolumn_setwidth(t_object *col, long width); -int jcolumn_getmaxwidth(t_object *col); -void jcolumn_setmaxwidth(t_object *col, long width); -int jcolumn_getminwidth(t_object *col); -void jcolumn_setminwidth(t_object *col, long width); -long jcolumn_getid(t_object *col); -int jcolumn_getautosize(t_object *col); -void jcolumn_setautosize(t_object *col, long way); -void jcolumn_setdataview(t_object *col, t_object *dv); -t_symbol *jcolumn_getname(t_object *col); -void jcolumn_setname(t_object *col, t_symbol *name); -void jcolumn_setlabel(t_object *col, t_symbol *label); -t_symbol *jcolumn_getlabel(t_object *col); -void jcolumn_setinsertbefore(t_object *col, t_symbol *before); -t_symbol *jcolumn_getinsertbefore(t_object *col); -void jcolumn_setnumeric(t_object *col, long way); -int jcolumn_getnumeric(t_object *col); -void jcolumn_setcustomsort(t_object *col, t_symbol *msg); -t_symbol *jcolumn_getcustomsort(t_object *col); -void jcolumn_setoverridesort(t_object *col, char val); -char jcolumn_getoverridesort(t_object *col); -char jcolumn_getsortdirection(t_object *col); -void jcolumn_setcustompaint(t_object *col, t_symbol *msg); -t_symbol *jcolumn_getcustompaint(t_object *col); -void jcolumn_setcustommenu(t_object *col, t_symbol *setmsg, t_symbol *resultmsg); -t_symbol *jcolumn_getcustommenu_setmsg(t_object *col); -t_symbol *jcolumn_getcustommenu_resultmsg(t_object *col); -void jcolumn_setsortable(t_object *col, long way); -int jcolumn_getsortable(t_object *col); -void jcolumn_setdraggable(t_object *col, long way); -int jcolumn_getdraggable(t_object *col); -void jcolumn_setinitiallysorted(t_object *col, long way); -int jcolumn_getinitiallysorted(t_object *col); -void jcolumn_sethideable(t_object *col, long way); -int jcolumn_gethideable(t_object *col); -void jcolumn_setvisible(t_object *col, long way); -int jcolumn_getvisible(t_object *col); -void jcolumn_setcasesensitive(t_object *col, long way); -int jcolumn_getcasesensitive(t_object *col); -void jcolumn_setreference(t_object *col, void *ref); -void *jcolumn_getreference(t_object *col); -void jcolumn_setcheckbox(t_object *col, t_symbol *msg); -void jcolumn_setvaluemsg(t_object *col, t_symbol *msg, t_symbol *beginmsg, t_symbol *endmsg); -t_symbol *jcolumn_getvaluemsg(t_object *col); -t_symbol *jcolumn_getbeginchangemsg(t_object *col); -t_symbol *jcolumn_getendchangemsg(t_object *col); -int jcolumn_getcomponent(t_object *col); -void jcolumn_setrowcomponentmsg(t_object *col, t_symbol *msg); -t_symbol *jcolumn_getrowcomponentmsg(t_object *col); -double jcolumn_getindentspacing(t_object *col); -void jcolumn_setindentspacing(t_object *col, double spacing); - -void jcolumn_setcellcluemsg(t_object *col, t_symbol *msg); -t_symbol *jcolumn_getcellcluemsg(t_object *col); -t_symbol *jcolumn_getcelltextcolormsg(t_object *col); -void jcolumn_setcelltextcolormsg(t_object *col, t_symbol *msg); -t_symbol *jcolumn_getcelltextstylemsg(t_object *col); -void jcolumn_setcelltextstylemsg(t_object *col, t_symbol *msg); - -void jcolumn_setcellentermsg(t_object *col, t_symbol *msg); -void jcolumn_setcellexitmsg(t_object *col, t_symbol *msg); -void jcolumn_setcellmovedmsg(t_object *col, t_symbol *msg); -void jcolumn_setcellclickmsg(t_object *col, t_symbol *msg); - -void jcolumn_setshowinfobutton(t_object *col, long way); -long jcolumn_getshowinfobutton(t_object *col); - -t_symbol *jcolumn_getcellentermsg(t_object *col); -t_symbol *jcolumn_getcellexitmsg(t_object *col); -t_symbol *jcolumn_getcellmovedmsg(t_object *col); -t_symbol *jcolumn_getcellclickmsg(t_object *col); - -// visual update of a change to a column - -void jcolumn_update(t_object *col, t_symbol *msg); - -// define a column based on a dictionary - -t_object *jdataview_addcolumnfromdictionary(t_object *dv, t_object *d); - -// adding rows - -// a row reference is a way of distinguishing a row to the owning object. This is up to the object whose data is being displayed. -// for example, it could be a pointer to an entry in a database -// or if you are displaying attributes it could be a symbol - -typedef void *t_rowref; - -void jdataview_addrowtosection(t_object *dv, void *section, t_rowref rr); -void jdataview_addrow(t_object *dv, t_rowref rr); -void jdataview_addrowstosection(t_object *dv, void *section, long count, t_rowref *rrs); -void jdataview_addrows(t_object *dv, long count, t_rowref *rrs); - -void jdataview_insertrow(t_object *dv, long loc, t_rowref rr); -void jdataview_insertrowinsection(t_object *dv, void *section, long loc, t_rowref rr); -void jdataview_deleterowfromsection(t_object *dv, void *section, t_rowref rr); -void jdataview_deleterow(t_object *dv, t_rowref rr); -void jdataview_deleterowsfromsection(t_object *dv, void *section, long count, t_rowref *rrs); -void jdataview_deleterows(t_object *dv, long count, t_rowref *rrs); -void jdataview_deleteselectedrows(t_object *dv); -void jdataview_deleteselectedrowsforview(t_object *dv, t_object *patcherview); -void jdataview_clear(t_object *dv); -int jdataview_getnumrows(t_object *dv); -void jdataview_gettextinrows(t_object *dv, t_rowref *rows, char *cellsep, char **text); -int jdataview_selectedrowcountforview(t_object *dv, t_object *patcherview); -int jdataview_selectedrowcount(t_object *dv); -t_rowref *jdataview_getallrows(t_object *dv); -t_rowref *jdataview_section_getallrows(t_object *dv, void *section, long *count); -t_rowref *jdataview_getselectedrowsforview(t_object *dv, t_object *patcherview); -t_rowref *jdataview_getselectedrows(t_object *dv); -t_bool jdataview_has_selection(t_object *dv); -void jdataview_applytoselectedrows(t_object *dv, t_symbol *msg, long bycell); -void jdataview_applytorows(t_object *dv, t_symbol *msg, long bycell, t_rowref *srs); - -void jdataview_enablerow(t_object *dv, t_rowref rr, long way); - -void jdataview_selectall(t_object *dv); -void jdataview_selectallforview(t_object *dv, t_object *patcherview); -void jdataview_selectnone(t_object *dv); -void jdataview_selectnoneforview(t_object *dv, t_object *patcherview); - -// row and column conversion (used by DataViewComponent mostly) - -t_object *jdataview_id2column(t_object *dv, int id); -t_symbol *jdataview_id2colname(t_object *dv, int id); -int jdataview_colname2id(t_object *dv, t_symbol *name); -int jdataview_column2id(t_object *dv, t_object *col); -int jdataview_row2id(t_object *dv, t_rowref rr, void **section); -t_rowref jdataview_id2row(t_object *dv, void *section, int id); - -void jdataview_showrow(t_object *dv, t_rowref rr); - -// cells - -void jdataview_celldesc(t_jdataview *x, t_symbol *colname, t_rowref rr, t_celldesc *desc); -void jdataview_selectcellinview(t_object *dv, t_object *pv, t_symbol *colname, t_rowref rr); -void jdataview_selectcell(t_object *dv, t_symbol *colname, t_rowref rr); -int jdataview_getcelltextlength(t_object *dv, t_symbol *colname, t_rowref rr, long *length); -int jdataview_getcelltext(t_object *dv, t_symbol *colname, t_rowref rr, char *text, long maxlen); -int jdataview_getcellunits(t_object *dv, t_symbol *colname, t_rowref rr, char *text, long maxlen); -int jdataview_setcellunits(t_object *dv, t_symbol *colname, t_rowref rr, t_symbol *val); -int jdataview_getcellunitsyms(t_object *dv, t_symbol *colname, t_rowref rr, long *argc, t_atom **argv); -int jdataview_getcelldescription(t_object *dv, t_symbol *colname, t_rowref rr, char *text); -int jdataview_getcellvalue(t_object *dv, t_symbol *colname, t_rowref rr, long *argc, t_atom *argv); -void jdataview_getcelltextcolor(t_object *dv, t_symbol *colname, t_rowref rr, t_jrgba *color); -void jdataview_getcelltextstyle(t_object *dv, t_symbol *colname, t_rowref rr, long *style, long *align); -int jdataview_getcellmenu(t_object *dv, t_symbol *colname, t_rowref rr, long *argc, t_atom *argv, char **enabled, long *currentitemindex); -int jdataview_getcelltooltip(t_object *dv, t_symbol *colname, t_rowref rr, t_rect *cellrect, char *text, long maxlen); -void jdataview_setcellvalue(t_object *dv, t_symbol *colname, t_rowref rr, long argc, t_atom *argv); -void jdataview_editcell(t_object *dv, t_symbol *colname, t_rowref rr); -int jdataview_iscelltextselected(t_object *dv, char justfocused); -void jdataview_cellclear(t_object *dv); -void jdataview_cellcut(t_object *dv); -void jdataview_cellcopy(t_object *dv); -void jdataview_cellpaste(t_object *dv); - -int jdataview_getcellcomponent(t_object *dv, t_symbol *colname, t_rowref rr, long *options, t_symbol **label); -int jdataview_getcellfiletypes(t_object *dv, t_symbol *colname, t_rowref rr, long *count, t_fourcc **types, char *alloc); -t_symbol *jdataview_getcellfilterval(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_redrawcell(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_redrawcolumn(t_object *dv, t_symbol *colname); -void jdataview_begincellchange(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_endcellchange(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_selected(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_selectedrow(t_object *dv, t_rowref rr); -void jdataview_doubleclick(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_contextualclick(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_getcellicon(t_object *dv, t_symbol *colname, t_rowref rr, t_jsurface **surf); -void jdataview_getrowcolor(t_object *dv, t_rowref rr, long isoddrow, t_jrgba *c); -int jdataview_colorbycell(t_object *dv); -void jdataview_getcellcolor(t_object *dv, t_symbol *colname, t_rowref rr, long isoddrow, t_jrgba *c); -int jdataview_getcustomselectcolor(t_object *dv); -void jdataview_setcustomselectcolor(t_object *dv, int way); -double jdataview_getcellindent(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_cellenter(t_object *dv, t_symbol *colname, t_rowref rr, int px, int py); -void jdataview_cellexit(t_object *dv, t_symbol *colname, t_rowref rr, int px, int py); -void jdataview_cellmove(t_object *dv, t_symbol *colname, t_rowref rr, int px, int py); -void jdataview_cellclick(t_object *dv, t_symbol *colname, t_rowref rr, int px, int py); - -void jdataview_setfontmenurow(t_object *dv, t_rowref rr); - -t_atom_long jdataview_getcelleditable(t_object *dv, t_symbol *colname, t_rowref rr); - -long jdataview_getbordercolor(t_object *dv, t_jrgba *c); // returns non-zero if border color set -void jdataview_setbordercolor(t_object *dv, t_jrgba *c); - -long jdataview_getusesystemfont(t_object *dv); -void jdataview_setusesystemfont(t_object *dv, long way); - -void jdataview_enablecell(t_object *dv, t_symbol *colname, t_rowref rr, long way); -void jdataview_forcecellvisible(t_object *x, t_symbol *colname, t_rowref rr); -void jdataview_scrolltosection(t_object *dv, void *section); -void jdataview_scrolltotop(t_object *dv); - -int jdataview_getpaintcellseparator(t_object *dv); -void jdataview_setpaintcellseparator(t_object *dv, int way); - -void jdataview_getcellclue(t_object *dv, t_symbol *colname, t_rowref rr, char **str); - - -// DataViewComponent calls this for a custom paint method for a column - -void jdataview_clientpaintcell(t_object *dv, t_symbol *msg, t_object *pv, t_symbol *colname, t_rowref rr, int width, int height, int rowIsSelected, int rowNumber); - -// custom paint method should be declared as: -// void myobject_paint(t_myobject *x, t_object *patcherview, t_symbol *colname, t_rowref rr, int width, int height, int rowIsSelected) -// to obtain the graphics context call patcherview_getjgraphics() on the patcherview arg -// use jcolumn_setcustompaint to set the message symbol for this method for a column - -// the jdataview doesn't hold data. It just sends messages to an owning object to display it -// the messages may be cached for speed. The first level interface just defines a textual -// display. Eventually there will be a custom component for a row. - -// sorting: columns can be textual (c_numeric == 0) or numeric or they can define a custom sort -// method by calling jcolumn_setcustomsort to a symbol. This symbol names a method that will be -// called to sort the data for this column. It is of the form: -// long myobject_sort(t_rowref a, t_rowref b) -- which will be passed two rowrefs. In addition, -// custom sort clients need to implement the sortdata message, which is passed a pointer to -// a t_privatesortrec. It needs to store this statically as it is sent before the custom sort message is -// received. -void jdataview_getcolumnmenuforcell(t_object *dv, t_symbol *colname, t_rowref rr, long *argc, t_atom **argv, char **enabled); -void jdataview_cellcolumnmenuresult(t_object *dv, t_symbol *colname, t_rowref rr, long result); - -void jdataview_sortcolumn(t_object *x, t_symbol *colname, int fwd); -void jdataview_sort(t_object *x, t_symbol *colname, int fwd); -void jdataview_resort(t_object *x); -long jdataview_getsortcolumn(t_object *x); - -// selection - -void jdataview_selectcell(t_object *dv, t_symbol *colname, t_rowref rr); -void jdataview_selectrow(t_jdataview *x, t_rowref rr, t_bool unselect); -void jdataview_selectcolumn(t_jdataview *x, t_symbol *colname); -void jdataview_selectallrows(t_jdataview *x); - -long jdataview_iscellselected(t_jdataview *x, t_symbol *colname, t_rowref rr); -long jdataview_isrowselected(t_jdataview *x, t_rowref rr); -long jdataview_iscolumnselected(t_jdataview *x, t_symbol *colname); - -void jdataview_savecolumnwidths(t_object *dv, t_dictionary **d); -void jdataview_restorecolumnwidths(t_object *dv, t_dictionary *d); - -void jdataview_updatefontpanelforclient(t_object *dv, long show); - -void jdataview_unselected(t_object *dv); - -// utilities for painting - -void jdataview_redrawrow(t_object *dv, t_rowref rr); - - - - -#ifdef CUSTOMPAINT -void jdataview_getcellrect(t_jdataview *x, t_symbol *colname, t_rowref rr, t_rect *r); -t_max_err jdataview_jgraphics_from_paintcontext(t_jdataview *x, void *ctx, t_jgraphics **g); -#endif - -// handle resizing - -long jdataview_containersize(t_object *dv, t_object *box, double cw, double ch, double *width, double *height); - -void jdataview_forcecellvisible(t_object *x, t_symbol *colname, t_rowref rr); - - -// messages to the owner - -t_object *jdataview_getrowobject(t_object *dv, t_rowref rr); // return object associated with the row, if any (used for dragging) - -void jdataview_entermodalstate(t_object *dv, long way); - -void *jdataview_getdragreceiver(t_object *dv); - -long jdataview_getpaintoverchildren(t_object *dv); -void jdataview_paintoverchildren(t_object *dv, t_object *pv); - -/* - --- "columncreated": notification of a column being created - -void myobject_columncreated(t_myobject *x, t_symbol *colname); - --- "rowadded" / "rowdeleted": notification of a row being added / deleted - -void myobject_rowadded(t_myobject *x, t_rowref rr); -void myobject_rowdeleted(t_myobject *x, t_rowref rr); - --- "sortstarted": notification of a sort starting (will get sort messages) - -void myobject_sortstarted(t_myobject *x, t_symbol *colname, long direction); - --- "compare": sort the data according to column / direction, return 1 if r1 > r2, -1 if r2 > r1 - -long myobject_compare(t_myobject *x, t_symbol *colname, long direction, t_rowref r1, t_rowref r2); - --- "gettext": get string to show in a cell - -void myobject_gettext(t_myobject *x, t_symbol *colname, t_rowref rr, char *text); - --- "editstarted": notification that editing is starting in a cell - -void myobject_editstarted(t_myobject *x, t_symbol *colname, t_rowref rr); - --- "editentered": editing has finished and here is some new text for a cell - -void myobject_editenter(t_myobject *x, t_symbol *colname, t_rowref rr, char *newtext); - -// plus, a message specific to a button clicked in a cell (this allows for multiple buttons per column) - -void myobject_buttonmessage(t_myobject *x, t_symbol *colname, t_rowref rr, t_symbol *msg); - -// editing operations, "cutcell", "copycell", "pastecell", "clearcell" - -void myobject_cutcell(t_myobject *x, t_symbol *colname, t_rowref rr); -void myobject_copycell(t_myobject *x, t_symbol *colname, t_rowref rr); -void myobject_pastecell(t_myobject *x, t_symbol *colname, t_rowref rr); -void myobject_clearcell(t_myobject *x, t_symbol *colname, t_rowref rr); - -// "cutcolumn", "copycolumn", "pastecolumn", "clearcolumn" - -void myobject_cutcolumn(t_myobject *x, t_symbol *colname); -void myobject_copycolumn(t_myobject *x, t_symbol *colname); -void myobject_pastecolumn(t_myobject *x, t_symbol *colname); -void myobject_clearcolumn(t_myobject *x, t_symbol *colname); - -// "cutrow", "copyrow", "pasterow", "clearrow", "deleterow" - -void myobject_cutrow(t_myobject *x, t_rowref rr); -void myobject_copyrow(t_myobject *x, t_rowref rr); -void myobject_pasterow(t_myobject *x, t_rowref rr); -void myobject_clearrow(t_myobject *x, t_rowref rr); -void myobject_deleterow(t_myobject *x, t_rowref rr); - -// customization: an object can have a paintcell method instead of displaying text - -void myobject_paintcell(t_myobject *x, t_symbol *colname, t_rowref rr, void *ctx); - -// implementation notes: - -JUCE refreshComponentForCell needs to have the ability to create a custom component given a -class name. How can that be done, with templates? - -Yes you can use template argument passed to new, i.e., - -template -blah::blah -{ - foo (which could be a member of blah?) = new T; -} - -*/ - -END_USING_C_LINKAGE - -#endif // _JDATAVIEW_H_ diff --git a/source/c74support/max-includes/jgraphics.h b/source/c74support/max-includes/jgraphics.h deleted file mode 100644 index ecd2989c..00000000 --- a/source/c74support/max-includes/jgraphics.h +++ /dev/null @@ -1,2155 +0,0 @@ -#ifndef _JGRAPHICS_H_ -#define _JGRAPHICS_H_ - -#include "ext_prefix.h" -#include "jpatcher_api.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -// opaque types for the users of jgraphics -#ifdef __cplusplus -struct t_jgraphics; -struct t_jpath; -struct t_jpattern; -struct t_jfont; -struct t_jtextlayout; -struct t_jtransform; -struct t_jsurface; -struct t_jdesktopui; -struct t_jpopupmenu; -struct t_jsvg; -struct t_jsvg_remap; -struct t_dpi_awareness_context; -#else -typedef struct _jgraphics t_jgraphics; ///< An instance of a jgraphics drawing context. @ingroup jgraphics -typedef struct _jpath t_jpath; ///< An instance of a jgraphics path. @ingroup jgraphics -typedef struct _jpattern t_jpattern; ///< An instance of a jgraphics pattern. @ingroup jpattern -typedef struct _jfont t_jfont; ///< An instance of a jgraphics font. @ingroup jfont -typedef struct _jtextlayout t_jtextlayout; ///< An instance of a jgraphics text layout object. @ingroup jgraphics -typedef struct _jtransform t_jtransform; ///< An instance of a jgraphics transform. @ingroup jgraphics -typedef struct _jsurface t_jsurface; ///< An instance of a jgraphics surface. @ingroup jsurface -typedef struct _jdesktopui t_jdesktopui; ///< An instance of a transparent UI window on the desktop @ingroup jgraphics -typedef struct _jpopupmenu t_jpopupmenu; ///< An instance of a pop-up menu. @ingroup jgraphics -typedef struct _jsvg t_jsvg; ///< An instance of an SVG object. @ingroup jgraphics -typedef struct _jsvg_remap t_jsvg_remap; ///< An object used for remapping colors in a t_svg. @ingroup jgraphics -typedef struct _dpi_awareness_context t_dpi_awareness_context; -#endif - - -// pre-defined colors -- internal use only -- not exported from the kernel - -extern t_jrgb s_jrgb_white; // White -extern t_jrgb s_jrgb_black; // Black -extern t_jrgb s_jrgb_red; // Red -extern t_jrgb s_jrgb_green; // Green -extern t_jrgb s_jrgb_blue; // Blue -extern t_jrgb s_jrgb_yellow; // Yellow -extern t_jrgb s_jrgb_cyan; // Cyan -extern t_jrgb s_jrgb_magenta; // Magenta -extern t_jrgb s_jrgb_gray; // Gray -extern t_jrgb s_jrgb_boxgray; // Box Gray - -/** Determine the coordinate of the bottom of a rect. - @ingroup jgraphics */ -#define JGRAPHICS_RECT_BOTTOM(rect) (((rect)->y)+((rect)->height)) - -/** Determine the coordinate of the right side of a rect. - @ingroup jgraphics */ -#define JGRAPHICS_RECT_RIGHT(rect) (((rect)->x)+((rect)->width)) - - -// misc utilities - -/** Utility macro to return the value of Pi. @ingroup jgraphics */ -#define JGRAPHICS_PI (3.1415926535897932384626433832795028842) - -/** Utility macro to return the value of twice Pi. @ingroup jgraphics */ -#define JGRAPHICS_2PI (2. * 3.1415926535897932384626433832795028842) - -/** Utility macro to return the value of half of Pi. @ingroup jgraphics */ -#define JGRAPHICS_PIOVER2 (0.5 * 3.1415926535897932384626433832795028842) - -/** Utility macro to return the 270º Case. @ingroup jgraphics */ -#define JGRAPHICS_3PIOVER2 ((3.0 * JGRAPHICS_PI) / 2.0) - - -typedef enum _jgraphics_line_join { - JGRAPHICS_LINE_JOIN_MITER, - JGRAPHICS_LINE_JOIN_ROUND, - JGRAPHICS_LINE_JOIN_BEVEL -} t_jgraphics_line_join; - -typedef enum _jgraphics_line_cap { - JGRAPHICS_LINE_CAP_BUTT, - JGRAPHICS_LINE_CAP_ROUND, - JGRAPHICS_LINE_CAP_SQUARE -} t_jgraphics_line_cap; - -typedef enum _jgraphics_bubble_side { - JGRAPHICS_BUBBLE_SIDE_TOP, - JGRAPHICS_BUBBLE_SIDE_LEFT, - JGRAPHICS_BUBBLE_SIDE_BOTTOM, - JGRAPHICS_BUBBLE_SIDE_RIGHT -} t_jgraphics_bubble_side; - -typedef enum _jgraphics_path_elemtype { - JGRAPHICS_PATH_STARTNEWSUBPATH, - JGRAPHICS_PATH_LINETO, - JGRAPHICS_PATH_QUADRATICTO, - JGRAPHICS_PATH_CUBICTO, - JGRAPHICS_PATH_CLOSEPATH -} t_jgraphics_path_type; - - -/** Utility for rounding a double to an int. - @ingroup jgraphics - @param d floating-point input. - @return rounded int output. */ -int jgraphics_round(double d); - -// surfaces - -/** Enumeration of color formats used by jgraphics surfaces. - @ingroup jgraphics */ -typedef enum _jgraphics_format { - JGRAPHICS_FORMAT_ARGB32, ///< Color is represented using 32 bits, 8 bits each for the components, and including an alpha component. - JGRAPHICS_FORMAT_RGB24, ///< Color is represented using 32 bits, 8 bits each for the components. There is no alpha component. - JGRAPHICS_FORMAT_A8 ///< The color is represented only as an 8-bit alpha mask. -// JGRAPHICS_FORMAT_A1 // not supported -} t_jgraphics_format; - - -/** Enumeration of file formats usable for jgraphics surfaces. - @ingroup jgraphics */ -typedef enum _jgraphics_fileformat { - JGRAPHICS_FILEFORMAT_PNG, ///< Portable Network Graphics (PNG) format - JGRAPHICS_FILEFORMAT_JPEG ///< JPEG format -} t_jgraphics_fileformat; - - -/** Create an image surface. - Use jgraphics_surface_destroy() to free it when you are done. - @ingroup jsurface - @param format Defines the color format for the new surface. - @param width Defines the width of the new surface. - @param height Defines the height of the new surface. - @return A pointer to the new surface. */ -t_jsurface* jgraphics_image_surface_create(t_jgraphics_format format, int width, int height); - - -/** Create an image surface, filling it with the contents of a file, and get a reference to the surface. - Use jgraphics_surface_destroy() to release your reference to the surface when you are done. - @ingroup jsurface - @param filename The name of the file. - @param path The path id of the file. - @return A pointer to the new surface. */ -t_jsurface *jgraphics_image_surface_create_referenced(const char *filename, short path); - - -/** Create an image surface, filling it with the contents of a file. - Use jgraphics_surface_destroy() to free it when you are done. - @ingroup jsurface - @param filename The name of the file. - @param path The path id of the file. - @return A pointer to the new surface. */ -t_jsurface* jgraphics_image_surface_create_from_file(const char *filename, short path); - - -/** Create an image surface from given pixel data. - Data should point to start of top line of bitmap, stride tells how to get to next line. - For upside down windows bitmaps, data = (pBits-(height-1)*stride) and stride is a negative number. - @ingroup jsurface - @param data The data. For example, an RGBA image loaded in memory. - @param format The format of the data. - @param width The width of the new surface. - @param height The height of the new surface. - @param stride The number of bytes between the start of rows in the dat buffer. - @param freefun If not NULL, freefun will be called when the surface is destroyed - @param freearg This will be passed to freefun if/when freefun is called. - @return A pointer to the new surface. */ -t_jsurface* jgraphics_image_surface_create_for_data(unsigned char *data, t_jgraphics_format format, - int width, int height, int stride, - method freefun, void *freearg); - -// Internal Use Only -t_jsurface* jgraphics_image_surface_create_for_data_premult(unsigned char *data, t_jgraphics_format format, - int width, int height, int stride, - method freefun, void *freearg); - -/** Create a new surface from file data. - @ingroup jsurface - @param data A pointer to the raw PNG or JPG bits. - @param datalen The number of bytes in data. - @return The new surface. - @see jgraphics_write_image_surface_to_filedata() */ -t_jsurface* jgraphics_image_surface_create_from_filedata(const void *data, unsigned long datalen); - - -/** Create a new surface from a resource in your external. - @ingroup jsurface - @param moduleRef A pointer to your external's module, - which is passed to your external's main() function when the class is loaded. - @param resname The name of the resource in the external. - @remark The following example shows an example of how this might be used in an external. - @code - static s_my_surface = NULL; - - int main(void *moduleRef) - { - // (Do typical class initialization here) - - // now create the surface from a resource that we added to the Xcode/VisualStudio project - s_my_surface = jgraphics_image_surface_create_from_resource(moduleRef, "myCoolImage"); - - return 0; - } - @endcode */ -t_jsurface* jgraphics_image_surface_create_from_resource(const void* moduleRef, const char *resname); - -/** Low-level routine to access an object's resource data. - @ingroup jsurface - @param moduleRef A pointer to your external's module, which is passed to your external's main() function when the class is loaded. - @param resname Base name of the resource data (without an extension) - @param extcount Count of possible extensions (ignored on Windows) - @param exts Array of symbol atoms containing possible filename extensions (ignored on Windows) - @param data Returned resource data assigned to a pointer you supply - @param datasize Size of the data returned - @remark You are responsible for freeing any data returned in the data pointer - @return A Max error code. */ -t_max_err jgraphics_get_resource_data(const void *moduleRef, const char *resname, long extcount, t_atom *exts, void **data, unsigned long *datasize); - -/** Create a reference to an existing surface. - Use jgraphics_surface_destroy() to release your reference to the surface when you are done. - @ingroup jsurface - @param s The surface to reference. - @return The new reference to the surface. */ -t_jsurface* jgraphics_surface_reference(t_jsurface *s); - - -/** Release or free a surface. - @ingroup jsurface - @param s The surface to release. */ -void jgraphics_surface_destroy(t_jsurface *s); - - -/** Export a PNG file of the contents of a surface. - @ingroup jsurface - @param surface The surface to export. - @param filename Specify the name of the file to create. - @param path Specify the path id for where to create the file. - @param dpi Define the resolution of the image (e.g. 72). - @return A Max error code. */ -t_max_err jgraphics_image_surface_writepng(t_jsurface *surface, const char *filename, short path, long dpi); - -/** Export a JPEG file of the contents of a surface. - @ingroup jsurface - @param surface The surface to export. - @param filename Specify the name of the file to create. - @param path Specify the path id for where to create the file. - @return A Max error code. */ -t_max_err jgraphics_image_surface_writejpeg(t_jsurface *surface, const char *filename, short path); - - -// Not used by any C74 code... -void jgraphics_surface_set_device_offset(t_jsurface *s, double x_offset, double y_offset); -void jgraphics_surface_get_device_offset(t_jsurface *s, double *x_offset, double *y_offset); - - -/** Retrieve the width of a surface. - @ingroup jsurface - @param s The surface to query. - @return The width of the surface. */ -int jgraphics_image_surface_get_width(t_jsurface *s); - -/** Retrieve the height of a surface. - @ingroup jsurface - @param s The surface to query. - @return The height of the surface. */ -int jgraphics_image_surface_get_height(t_jsurface *s); - -/** Set the color of an individual pixel in a surface. - @ingroup jsurface - @param s The surface. - @param x The horizontal coordinate of the pixel. - @param y The vertical coordinate of the pixel. - @param color The color of the pixel. */ -void jgraphics_image_surface_set_pixel(t_jsurface *s, int x, int y, t_jrgba color); - -/** Retrieve the color of an individual pixel in a surface. - @ingroup jsurface - @param s The surface. - @param x The horizontal coordinate of the pixel. - @param y The vertical coordinate of the pixel. - @param color The address of a valid #t_jrgba struct - whose values will be filled in with the color of the pixel upon return. */ -void jgraphics_image_surface_get_pixel(t_jsurface *s, int x, int y, t_jrgba *color); - -/** - @ingroup jsurface - @param s The surface to scroll. - @param x The origin of the rect to scroll. - @param y The origin of the rect to scroll. - @param width The width of the rect to scroll. - @param height The height of the rect to scroll. - @param dx The amount to scroll the surface horizontally. - @param dy The amount to scroll the surface vertically. - @param path Can pass NULL if you are not interested in this info. - Otherwise pass a pointer and it will be returned with a path containing the invalid region. -*/ -void jgraphics_image_surface_scroll(t_jsurface *s, - int x, int y, int width, int height, - int dx, int dy, - t_jpath **path); // - - -// The lockpixels methods are for C74 internal use only. Use jgraphics_image_surface_create_for_data(). - -/* Get a read-only raw bitmap of a surface. - This gives you a pointer to the raw bitmap data so you can read from it yourself and examine the stuff that was drawn. - The jgraphics_image_surface_lockpixels() version gives you a pointer to the bits that you can directly munge. - After either call you should make the appropriate unlock call. - @ingroup jsurface - @param s The surface. - @param x The rect horizontal-origin for the raw bitmap. - @param y The rect vertical-origin for the raw bitmap. - @param width The rect width for the bitmap. - @param height The rect height for the bitmap. - @param linestride The line stride for the bitmap. - @param pixelstride The pixel stride for the bitmap. - @return A pointer to the raw bitmap. */ -const unsigned char* jgraphics_image_surface_lockpixels_readonly(t_jsurface *s, - int x, int y, int width, int height, - int *linestride, int *pixelstride); -/* Unlock a surface locked by jgraphics_image_surface_lockpixels_readonly(). - @ingroup jsurface - @param s The surface. - @param data The pointer returned by jgraphics_image_surface_lockpixels_readonly(). */ -void jgraphics_image_surface_unlockpixels_readonly(t_jsurface *s, const unsigned char *data); - - -/* Get a writable bitmap of a surface. - After you are done reading/writing to the bitmap, you should call jgraphics_image_surface_unlockpixels(). - @ingroup jsurface - @param s The surface. - @param x The rect horizontal-origin for the raw bitmap. - @param y The rect vertical-origin for the raw bitmap. - @param width The rect width for the bitmap. - @param height The rect height for the bitmap. - @param linestride The line stride for the bitmap. - @param pixelstride The pixel stride for the bitmap. - @return A pointer to the raw bitmap. */ -unsigned char* jgraphics_image_surface_lockpixels(t_jsurface *s, - int x, int y, int width, int height, - int *linestride, int *pixelstride); - -/* Unlock a surface locked by jgraphics_image_surface_lockpixels(). - @ingroup jsurface - @param s The surface. - @param data The pointer returned by jgraphics_image_surface_lockpixels(). */ -void jgraphics_image_surface_unlockpixels(t_jsurface *s, unsigned char *data); - - -/** Draw an image surface. - This not in cairo, but, it seems silly to have to make a brush to just draw an image. - This doesn't support rotations, however. - @ingroup jsurface - @param g The graphics context in which to draw the surface. - @param s The surface to draw. - @param srcRect The rect within the surface that should be drawn. - @param destRect The rect in the context to which to draw the srcRect. - @see jgraphics_image_surface_draw_fast() */ -void jgraphics_image_surface_draw(t_jgraphics *g, t_jsurface *s, t_rect srcRect, t_rect destRect); - - -/** Draw an image surface quickly. - The draw_fast version won't scale based on zoom factor or user transforms so make sure that this is what you want! - Draws entire image, origin *can* be shifted via zoom and user transforms - (even though image is not scaled based on those same transforms) - @ingroup jsurface - @param g The graphics context in which to draw the surface. - @param s The surface to draw. - @see jgraphics_image_surface_draw */ -void jgraphics_image_surface_draw_fast(t_jgraphics *g, t_jsurface *s); - - -/** Get surface data ready for manually writing to a file. - @ingroup jsurface - @param surf The surface whose data will be retrieved. - @param fmt The format for the data. This should be a selection from #t_jgraphics_fileformat. - @param data The address of a pointer that will be allocated and filled. - When you are done with this data you should free it using sysmem_freeptr(). - @param size The address of a variable to hold the size of the data upon return. - - @remark A good example of this is to embed the surface as a PNG in a patcher file. - @code - long size = 0; - void *data = NULL; - - jgraphics_write_image_surface_to_filedata(x->j_surface, JGRAPHICS_FILEFORMAT_PNG, &data, &size); - if (size) { - x->j_format = gensym("png"); - binarydata_appendtodictionary(data, size, gensym("data"), x->j_format, d); - x->j_imagedata = data; - x->j_imagedatasize = size; - } - @endcode - @see jgraphics_image_surface_create_from_filedata() */ -void jgraphics_write_image_surface_to_filedata(t_jsurface *surf, long fmt, void **data, long *size); - -t_jsurface* jgraphics_image_surface_create_from_base64(const char *base64, unsigned long datalen); -void jgraphics_write_image_surface_to_base64(t_jsurface *surf, long fmt, char **base64, long *size); - - -/** Set all pixels in rect to 0. - @ingroup jsurface - @param s The surface to clear. - @param x The horizontal origin of the rect to clear. - @param y The vertical origin of the rect to clear. - @param width The width of the rect to clear. - @param height The height of the rect to clear. */ -void jgraphics_image_surface_clear(t_jsurface *s, int x, int y, int width, int height); - - - -// SVG Stuff - -/** Read an SVG file, return a #t_jsvg object. - @ingroup jsvg - @param filename The name of the file to read. - @param path The path id of the file to read. - @return A new SVG object. */ -t_jsvg* jsvg_create_from_file(const char *filename, short path); - - -/** Read an SVG file from a resource. - @ingroup jsvg - @param moduleRef The external's moduleRef. - @param resname The name of the SVG resource. - @return A new SVG object. - @see jgraphics_image_surface_create_from_resource() */ -t_jsvg* jsvg_create_from_resource(const void *moduleRef, const char *resname); - - -/** Create an SVG object from a string containing the SVG's XML. - @ingroup jsvg - @param svgXML The SVG source. - @return A new SVG object. */ -t_jsvg* jsvg_create_from_xmlstring(const char *svgXML); - - -/** Retrieve the size of an SVG object. - @ingroup jsvg - @param svg An SVG object. - @param width The address of a variable that will be set to the width upon return. - @param height The address of a variable that will be set to the width upon return. */ -void jsvg_get_size(t_jsvg *svg, double *width, double *height); - - -/** Free a #t_jsvg object. - @ingroup jsvg - @param svg The object to free. */ -void jsvg_destroy(t_jsvg *svg); - - -/** Render an SVG into a graphics context. - @ingroup jsvg - @param svg The SVG object to render. - @param g The graphics context in which to render. */ -void jsvg_render(t_jsvg *svg, t_jgraphics *g); - -void jsvg_load_cached(t_symbol *name, t_jsvg **psvg); -t_jsvg_remap *jsvg_remap_create(t_jsvg *svg); -void jsvg_remap_addcolor(t_jsvg_remap *r, t_jrgba *src, t_jrgba *dst); -void jsvg_remap_perform(t_jsvg_remap *r, t_jsvg **remapped); -void jsvg_remap_destroy(t_jsvg_remap *r); -void jsvg_remap_addsinglecolor(t_jsvg_remap *r, t_jrgba *dst); - -// this enum is anonymous because jgraphics_draw_jsvg takes an int flags argument - -enum { - JGRAPHICS_JSVG_IMAGE_EFFECT = 1, ///< Not working quite yet - JGRAPHICS_JSVG_USE_CONTENT_AREA = 2 ///< Use the content area (viewBox) instead of the default JUCE SVG bounds - - // more flags possible for centering etc. -}; - -void jgraphics_draw_jsvg(t_jgraphics *g, t_jsvg *svg, t_rect *r, int flags, double opacity); - - -/** Create a context to draw on a particular surface. - When you are done, call jgraphics_destroy(). - @ingroup jsurface - @param target The surface to which to draw. - @return The new graphics context. */ -t_jgraphics* jgraphics_create(t_jsurface *target); - - -/** Get a reference to a graphics context. - When you are done you should release your reference with jgraphics_destroy(). - @ingroup jgraphics - @param g The context you wish to reference. - @return A new reference to the context. */ -t_jgraphics* jgraphics_reference(t_jgraphics *g); - - -/** Release or free a graphics context. - @ingroup jgraphics - @param g The context to release. */ -void jgraphics_destroy(t_jgraphics *g); - - - -// Paths - -typedef struct _jgraphics_path_elem { - float x1; - float y1; - float x2; - float y2; - float x3; - float y3; - t_jgraphics_path_type type; -} t_jgraphics_path_elem; - -/** Begin a new path. - This action clears any current path in the context. - @ingroup jgraphics - @param g The graphics context. */ -void jgraphics_new_path(t_jgraphics *g); - - -/** Get a copy of the current path from a context. - @ingroup jgraphics - @param g the graphics context containing the current path - @return A copy of the current path. - */ -t_jpath* jgraphics_copy_path(t_jgraphics *g); - -/** Create a new path consisting of the original path stroked with a given thickness - @ingroup jgraphics - @param p the path to be stroked - @param thickness thickness of the stroke - @param join the style to join segments together at corners - @param cap the style of end cap to use - @return the new path, which must be freed with jgraphics_path_destroy() when done - */ -t_jpath* jgraphics_path_createstroked(t_jpath *p, double thickness, t_jgraphics_line_join join, t_jgraphics_line_cap cap); - -/** Release/free a path. - @ingroup jgraphics - @param path The path to release. */ -void jgraphics_path_destroy(t_jpath *path); - - -/** Add a path to a graphics context. - @ingroup jgraphics - @param g The graphics context. - @param path The path to add. */ -void jgraphics_append_path(t_jgraphics *g, t_jpath *path); - - -/** Close the current path in a context. - This will add a line segment to close current subpath. - @ingroup jgraphics - @param g The graphics context. */ -void jgraphics_close_path(t_jgraphics *g); - - -/** Round out any corners in a path. - This action clears any current path in the context. - @ingroup jgraphics - @param g The graphics context. - @param cornerRadius The amount by which to round corners. */ -void jgraphics_path_roundcorners(t_jgraphics *g, double cornerRadius); - -/** Test if the path contains the point x,y. - @ingroup jgraphics - @param path the path - @param x the x-coordinate of the point to test - @param y the y-coordinate of the point to test */ -long jgraphics_path_contains(t_jpath *path, double x, double y); - -/** Test if the path intersects the line defined by x1,y1 and x2,y2. - @ingroup jgraphics - @param path the path - @param x1 the x-coordinate of the first point on the line - @param y1 the y-coordinate of the first point on the line - @param x2 the x-coordinate of the second point on the line - @param y2 the y-coordinate of the second point on the line - */ -long jgraphics_path_intersectsline(t_jpath *path, double x1, double y1, double x2, double y2); - -/** Return the length of a path - @ingroup jgraphics - @param path the path - @return the length of the path - */ -double jgraphics_path_getlength(t_jpath *path); - -/** Return a point that lies a given distance from the start of the path - @ingroup jgraphics - @param path the path - @param distancefromstart distance from the start point - @param x pointer to double to receive the x position of the point - @param y pointer to double to receive the y position of the point - */ -void jgraphics_path_getpointalongpath(t_jpath *path, double distancefromstart, double *x, double *y); - -/** Finds the point on the path that is nearest to the point x,y passed in - @ingroup jgraphics - @param path the path to search - @param x x position of the target point - @param y y position of the target point - @param path_x pointer to double to receive the x position of closest point on path - @param path_y pointer to double to receive the y position of the closest point on path - @return returns the distance along the path from the path start position to the found point on the path -*/ -double jgraphics_path_getnearestpoint(t_jpath *path, double x, double y, double *path_x, double *path_y); - -/** Get the path elements and return number of path elements - @ingroup jgraphics - @param path the path - @param elems pointer to array of path elements - @return the number of path elements - */ -long jgraphics_path_getpathelems(t_jpath *path, t_jgraphics_path_elem **elems); - -/** Get the current location of the cursor in a graphics context. - @ingroup jgraphics - @param g The graphics context. - @param x The address of a variable that will be set to the horizontal cursor location upon return. - @param y The address of a variable that will be set to the vertical cursor location upon return. */ -void jgraphics_get_current_point(t_jgraphics *g, double *x, double *y); - - -/** Add a circular, clockwise, arc to the current path. - @ingroup jgraphics - @param g The graphics context. - @param xc The horizontal coordinate of the arc's center. - @param yc The vertical coordinate of the arc's center. - @param radius The radius of the arc. - @param angle1 The starting angle of the arc in radians. - Zero radians is center right (positive x axis). - @param angle2 The terminal angle of the arc in radians. - Zero radians is center right (positive x axis). */ -void jgraphics_arc(t_jgraphics *g, - double xc, double yc, - double radius, - double angle1, double angle2); - -// used by the dial object -void jgraphics_piesegment(t_jgraphics *g, - double xc, double yc, - double radius, - double angle1, double angle2, - double innercircleproportionalsize); - -/** Add a non-circular arc to the current path. - @ingroup jgraphics - @param g The graphics context. - @param xc The horizontal coordinate of the arc's center. - @param yc The vertical coordinate of the arc's center. - @param radiusx The horizontal radius of the arc. - @param radiusy The vertical radius of the arc. - @param angle1 The starting angle of the arc in radians. - Zero radians is center right (positive x axis). - @param angle2 The terminal angle of the arc in radians. - Zero radians is center right (positive x axis). */ -void jgraphics_ovalarc(t_jgraphics *g, - double xc, double yc, - double radiusx, double radiusy, - double angle1, double angle2); - - -/** Add a circular, counter-clockwise, arc to the current path. - @ingroup jgraphics - @param g The graphics context. - @param xc The horizontal coordinate of the arc's center. - @param yc The vertical coordinate of the arc's center. - @param radius The radius of the arc. - @param angle1 The starting angle of the arc in radians. - Zero radians is center right (positive x axis). - @param angle2 The terminal angle of the arc in radians. - Zero radians is center right (positive x axis). */ -void jgraphics_arc_negative(t_jgraphics *g, - double xc, double yc, - double radius, - double angle1, double angle2); - - -/** Add a cubic Bezier spline to the current path. - @ingroup jgraphics - @param g The graphics context. - @param x1 The first control point. - @param y1 The first control point. - @param x2 The second control point. - @param y2 The second control point. - @param x3 The destination point. - @param y3 The destination point. */ -void jgraphics_curve_to(t_jgraphics *g, - double x1, double y1, - double x2, double y2, - double x3, double y3); - - -/** Add a cubic Bezier spline to the current path, using coordinates relative to the current point. - @ingroup jgraphics - @param g The graphics context. - @param x1 The first control point. - @param y1 The first control point. - @param x2 The second control point. - @param y2 The second control point. - @param x3 The destination point. - @param y3 The destination point. */ -void jgraphics_rel_curve_to(t_jgraphics *g, - double x1, double y1, - double x2, double y2, - double x3, double y3); - - -/** Add a line segment to the current path. - @ingroup jgraphics - @param g The graphics context. - @param x The destination point. - @param y The destination point. */ -void jgraphics_line_to(t_jgraphics *g, double x, double y); - - -/** Add a line segment to the current path, using coordinates relative to the current point. - @ingroup jgraphics - @param g The graphics context. - @param x The destination point. - @param y The destination point. */ -void jgraphics_rel_line_to(t_jgraphics *g, double x, double y); - - -/** Move the cursor to a new point and begin a new subpath. - @ingroup jgraphics - @param g The graphics context. - @param x The new location. - @param y The new location. */ -void jgraphics_move_to(t_jgraphics *g, double x, double y); - - -/** Move the cursor to a new point and begin a new subpath, using coordinates relative to the current point. - @ingroup jgraphics - @param g The graphics context. - @param x The new location. - @param y The new location. */ -void jgraphics_rel_move_to(t_jgraphics *g, double x, double y); - - -/** Add a closed rectangle path in the context. - @ingroup jgraphics - @param g The graphics context. - @param x The horizontal origin. - @param y The vertical origin. - @param width The width of the rect. - @param height The height of the rect. */ -void jgraphics_rectangle(t_jgraphics *g, - double x, double y, - double width, double height); - - -/** Deprecated -- do not use. Adds a closed oval path in the context, however, it does not scale appropriately. - @ingroup jgraphics - @param g The graphics context. - @param x The horizontal origin. - @param y The vertical origin. - @param width The width of the oval. - @param height The height of the oval. */ -void jgraphics_oval(t_jgraphics *g, - double x, double y, - double width, double height); - - -/** Add a closed rounded-rectangle path in the context. - @ingroup jgraphics - @param g The graphics context. - @param x The horizontal origin. - @param y The vertical origin. - @param width The width of the rect. - @param height The height of the rect. - @param ovalwidth The width of the oval used for the round corners. - @param ovalheight The height of the oval used for the round corners. */ -void jgraphics_rectangle_rounded(t_jgraphics *g, - double x, double y, - double width, double height, - double ovalwidth, double ovalheight); - - -/** Add a closed elliptical path in the context. - @ingroup jgraphics - @param g The graphics context. - @param x The horizontal origin. - @param y The vertical origin. - @param width The width of the rect. - @param height The height of the rect. */ -void jgraphics_ellipse(t_jgraphics *g, - double x, double y, - double width, double height); - -/** Add a closed bubble path in the context. - @ingroup jgraphics - @param g The graphics context. - @param bodyx Horizontal body origin. - @param bodyy The vertical origin. - @param bodywidth The width of the rect. - @param bodyheight The height of the rect. - @param cornersize Body rounded corners - @param arrowtipx X position of arrow tip - @param arrowtipy Y position of arrow tip - @param whichside side to connect arrow, see above definition of t_jgraphics_bubble_side enum, - @param arrowedgeprop Arrow proportion along edge (0-1) - @param arrowwidth Arrow base width -*/ -void jgraphics_bubble(t_jgraphics *g, - double bodyx, double bodyy, - double bodywidth, double bodyheight, - double cornersize, double arrowtipx, double arrowtipy, - t_jgraphics_bubble_side whichside, double arrowedgeprop, double arrowwidth); - - -/** Add a closed triangular path in the context. - @ingroup jgraphics - @param g The graphics context. - @param x1 Coordinate for the first point. - @param y1 Coordinate for the first point. - @param x2 Coordinate for the second point. - @param y2 Coordinate for the second point. - @param x3 Coordinate for the third point. - @param y3 Coordinate for the third point. -*/ -void jgraphics_triangle(t_jgraphics *g, double x1, double y1, double x2, double y2, double x3, double y3); - - -// Internal use only -void jgraphics_diagonal_line_fill(t_jgraphics *g, double pixels, double x, double y, double width, double height); - - -/** Enumeration of slanting options for font display. - @ingroup jfont */ -typedef enum _jgraphics_font_slant { - JGRAPHICS_FONT_SLANT_NORMAL, ///< Normal slanting (typically this means no slanting) - JGRAPHICS_FONT_SLANT_ITALIC ///< Italic slanting - // JGRAPHICS_FONT_SLANT_OBLIQUE -} t_jgraphics_font_slant; - - -/** Enumeration of font weight options for font display. - @ingroup jfont */ -typedef enum _jgraphics_font_weight { - JGRAPHICS_FONT_WEIGHT_NORMAL, ///< Normal font weight - JGRAPHICS_FONT_WEIGHT_BOLD ///< Bold font weight -} t_jgraphics_font_weight; - - -/** Specify a font for a graphics context. - @ingroup jgraphics - @param g The graphics context. - @param family The name of the font family (e.g. "Arial"). - @param slant Define the slant to use for the font. - @param weight Define the weight to use for the font. */ -void jgraphics_select_font_face(t_jgraphics *g, - const char *family, - t_jgraphics_font_slant slant, - t_jgraphics_font_weight weight); - - -/** Specify a font for a graphics context by passing a #t_jfont object. - @ingroup jgraphics - @param g The graphics context. - @param jfont A jfont object whose attributes will be copied to the context. */ -void jgraphics_select_jfont(t_jgraphics *g, t_jfont *jfont); - - -/** Specify the font size for a context. - @ingroup jgraphics - @param g The graphics context. - @param size The font size. */ -void jgraphics_set_font_size(t_jgraphics *g, double size); - - -/** Turn underlining on/off for text in a context. - @ingroup jgraphics - @param g The graphics context. - @param underline Pass true or false to set the appropriate behavior. */ -void jgraphics_set_underline(t_jgraphics *g, char underline); - - -/** Display text at the current position in a context. - @ingroup jgraphics - @param g The graphics context. - @param utf8 The text to display. */ -void jgraphics_show_text(t_jgraphics *g, const char *utf8); - -/** Add a path of text to the current path. - @ingroup jgraphics - @param g The graphics context. - @param utf8 The text to generate path for. */ -void jgraphics_text_path(t_jgraphics *g, const char *utf8); - - -/** A structure for holding information related to how much space the rendering of a given font will use. - The units for these measurements is in pixels. - @ingroup jgraphics -*/ -typedef struct _jgraphics_font_extents { - double ascent; ///< The ascent. - double descent; ///< The descent. - double height; ///< The hieght. - double max_x_advance; ///< Unused / Not valid. - double max_y_advance; ///< Unused / Not valid. -} t_jgraphics_font_extents; - - -/** Return the extents of the currently selected font for a given graphics context. - @ingroup jgraphics - @param g Pointer to a jgraphics context. - @param extents The address of a #t_jgraphics_font_extents structure to be filled with the results. -*/ -void jgraphics_font_extents(t_jgraphics *g, t_jgraphics_font_extents *extents); - - -/** Return the height and width of a string given current graphics settings in a context. - @ingroup jgraphics - @param g Pointer to a jgraphics context. - @param utf8 A string containing the text whose dimensions we wish to find. - @param width The address of a variable to be filled with the width of the rendered text. - @param height The address of a variable to be filled with the height of the rendered text. -*/ -void jgraphics_text_measure(t_jgraphics *g, const char *utf8, double *width, double *height); - - -/** Return the height, width, and number of lines that will be used to render a given string. - @ingroup jgraphics - @param g Pointer to a jgraphics context. - @param utf8 A string containing the text whose dimensions we wish to find. - @param wrapwidth The number of pixels in width at which the text should be wrapped if it is too long. - @param includewhitespace Set zero to not include white space in the calculation, otherwise set this parameter to 1. - @param width The address of a variable to be filled with the width of the rendered text. - @param height The address of a variable to be filled with the height of the rendered text. - @param numlines The address of a variable to be filled with the number of lines required to render the text. -*/ -void jgraphics_text_measuretext_wrapped(t_jgraphics *g, const char *utf8, double wrapwidth, long includewhitespace, - double *width, double *height, long *numlines); - - -// Internal Use Only -double jgraphics_getfontscale(void); - - - -// Working with fonts directly - -// Internal Use Only -t_jfont* jfont_create_from_maxfont(short number, short size); - - -/** Create a new font object. - @ingroup jfont - @param family The name of the font family (e.g. Arial). - @param slant The type of slant for the font. - @param weight The type of weight for the font. - @param size The size of the font. - @return The new font object. Needs to be freed via jfont_destroy() when done. -*/ -t_jfont* jfont_create(const char *family, - t_jgraphics_font_slant slant, - t_jgraphics_font_weight weight, - double size); - -/** Create a new font object using a style instead of style flags. - @ingroup jfont - @param family The name of the font family (e.g. Arial). - @param stylename The name of the font style (e.g. Narrow Bold Italic). - @param size The size of the font. - @return The new font object. Needs to be freed via jfont_destroy() when done. -*/ -t_jfont* jfont_create_withstylename(const char *family, - const char *stylename, - double size); - - -/** Create new reference to an existing font object. - @ingroup jfont - @param font The font object for which to obtain a reference. - @return The new font object reference. */ -t_jfont* jfont_reference(t_jfont *font); - - -/** Release or free a font object. - @ingroup jfont - @param font The font object to release. */ -void jfont_destroy(t_jfont *font); - - -/** Compare two fonts to see if they are equivalent. - @ingroup jfont - @param font The first font object that is being compared. - @param other The second font object that is being compared. - @return Nonzero value if the two fonts are equivalent. */ -long jfont_isequalto(t_jfont *font, t_jfont *other); - -/** Set the name of the font family (e.g. Arial). - @ingroup jfont - @param font The font object. - @param family A t_symbol containing the name of the desired font family. */ -void jfont_set_family(t_jfont *font, t_symbol *family); - -/** Get the name of the font family (e.g. Arial). - @ingroup jfont - @param font The font object. - @return A t_symbol representing the name of the font family. */ -t_symbol* jfont_get_family(t_jfont *font); - -/** Set the style of a font family (e.g. Narrow Bold Italic). - @ingroup jfont - @param font The font object. - @param style The desired style. -*/ -void jfont_set_style(t_jfont *font, t_symbol *style); - -/** Get the style of the given font (e.g. Narrow Bold Italic). - @ingroup jfont - @param font The font object. - @return A t_symbol representing the name of the font style. -*/ -t_symbol* jfont_get_style(t_jfont *font); - -/** Set the slant of the font. - @ingroup jfont - @param font The font object - @param slant The desired slant. */ -void jfont_set_slant(t_jfont *font, t_jgraphics_font_slant slant); - -/** Get the slant of the font. - @ingroup jfont - @param font The font object. - @return The current slant setting for the font. */ -t_jgraphics_font_slant jfont_get_slant(t_jfont *font); - -/** Set the weight of the font. - @ingroup jfont - @param font The font object - @param weight The desired weight (e.g. bold). */ -void jfont_set_weight(t_jfont *font, t_jgraphics_font_weight weight); - -/** Get the weight of the font. - @ingroup jfont - @param font The font object. - @return The current weight setting for the font. */ -t_jgraphics_font_weight jfont_get_weight(t_jfont *font); - -/** Set the size of a font object. - @ingroup jfont - @param font The font object. - @param size The new size for the font object. */ -void jfont_set_font_size(t_jfont *font, double size); - -/** Get the size of a font object. - @ingroup jfont - @param font The font object. - @return The size of the font. */ -double jfont_get_font_size(t_jfont *font); - -/** Set the underlining of a font object. - @ingroup jfont - @param font The font object. - @param ul Pass true to underline, or false for no underlining. */ -void jfont_set_underline(t_jfont *font, char ul); - -/** Get the underline state of a font object. - @ingroup jfont - @param font The font object. - @return Nonzero value if the font will be underlined. */ -char jfont_get_underline(t_jfont *font); - -double jfont_get_heighttocharheightratio(t_jfont *font); - - -/** Get extents of this font - @ingroup jfont - @param font The font object. - @param extents The font extents upon return/ */ -void jfont_extents(t_jfont *font, t_jgraphics_font_extents *extents); - - -/** Given a font, find out how much area is required to render a string of text. - @ingroup jfont - @param font The font object. - @param utf8 The text whose rendering will be measured. - @param width The address of a variable to hold the width upon return. - @param height The address of a variable to hold the height upon return. */ -void jfont_text_measure(t_jfont *font, const char *utf8, double *width, double *height); - - -/** Given a font, find out how much area is required to render a string of text, - provided a horizontal maximum limit at which the text is wrapped. - @ingroup jfont - @param font The font object. - @param utf8 The text whose rendering will be measured. - @param wrapwidth The maximum width, above which text should wrap onto a new line. - @param includewhitespace If non-zero, include whitespace in the measurement. - @param width The address of a variable to hold the width upon return. - @param height The address of a variable to hold the height upon return. - @param numlines The address of a variable to hold the number of lines of text after wrapping upon return. */ -void jfont_text_measuretext_wrapped(t_jfont *font, const char *utf8, double wrapwidth, long includewhitespace, - double *width, double *height, long *numlines); - -/** Given a font, find out the width and height of the 'M' character. - This is equivalent to jfont_text_measure(font, "M", width, height) but is faster. - @ingroup jfont - @param font The font object. - @param width The address of a variable to hold the width upon return. - @param height The address of a variable to hold the height upon return. */ -void jfont_get_em_dimensions(t_jfont *font, double *width, double *height); - -/** Get a list of font names. Note, this includes each font style in each font family. - @ingroup jfont - @param count The address of a variable to hold the count of font names in list upon return. - @param list The address of a #t_symbol** initialized to NULL. - Upon return this will be set to an array of count #t_symbol pointers. - This array should be freed using sysmem_freeptr() when you are done with it. - @return A Max error code. */ -t_max_err jfont_getfontlist(long *count, t_symbol ***list); - -/** Get a list of font styles available for a given font face. - @ingroup jfont - @param fontanme A symbol with the name of the font whose styles are to be retrieved. - @param count The address of a variable to hold the count of font styles in the list upon return. - @param list The address of a #t_symbol** initialized to NULL. - Upon return this will be set to an array of count #t_symbol pointers. - This array should b freed using sysmem_freptr() when you are done with it. - @return A Max error code. -*/ -t_max_err jfont_getfontstylenames(t_symbol *fontname, long *count, t_symbol ***stylenames); - -/** Given a font name with style appended separate into the component parts. (e.g. "Arial Narrow Bold Italic" -> "Arial" and "Narrow Bold Italic". - @ingroup jfont - @param fontfacewithstyle The name with style appended (e.g. "Arial Narrow Bold Italic") - @param fontface The address of a #t_symbol*. On return is set to the name of the font (e.g. "Arial") - @param style The address of a #t_symbol*. On return is set to the name of the font style (e.g. "Narrow Bold Italic") -*/ -void jfont_normalizefontname(t_symbol *fontfacewithstyle, t_symbol **fontface, t_symbol **style); - -long jfont_isfixedwidth(const char *name); - -void jfont_ellipsifytext(t_jfont *font, char *text, long maxcharbuflen, double maxwidth); - -const char *jfont_get_default_fixedwidth_name(void); - -// Internal Use Only -- not exported -void jfont_set_juce_default_fontname(char *s); -void jfont_copy_juce_default_fontname(char *s, long maxlen); -void jfont_copy_juce_platform_fontname(char *s, long maxlen); -void jfont_set_juce_fallback_fontname(char *s); -void jfont_copy_juce_fallback_fontname(char *s, long maxlen); - - -/** Determine if you can anti-alias text to a transparent background. - You might want to call this and then disable "useimagebuffer" if false *and* - you are rendering text on a transparent background. - @ingroup jgraphics - @return Non-zero if you can anti-alias text to a transparent background. */ -long jgraphics_system_canantialiastexttotransparentbg(); - -/** Create a new textlayout object. - @ingroup textlayout - @return The new textlayout object. */ -t_jtextlayout* jtextlayout_create(); - - -/** Create a new textlayout object. - This gives a hint to the textlayout as to what the text bgcolor will be. - It won't actually paint the bg for you. - But, it does let it do a better job. - @ingroup textlayout - @param g The graphics context for the textlayout. - @param bgcolor The background color for the textlayout. - @return The new textlayout object. */ -t_jtextlayout* jtextlayout_withbgcolor(t_jgraphics *g, t_jrgba *bgcolor); - - -/** Release/free a textlayout object. - @ingroup textlayout - @param textlayout The textlayout object to release. */ -void jtextlayout_destroy(t_jtextlayout* textlayout); - - -/** Enumeration of text justification options, which are specified as a bitmask. - @ingroup jgraphics */ -typedef enum _jgraphics_text_justification { - JGRAPHICS_TEXT_JUSTIFICATION_LEFT = 1, ///< Justify left - JGRAPHICS_TEXT_JUSTIFICATION_RIGHT = 2, ///< Justify right - JGRAPHICS_TEXT_JUSTIFICATION_HCENTERED = 4, ///< Centered horizontally - JGRAPHICS_TEXT_JUSTIFICATION_TOP = 8, ///< Justified to the top - JGRAPHICS_TEXT_JUSTIFICATION_BOTTOM = 16, ///< Justified to the bottom - JGRAPHICS_TEXT_JUSTIFICATION_VCENTERED = 32, ///< Centered vertically - JGRAPHICS_TEXT_JUSTIFICATION_HJUSTIFIED = 64, ///< Horizontally justified - JGRAPHICS_TEXT_JUSTIFICATION_CENTERED = JGRAPHICS_TEXT_JUSTIFICATION_HCENTERED + JGRAPHICS_TEXT_JUSTIFICATION_VCENTERED ///< Shortcut for Centering both vertically and horizontally -} t_jgraphics_text_justification; - - -/** Flags for setting text layout options. - @ingroup textlayout */ -typedef enum _jgraphics_textlayout_flags { - JGRAPHICS_TEXTLAYOUT_NOWRAP = 1, ///< disable word wrapping - JGRAPHICS_TEXTLAYOUT_USEELLIPSIS = 3 ///< show ... if a line doesn't fit (implies NOWRAP too) -} t_jgraphics_textlayout_flags; - - -/** Set the text and attributes of a textlayout object. - @ingroup textlayout - @param textlayout The textlayout object. - @param utf8 The text to render. - @param jfont The font with which to render the text. - @param x The text is placed within rect specified by x, y, width, height. - @param y The text is placed within rect specified by x, y, width, height. - @param width The text is placed within rect specified by x, y, width, height. - @param height The text is placed within rect specified by x, y, width, height. - @param justification How to justify the text within the rect. - @param flags Additional flags to control behaviour. */ -void jtextlayout_set(t_jtextlayout *textlayout, - const char *utf8, - t_jfont *jfont, - double x, double y, - double width, - double height, - t_jgraphics_text_justification justification, - t_jgraphics_textlayout_flags flags); - -/** Set the text of a textlayout object. - @ingroup textlayout - @param textlayout The textlayout object. - @param utf8 The text to render. - @param jfont The font with which to render the text.*/ -void jtextlayout_settext(t_jtextlayout *textlayout, - const char *utf8, - t_jfont *jfont); - -/** Set the color to render text in a textlayout object. - @ingroup textlayout - @param textlayout The textlayout object for which to set the color. - @param textcolor The color for the text. */ -void jtextlayout_settextcolor(t_jtextlayout *textlayout, t_jrgba *textcolor); - - -/** Return a measurement of how much space will be required to draw the text of a textlayout. - @ingroup textlayout - @param textlayout The textlayout object to query. - @param startindex You can measure a subset of the characters. - This defines the character from which to start. - @param numchars Pass -1 for all characters from startindex to end - @param includewhitespace Define whether to measure with or without whitespace truncated from edges. - @param width Returns the width of text not including any margins. - @param height Returns the height of text not including any margins. - @param numlines Returns the number of lines of text. */ -void jtextlayout_measuretext(t_jtextlayout *textlayout, - long startindex, - long numchars, - long includewhitespace, - double *width, double *height, - long *numlines); - - -/** Draw a textlayout in a given graphics context. - @ingroup textlayout - @param tl The textlayout object to query. - @param g The graphics context in which to draw the text. */ -void jtextlayout_draw(t_jtextlayout *tl, t_jgraphics *g); - - -/** Retrieve a count of the number of characters in a textlayout object. - @ingroup textlayout - @param tl The textlayout object to query. - @return The number of characters. */ -long jtextlayout_getnumchars(t_jtextlayout *tl); - - -/** Retrieve the #t_rect containing a character at a given index. - @ingroup textlayout - @param tl The textlayout object to query. - @param index The index from which to fetch the unicode character. - @param rect The address of a valid #t_rect which will be filled in upon return. - @return A Max error code. */ -t_max_err jtextlayout_getcharbox(t_jtextlayout *tl, long index, t_rect *rect); - - -/** Retrieve the unicode character at a given index. - @ingroup textlayout - @param tl The textlayout object to query. - @param index The index from which to fetch the unicode character. - @param pch The address of a variable to hold the unicode character value upon return. - @return A Max error code. */ -t_max_err jtextlayout_getchar(t_jtextlayout *tl, long index, long *pch); - - -/** Create a t_jpath object representing the text layout. - @ingroup textlayout - @param tl The textlayout object to retrieve a path for. - @return A t_jpath. When finished with the path free it with jgraphics_path_destroy. */ -t_jpath* jtextlayout_createpath(t_jtextlayout *tl); - - -/** An affine transformation (such as scale, shear, etc). - @ingroup jmatrix */ -typedef struct { - double xx; ///< xx component - double yx; ///< yx component - double xy; ///< xy component - double yy; ///< yy component - double x0; ///< x translation - double y0; ///< y translation -} t_jmatrix; - -/** Set a #t_jmatrix to an affine transformation. - @ingroup jmatrix - @param x - @param xx - @param yx - @param xy - @param yy - @param x0 - @param y0 - @remark given x,y the matrix specifies the following transformation: - @code - xnew = xx * x + xy * y + x0; - ynew = yx * x + yy * y + y0; - @endcode -*/ -void jgraphics_matrix_init(t_jmatrix *x, double xx, double yx, double xy, double yy, double x0, double y0); - -/** Modify a matrix to be an identity transform. - @ingroup jmatrix - @param x The #t_jmatrix. -*/ -void jgraphics_matrix_init_identity(t_jmatrix *x); - -/** Initialize a #t_jmatrix to translate (offset) a point. - @ingroup jmatrix - @param x The #t_jmatrix. - @param tx The amount of x-axis translation. - @param ty The amount of y-axis translation. -*/ -void jgraphics_matrix_init_translate(t_jmatrix *x, double tx, double ty); - -/** Initialize a #t_jmatrix to scale (offset) a point. - @ingroup jmatrix - @param x The #t_jmatrix. - @param sx The horizontal scale factor. - @param sy The vertical scale factor. -*/ -void jgraphics_matrix_init_scale(t_jmatrix *x, double sx, double sy); - -/**Initialize a #t_jmatrix to rotate (offset) a point. - @ingroup jmatrix - @param x The #t_jmatrix. - @param radians The angle or rotation in radians. -*/ -void jgraphics_matrix_init_rotate(t_jmatrix *x, double radians); - - -/** Apply a translation to an existing matrix. - @ingroup jmatrix - @param x The #t_jmatrix. - @param tx The amount of x-axis translation. - @param ty The amount of y-axis translation. -*/ -void jgraphics_matrix_translate(t_jmatrix *x, double tx, double ty); - -/** Apply a scaling to an existing matrix. - @ingroup jmatrix - @param x The #t_jmatrix. - @param sx The horizontal scale factor. - @param sy The vertical scale factor. -*/ -void jgraphics_matrix_scale(t_jmatrix *x, double sx, double sy); - -/** Apply a rotation to an existing matrix. - @ingroup jmatrix - @param x The #t_jmatrix. - @param radians The angle or rotation in radians. -*/ -void jgraphics_matrix_rotate(t_jmatrix *x, double radians); - -/** Invert an existing matrix. - @ingroup jmatrix - @param x The #t_jmatrix. -*/ -void jgraphics_matrix_invert(t_jmatrix *x); - -/** Multiply two matrices: resulting matrix has effect of first applying a and then applying b. - @ingroup jmatrix - @param result The resulting product #t_jmatrix. - @param a The first operand. - @param b The second operand. -*/ -void jgraphics_matrix_multiply(t_jmatrix *result, const t_jmatrix *a, const t_jmatrix *b); - - -/** Transform a point using a #t_jmatrix transormation. - @ingroup jmatrix - @param matrix The #t_jmatrix. - @param x The address of the variable holding the x coordinate. - @param y The address of the variable holding the y coordinate. -*/ -void jgraphics_matrix_transform_point(const t_jmatrix *matrix, double *x, double *y); - - - - -// Patterns -t_jpattern* jgraphics_pattern_create_rgba(double red, - double green, // colors between 0 and 1 - double blue, - double alpha); // solid, set alpha to 1.0 - -t_jpattern* jgraphics_pattern_create_for_surface(t_jsurface *surface); - -t_jpattern* jgraphics_pattern_create_linear(double x0, double y0, double x1, double y1); - -/* - cx0 : x coordinate for the center of the start circle - cy0 : y coordinate for the center of the start circle - radius0 : radius of the start circle - cx1 : x coordinate for the center of the end circle - cy1 : y coordinate for the center of the end circle - radius1 : radius of the end circle -*/ -t_jpattern* jgraphics_pattern_create_radial(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1); - -void jgraphics_pattern_add_color_stop_rgba(t_jpattern* pattern, double offset, double red, double green, double blue, double alpha); - -void jgraphics_pattern_add_color_for_proportion(t_jpattern* pattern, double proportion); - -t_jpattern *jgraphics_pattern_reference(t_jpattern *pattern); -void jgraphics_pattern_destroy(t_jpattern *pattern); - -typedef enum _jgraphics_pattern_type { - JGRAPHICS_PATTERN_TYPE_SOLID, - JGRAPHICS_PATTERN_TYPE_SURFACE, - JGRAPHICS_PATTERN_TYPE_LINEAR, - JGRAPHICS_PATTERN_TYPE_RADIAL -} t_jgraphics_pattern_type; - -t_jgraphics_pattern_type jgraphics_pattern_get_type(t_jpattern *pattern); - -typedef enum _jgraphics_extend { - JGRAPHICS_EXTEND_NONE, - JGRAPHICS_EXTEND_REPEAT, - JGRAPHICS_EXTEND_REFLECT, - JGRAPHICS_EXTEND_PAD -} t_jgraphics_extend; - -// rbs -- JGRAPHICS_EXTEND_NONE for images isn't actually supported yet -#define JGRAPHICS_EXTEND_GRADIENT_DEFAULT JGRAPHICS_EXTEND_PAD -#define JGRAPHICS_EXTEND_SURFACE_DEFAULT JGRAPHICS_EXTEND_NONE - -// These functions are placeholders for Cairo functionality, but for which there is no direct JUCE implementation. -// They may or may not be implemented in the future. -void jgraphics_pattern_set_extend(t_jpattern *pattern, t_jgraphics_extend extend); -t_jgraphics_extend jgraphics_pattern_get_extend(t_jpattern *pattern); - -void jgraphics_pattern_set_matrix(t_jpattern *pattern, const t_jmatrix *matrix); -void jgraphics_pattern_get_matrix(t_jpattern *pattern, t_jmatrix *matrix); -// pattern matrix convenience functions -void jgraphics_pattern_translate(t_jpattern *pattern, double tx, double ty); -void jgraphics_pattern_scale(t_jpattern *pattern, double sx, double sy); -void jgraphics_pattern_rotate(t_jpattern *pattern, double angle); -void jgraphics_pattern_transform(t_jpattern *pattern, const t_jmatrix *matrix); -void jgraphics_pattern_identity_matrix(t_jpattern *pattern); -t_jsurface *jgraphics_pattern_get_surface(t_jpattern *pattern); - -// Transforms -void jgraphics_translate(t_jgraphics *g, double tx, double ty); -void jgraphics_scale(t_jgraphics *g, double sx, double sy); -void jgraphics_rotate(t_jgraphics *g, double angle); -void jgraphics_transform(t_jgraphics *g, const t_jmatrix *matrix); -void jgraphics_set_matrix(t_jgraphics *g, const t_jmatrix *matrix); -void jgraphics_get_matrix(t_jgraphics *g, t_jmatrix *matrix); -void jgraphics_identity_matrix(t_jgraphics *g); - - -/** User coordinates are those passed to drawing functions in a given #t_jgraphics context. - Device coordinates refer to patcher canvas coordinates, before any zooming. - @ingroup jgraphics */ -void jgraphics_user_to_device(t_jgraphics *g, - double *x, - double *y); - -/** User coordinates are those passed to drawing functions in a given #t_jgraphics context. - Device coordinates refer to patcher canvas coordinates, before any zooming. - @ingroup jgraphics */ -void jgraphics_device_to_user(t_jgraphics *g, - double *x, - double *y); - -// Graphics - -void jgraphics_save(t_jgraphics* g); // doesn't save/restore the path -void jgraphics_restore(t_jgraphics *g); - -t_jsurface* jgraphics_get_target(t_jgraphics *g); - - -// Pushing and Popping groups is not currently exported or supported by Max. -void jgraphics_push_group(t_jgraphics *g); -t_jpattern* jgraphics_pop_group(t_jgraphics *g); -void jgraphics_pop_group_to_source(t_jgraphics *g); -t_jsurface* jgraphics_get_group_target(t_jgraphics *g); -// jgraphics_pop_group_surface is not in cairo, but equivalent to the following sequence -// jgraphics_get_group_target(), jgraphics_surface_reference(), jgraphics_restore() -t_jsurface* jgraphics_pop_group_surface(t_jgraphics *g); - - -// if a t_jpattern source was previously selected, it is removed -void jgraphics_set_source_rgba(t_jgraphics *g, - double red, - double green, - double blue, - double alpha); - -void jgraphics_set_source_jrgba(t_jgraphics *g, t_jrgba *rgba); - -void jgraphics_set_source_rgb(t_jgraphics *g, - double red, - double green, - double blue); -// if NULL source is passed in will revert to prior solid color. -void jgraphics_set_source(t_jgraphics *g, t_jpattern *source); - -// convenience function for creating pattern from surface and making it the source for g -void jgraphics_set_source_surface(t_jgraphics *g, - t_jsurface *surface, - double x, double y); - - -typedef enum _jgraphics_pattern_shared { - JGRAPHICS_PATTERN_GRAY = 0, - JGRAPHICS_NUM_SHARED_PATTERNS -} t_jgraphics_pattern_shared; - - -// We create some standard patterns which are "owned" by the jgraphics library. -// You can use these as a source for filling or stroking paths. -// The gray patter above is what is used to put dotted lines around the comment box, and others. -void jgraphics_set_source_shared(t_jgraphics *g, t_jgraphics_pattern_shared patindex); - -// color transforms -// each component (rgba) has a scale and offset value as part of the graphics context. -// this is saved and restored with the jgraphics_save and jgraphics_restore calls. - -void jgraphics_scale_source_rgba(t_jgraphics *g, - double redscale, - double greenscale, - double bluescale, - double alphascale); - -void jgraphics_translate_source_rgba(t_jgraphics *g, - double redoffset, - double greenoffset, - double blueoffset, - double alphaoffset); - -// example use of this function is in the gswitch object -void jgraphics_set_dash(t_jgraphics *g, - double *dashes, - int numdashes, - double offset); // offset not supported yet - - -typedef enum _jgraphics_fill_rule { - JGRAPHICS_FILL_RULE_WINDING, - JGRAPHICS_FILL_RULE_EVEN_ODD -} t_jgraphics_fill_rule; - -void jgraphics_set_fill_rule(t_jgraphics *g, t_jgraphics_fill_rule fill_rule); -t_jgraphics_fill_rule jgraphics_get_fill_rule(t_jgraphics *g); - -void jgraphics_set_line_cap(t_jgraphics *g, t_jgraphics_line_cap line_cap); -t_jgraphics_line_cap jgraphics_get_line_cap(t_jgraphics *g); - -void jgraphics_set_line_join(t_jgraphics *g, - t_jgraphics_line_join line_join); -t_jgraphics_line_join jgraphics_get_line_join(t_jgraphics *g); - -void jgraphics_set_line_width(t_jgraphics *g, - double width); -double jgraphics_get_line_width(t_jgraphics *g); - -// perhaps someday we could expose something like this -// jgraphics_set_operator() - -void jgraphics_fill(t_jgraphics *g); -void jgraphics_fill_preserve(t_jgraphics *g); -void jgraphics_fill_with_alpha(t_jgraphics *g, double alpha); -void jgraphics_fill_preserve_with_alpha(t_jgraphics *g, double alpha); -// Note: you can use jgraphics_image_surface_create with a 1x1 offscreen to do path stuff -// that isn't actually going to be used for drawing. -int jgraphics_in_fill(t_jgraphics *g, double x, double y); // hit test -int jgraphics_path_intersects_line(t_jgraphics *g, double x1, double y1, double x2, double y2); // not in cairo - -// various utilities -int jgraphics_ptinrect(t_pt pt, t_rect rect); - -int jgraphics_lines_intersect(double l1x1, double l1y1, double l1x2, double l1y2, double l2x1, double l2y1, double l2x2, double l2y2, double *ix, double *iy); -int jgraphics_line_intersects_rect(double linex1, double liney1, double linex2, double liney2, t_rect r, double *ix, double *iy); - -// jgraphics_ptaboveline: returns non-zero if the given point is above the line -// specified by the two points: lx1, ly1 to ending point lx2, ly2 -int jgraphics_ptaboveline(t_pt pt, double lx1, double ly1, double lx2, double ly2); - -// return nonzero if points a and b are on the same side of the line specified by lx1, ly1 -> lx2, ly2 -int jgraphics_points_on_same_side_of_line(t_pt a, t_pt b, double lx1, double ly1, double lx2, double ly2); - -/* - Note that the functions jgraphics_rectangle_rounded() and jgraphics_ptinroundedrect() - need different size arguments as ovalsize and ovalwidth. -*/ -int jgraphics_ptinroundedrect(t_pt pt, t_rect rect, double ovalwidth, double ovalheight); - -// get extents of current path in device coordinates (after transform matrix) -void jgraphics_fill_extents(t_jgraphics *g, - double *x1, double *y1, - double *x2, double *y2); - -// paints current source using alpha of pattern -//void jgraphics_mask(t_jgraphics *x, -// t_jpattern *pattern); - -// paints current source using alpha of surface -//void jgraphics_mask_surface(t_jgraphics *g, -// t_jsurface *surface, -// double surface_x, // surface origin -// double surface_y); // surface origin - -// paint current source in entire current clip region -void jgraphics_paint(t_jgraphics *g); -void jgraphics_paint_with_alpha(t_jgraphics *g, - double alpha); - -void jgraphics_stroke(t_jgraphics *g); -void jgraphics_stroke_preserve(t_jgraphics *g); -void jgraphics_stroke_with_alpha(t_jgraphics *g, double alpha); -void jgraphics_stroke_preserve_with_alpha(t_jgraphics *g, double alpha); - -// fast non antialiasing/rotating versions -void jgraphics_rectangle_fill_fast(t_jgraphics *g, double x, double y, double width, double height); -void jgraphics_rectangle_draw_fast(t_jgraphics *g, double x, double y, double width, double height, double border); -void jgraphics_line_draw_fast(t_jgraphics *g, double x1, double y1, double x2, double y2, double linewidth); - -// desktopui API: so externals can create transparent popup windows, draw to them, and receive mouse events - -typedef enum _jdesktopui_flags { - JDESKTOPUI_FLAGS_FIRSTFLAG = 1 // no flags defined yet, but this is a placeholder -} t_jdesktopui_flags; - -t_jdesktopui* jdesktopui_new(t_object *owner, t_jdesktopui_flags flags, t_rect rect); -void jdesktopui_destroy(t_jdesktopui *x); -void jdesktopui_setvisible(t_jdesktopui *x, long way); -void jdesktopui_setalwaysontop(t_jdesktopui *x, long way); -void jdesktopui_setrect(t_jdesktopui *x, t_rect rect); -void jdesktopui_getrect(t_jdesktopui *x, t_rect *rect); -void jdesktopui_setposition(t_jdesktopui *x, t_pt pt); -void jdesktopui_setfadetimes(t_jdesktopui *x, int fade_in_ms, int fade_out_ms); -t_jgraphics* jdesktopui_get_jgraphics(t_jdesktopui *x); -void jdesktopui_redraw(t_jdesktopui *x); -void jdesktopui_redrawrect(t_jdesktopui *x, t_rect rect); -double jdesktopui_getopacity(t_jdesktopui *x); -void *jdesktopui_createtimer(t_jdesktopui *x, t_symbol *msg, void *arg); -void jdesktopui_starttimer(void *ref, int interval); -void jdesktopui_stoptimer(void *ref, int alsodelete); -void jdesktopui_destroytimer(void *ref); - -// color transformations - -t_jrgba jgraphics_jrgba_contrasting(t_jrgba *c, double amount); -t_jrgba jgraphics_jrgba_contrastwith(t_jrgba *c1, t_jrgba *c2); -t_jrgba jgraphics_jrgba_darker(t_jrgba *c, double amount); -t_jrgba jgraphics_jrgba_brighter(t_jrgba *c, double amount); -t_jrgba jgraphics_jrgba_overlay(t_jrgba *c1, t_jrgba *c2); -t_jrgba jgraphics_jrgba_interpolate(t_jrgba *c1, t_jrgba *c2, double proportion); -void jgraphics_jrgba_gethsb(t_jrgba *c, double *h, double *s, double *b); -t_jrgba jgraphics_jrgba_fromhsb(double h, double s, double b, double a); - -long jcolor_getcolor(t_symbol *name, t_jrgba *on, t_jrgba *off); -void jcolor_linkcolor(t_object *x, t_symbol *colorname, t_symbol *attrname); -void jcolor_unlinkcolor(t_object *x, t_symbol *colorname, t_symbol *attrname); -char *jgraphics_jrgba_tohexstring(t_jrgba *c, long includealpha); - -// popup menu API so externals can create popup menus that can also be drawn into - -/** Create a pop-up menu. - Free this pop-up menu using jpopupmenu_destroy(). - @ingroup jpopupmenu - @return A pointer to the newly created jpopupmenu object. */ -t_jpopupmenu* jpopupmenu_create(); - -/** Free a pop-up menu created with jpopupmenu_create(). - @ingroup jpopupmenu - @param menu The pop-up menu to be freed. */ -void jpopupmenu_destroy(t_jpopupmenu *menu); - -/** Clear the conents of a pop-up menu. - @ingroup jpopupmenu - @param menu The pop-up menu whose contents will be cleared. */ -void jpopupmenu_clear(t_jpopupmenu *menu); - -typedef struct _jpopupmenu_options { - bool zoomwithview; - int defitemid; -} t_jpopupmenu_options; - -t_jpopupmenu_options jpopupmenu_default_options(); - -// Internal use only -void jpopupmenu_setitemcallback(method fun, void *arg); - -/** Set the colors used by a pop-up menu. - @ingroup jpopupmenu - @param menu The pop-up menu to which the colors will be applied. - @param text The text color for menu items. - @param bg The background color for menu items. - @param highlightedtext The text color for the highlighted menu item. - @param highlightedbg The background color the highlighted menu item. */ -void jpopupmenu_setcolors(t_jpopupmenu *menu, - t_jrgba text, - t_jrgba bg, - t_jrgba highlightedtext, - t_jrgba highlightedbg); - -// Internal use only (header functions are not exported) -void jpopupmenu_setheadercolor(t_jpopupmenu *menu, t_jrgba *hc); - -/** Set the font used by a pop-up menu. - @ingroup jpopupmenu - @param menu The pop-up menu whose font will be set. - @param font A pointer to a font object, whose font info will be copied to the pop-up menu. */ -void jpopupmenu_setfont(t_jpopupmenu *menu, t_jfont *font); - -/** Add an item to a pop-up menu. - @ingroup jpopupmenu - @param menu The pop-up menu to which the item will be added. - @param itemid Each menu item should be assigned a unique integer id using this parameter. - @param utf8Text The text to display in for the menu item. - @param textColor The color to use for the menu item, or NULL to use the default color. - @param checked A non-zero value indicates that the item should have a check-mark next to it. - @param disabled A non-zero value indicates that the item should be disabled. - @param icon A #t_jsurface will be used as an icon for the menu item if provided here. - Pass NULL for no icon. */ -void jpopupmenu_additem(t_jpopupmenu *menu, - int itemid, - const char *utf8Text, - t_jrgba *textColor, - int checked, - int disabled, - t_jsurface *icon); - -/** Add a pop-menu to another pop-menu as a submenu. - Note that the submenu contents are copied at the time of this call. - So, any changes to the submenu after this returns won't have an effect. - Also, it is safe to destroy the submenu after this function returns. - @ingroup jpopupmenu - @param menu The pop-up menu to which a menu will be added as a submenu. - @param utf8Name The name of the menu item. - @param submenu The pop-up menu which will be used as the submenu. - @param disabled Pass a non-zero value to disable the menu item. */ -void jpopupmenu_addsubmenu(t_jpopupmenu *menu, - const char *utf8Name, - t_jpopupmenu *submenu, - int disabled); - -/** Add a separator to a pop-menu. - @ingroup jpopupmenu - @param menu The pop-up menu to which the separator will be added. */ -void jpopupmenu_addseparator(t_jpopupmenu *menu); -void jpopupmenu_addseperator(t_jpopupmenu *menu); // [sic] - -// Internal use only (header functions are not exported) -void jpopupmenu_addheader(t_jpopupmenu *menu, const char *utf8Text); - -// Internal use only -// ownerdraw: give a t_object to the menu. -// it will be sent a paint message to draw itself. -// it will be sent a getsize message to find out the size. -void jpopupmenu_addownerdrawitem(t_jpopupmenu *menu, - int itemid, - t_object *owner); - -/** Tell a menu to display at a specified location. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param screen The point at which to display in screen coordinates. - @param defitemid The initially choosen item id. - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup(t_jpopupmenu *menu, - t_pt screen, - int defitemid); // initial item id - -/** Tell a menu to display above a given box in a patcher. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param box The box above which to display the menu. - @param view The patcherview for the box in which to display the menu. - @param offset An offset from the box position at which to display the menu. - @param defitemid The initially choosen item id. - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup_abovebox(t_jpopupmenu *menu, t_object *box, t_object *view, int offset, int defitemid); - -/** Tell a menu to display near a given box in a patcher. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param box The box above which to display the menu. - @param view The patcherview for the box in which to display the menu. - @param defitemid The initially choosen item id. - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup_nearbox(t_jpopupmenu *menu, - t_object *box, t_object *view, - int defitemid); - -/** Tell a menu to display near a given box in a patcher with options. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param box The box above which to display the menu. - @param view The patcherview for the box in which to display the menu. - @param opts The jpopupmenu options - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup_nearbox_with_options(t_jpopupmenu *menu, - t_object *box, t_object *view, - t_jpopupmenu_options opts); - -/** Tell a menu to display below a given rectangle in a patcher. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param rect The rectangle below which to display the menu. - @param defitemid The initially choosen item id. - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup_belowrect(t_jpopupmenu *menu, t_rect rect, int defitemid); - -/** Tell a menu to display above a given rectangle in a patcher. - @ingroup jpopupmenu - @param menu The pop-up menu to display. - @param rect The rectangle above which to display the menu. - @param defitemid The initially choosen item id. - @return The item id for the item in the menu choosen by the user. */ -int jpopupmenu_popup_aboverect(t_jpopupmenu *menu, t_rect rect, int defitemid); - -int jpopupmenu_popup_leftofpt(t_jpopupmenu *menu, t_pt pt, int defitemid, int flags); - -int jpopupmenu_popup_centered(t_jpopupmenu *menu, - t_pt screen, - int defitemid); // initial item id - -void jpopupmenu_estimatesize(t_jpopupmenu *menu, int *width, int *height); -void jpopupmenu_setitemtooltip(void *itemref, char *tip); -void jpopupmenu_setfixedwidth(t_jpopupmenu *menu, int width); -void jpopupmenu_additemwithshortcut(t_jpopupmenu *menu, int itemid, - const char *utf8Text, - t_jrgba *textColor, - int checked, int disabled, - t_jsurface *icon, t_jsvg *svg, char *shortcut); - -enum { - JPOPUPMENU_DARKSTYLE = 1, - JPOPUPMENU_FLATSTYLE = 2 -}; - -void jpopupmenu_setstandardstyle(t_jpopupmenu *menu, long styleindex, double fontsize, int margin); - - -/** Tell any open popup menus to go away. -*/ -void jpopupmenu_closeall(); - -// unused by any C74 code -// you can draw to a surface and then turn that into a cursor -// only works with 16 x 16 surfaces -void jmouse_setcursor_surface(t_object *patcherview, t_object *box, t_jsurface *surface, int xHotSpot, int yHotSpot); - - -// Unused by any C74 code -void jbox_fontface_to_weight_slant(t_object *b, long *weight, long *slant); - -/** Get the slant box's font. - @ingroup jfont - @param b An object's box. - @return A value from the #t_jgraphics_font_weight enum. */ -long jbox_get_font_weight(t_object *b); - -/** Get the slant box's font. - @ingroup jfont - @param b An object's box. - @return A value from the #t_jgraphics_font_slant enum. */ -long jbox_get_font_slant(t_object *b); - -// create a jfont object for box -- internal use only -t_jfont *jbox_createfont(t_object *b); - -void jgraphics_jrgba_set_brightness(t_jrgba *c, double amt); - -// utility funtions and macros for new rgba attribtes and legacy rgb attributes - -// don't call these two functions directly, instead use the macros below... -t_max_err jgraphics_attr_setrgba(t_object *x, t_object *attr, long argc, t_atom *argv); -t_max_err jgraphics_attr_getrgba(t_object *x, t_object *attr, long *argc, t_atom **argv); // only used fo debugging -t_max_err jgraphics_attr_setrgb_alias(t_object *x, t_object *attr, long argc, t_atom *argv); - - -/** - Create a color (#t_jrgba) attribute and add it to a Max class. - - @ingroup attr - @param c The class pointer. - @param attrname The name of this attribute as a C-string. - @param flags Any flags you wish to declare for this attribute, as defined in #e_max_attrflags. - @param structname The C identifier for the struct (containing a valid #t_object header) representing an instance of this class. - @param structmember The C identifier of the member in the struct that holds the value of this attribute. -*/ -#define CLASS_ATTR_RGBA(c,attrname,flags,structname,structmember) \ - { CLASS_ATTR_DOUBLE_ARRAY(c,attrname,flags,structname,structmember,4); \ - CLASS_ATTR_ACCESSORS(c,attrname,jgraphics_attr_getrgba,jgraphics_attr_setrgba); \ - CLASS_ATTR_PAINT(c,attrname,0); } - - -// for internal use only? -#define CLASS_ATTR_RGBA_LEGACY(c,attrname,aliasname,flags,structname,structmember) \ - { CLASS_ATTR_RGBA(c,attrname,flags,structname,structmember); \ - CLASS_ATTR_ALIAS(c,attrname,aliasname); \ - CLASS_ATTR_INVISIBLE(c,aliasname,0); \ - CLASS_ATTR_ACCESSORS(c,aliasname,NULL,jgraphics_attr_setrgb_alias); } - - -/** - Retrieves the value of a color attribute, given its parent object and name. - - @ingroup attr - @param ob The attribute's parent object - @param s The attribute's name - @param c The address of a #t_jrgba struct that will be filled with the attribute's color component values. - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_getjrgba(void *ob, t_symbol *s, t_jrgba *c); - - -/** - Sets the value of a color attribute, given its parent object and name. - The function will call the attribute's set method, using the data provided. - - @ingroup attr - @param ob The attribute's parent object - @param s The attribute's name - @param c The address of a #t_jrgba struct that contains the new color. - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_setjrgba(void *ob, t_symbol *s, t_jrgba *c); - - -/** Get the components of a color in an array of pre-allocated atoms. - - @ingroup color - @param argv The address to the first of an array of atoms that will hold the result. - At least 4 atoms must be allocated, as 4 atoms will be set by this function - for the red, green, blue, and alpha components. - @param c The address of a #t_jrgba struct from which the color components will be fetched. -*/ -void jrgba_to_atoms(t_jrgba *c, t_atom *argv); - - -/** Set the components of a color by providing an array of atoms. - If it is an array of 3 atoms, then the atoms provided should define the - red, green, and blue components (in this order) in a range of [0.0, 1.0]. - If a 4th atom is provided, it will define the alpha channel. - If the alpha channel is not defined then it is assumed to be 1.0. - - @ingroup color - @param argc The number of atoms in the array provided in argv. - This should be 3 or 4 depending on whether or not the alpha channel is being provided. - @param argv The address to the first of an array of atoms that define the color. - @param c The address of a #t_jrgba struct for which the color will be defined. - @return A Max error code. */ -t_max_err atoms_to_jrgba(long argc, t_atom *argv, t_jrgba *c); - - -/** Set the components of a color. - @ingroup color - @param prgba The address of a #t_jrgba struct for which the color will be defined. - @param r The value of the red component in a range of [0.0, 1.0]. - @param g The value of the green component in a range of [0.0, 1.0]. - @param b The value of the blue component in a range of [0.0, 1.0]. - @param a The value of the alpha component in a range of [0.0, 1.0]. */ -void jrgba_set(t_jrgba *prgba, double r, double g, double b, double a); - - -/** Copy a color. - @ingroup color - @param dest The address of a #t_jrgba struct to which the color will be copied. - @param src The address of a #t_jrgba struct from which the color will be copied. */ -void jrgba_copy(t_jrgba *dest, t_jrgba *src); - - -/** Compare two colors for equality. - @ingroup color - @param rgba1 The address of a #t_jrgba struct to compare. - @param rgba2 The address of another #t_jrgba struct to compare. - @return returns 1 if rgba1 == rgba2. */ -long jrgba_compare(t_jrgba *rgba1, t_jrgba *rgba2); - - -/** Get a list of of filetypes appropriate for use with jgraphics surfaces. - @ingroup jgraphics - @param dummy Unused. - @param count The address of a variable to be set with the number of types in filetypes upon return. - @param filetypes The address of a variable that will represent the array of file types upon return. - @param alloc The address of a char that will be flagged with a 1 or a 0 depending on whether or not - memory was allocated for the filetypes member. - - @remark This example shows a common usage of jgraphics_getfiletypes(). - @code - char filename[MAX_PATH_CHARS]; - t_fourcc *type = NULL; - long ntype; - long outtype; - t_max_err err; - char alloc; - short path; - t_jsurface *surface; - - if (want_to_show_dialog) { - jgraphics_getfiletypes(x, &ntype, &type, &alloc); - err = open_dialog(filename, &path,(void *)&outtype, (void *)type, ntype); - if (err) - goto out; - } - else { - strncpy_zero(filename, s->s_name, MAX_PATH_CHARS); - err = locatefile_extended(filename, &path, &outtype, type, ntype); - if (err) - goto out; - } - surface = jgraphics_image_surface_create_referenced(filename, path); -out: - if (alloc) - sysmem_freeptr((char *)type); - @endcode -*/ -void jgraphics_getfiletypes(void *dummy, long *count, t_fourcc **filetypes, char *alloc); - - -// boxlayer stuff - -/** Invalidate a layer, indicating that it needs to be re-drawn. - @ingroup boxlayer - @param b The object/box to invalidate. - @param view The patcherview for the object which should be invalidated, or NULL for all patcherviews. - @param name The name of the layer to invalidate. - @return A Max error code. */ -t_max_err jbox_invalidate_layer(t_object *b, t_object *view, t_symbol *name); - -// unused by any C74 code -t_max_err jbox_remove_layer(t_object *b, t_object *view, t_symbol *name); - -/** Create a layer, and ready it for drawing commands. - The layer drawing commands must be wrapped with a matching call to jbox_end_layer() - prior to calling jbox_paint_layer(). - - @ingroup boxlayer - @param b The object/box to which the layer is attached. - @param view The patcherview for the object to which the layer is attached. - @param name A name for this layer. - @param width The width of the layer. - @param height The height of the layer. - @return A #t_jgraphics context for drawing into the layer. */ -t_jgraphics* jbox_start_layer(t_object *b, t_object *view, t_symbol *name, double width, double height); - -/** Conclude a layer, indicating that it is complete and ready for painting. - @ingroup boxlayer - @param b The object/box for the layer opened by jbox_start_layer(). - @param view The patcherview for the object opened by jbox_start_layer(). - @param name The name of the layer. - @return A Max error code. */ -t_max_err jbox_end_layer(t_object *b, t_object *view, t_symbol *name); - -/** Paint a layer at a given position. - Note that the current color alpha value is used when painting layers to allow you to blend layers. - The same is also true for jgraphics_image_surface_draw() and jgraphics_image_surface_draw_fast(). - - @ingroup boxlayer - @param b The object/box to be painted. - @param view The patcherview for the object which should be painted, or NULL for all patcherviews. - @param name The name of the layer to paint. - @param x The x-coordinate for the position at which to paint the layer. - @param y The y-coordinate for the position at which to paint the layer. - @return A Max error code. */ -t_max_err jbox_paint_layer(t_object *b, t_object *view, t_symbol *name, double x, double y); - - -/** Simple utility to test for rectangle intersection. - @ingroup jgraphics - @param r1 The address of the first rect for the test. - @param r2 The address of the second rect for the test. - @return Returns true if the rects intersect, otherwise false. */ -long jgraphics_rectintersectsrect(t_rect *r1, t_rect *r2); - -/** Simple utility to test for rectangle containment. - @ingroup jgraphics - @param outer The address of the first rect for the test. - @param inner The address of the second rect for the test. - @return Returns true if the inner rect is completely inside the outer rect, - otherwise false. */ -long jgraphics_rectcontainsrect(t_rect *outer, t_rect *inner); - -/** Generate a #t_rect according to positioning rules. - @ingroup jgraphics - @param positioned_rect The address of a valid #t_rect whose members will be filled in upon return. - @param positioned_near_this_rect A pointer to a rect near which this rect should be positioned. - @param keep_inside_this_rect A pointer to a rect defining the limits within which the new rect must reside. */ -void jgraphics_position_one_rect_near_another_rect_but_keep_inside_a_third_rect( - t_rect *positioned_rect, - const t_rect *positioned_near_this_rect, - const t_rect *keep_inside_this_rect); - - -/** Clip to a subset of the graphics context; once done, cannot be undone, only further reduced. - @ingroup jgraphics - - @param g The #t_jgraphics context to be clipped. - @param x x origin of clip region. - @param y y origin of clip region. - @param width width of clip region. - @param height height of clip region. - */ -void jgraphics_clip(t_jgraphics *g, double x, double y, double width, double height); - - -typedef enum _jgraphics_dpi_awareness { - JGRAPHICS_DPI_AWARENESS_DEFAULT, // will be aware if Max has hi dpi enabled - JGRAPHICS_DPI_AWARENESS_UNAWARE, - JGRAPHICS_DPI_AWARENESS_SYSTEM_AWARE, - JGRAPHICS_DPI_AWARENESS_PER_MONITOR_AWARE, - JGRAPHICS_DPI_AWARENESS_PER_MONITOR_AWARE_V2 -} t_jgraphics_dpi_awareness; - - - -t_dpi_awareness_context* jgraphics_enterdpiawarenesscontext(t_jgraphics_dpi_awareness awareness); -void jgraphics_exitdpiawarenesscontext(t_dpi_awareness_context *context); - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // #ifndef _JGRAPHICS_H_ - diff --git a/source/c74support/max-includes/jpatcher_api.h b/source/c74support/max-includes/jpatcher_api.h deleted file mode 100644 index c82907bd..00000000 --- a/source/c74support/max-includes/jpatcher_api.h +++ /dev/null @@ -1,2241 +0,0 @@ -#ifndef _JPATCHER_API_H_ -#define _JPATCHER_API_H_ - -#include "jpatcher_syms.h" -#include "ext_dictionary.h" -#include "max_keydefs.h" - -BEGIN_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - - -#define JPATCHER_API_CURRENT_FILE_VERSION 1 - - -// ddz changed enum below to a mask so it can be returned by clipboard_datatypes() - -typedef enum _clipboard_datatype { - JCLIPBOARD_TYPE_TEXT = 1, - JCLIPBOARD_TYPE_BINBUF = 2, - JCLIPBOARD_TYPE_JSON = 4, - JCLIPBOARD_TYPE_IMAGE = 8, - JCLIPBOARD_TYPE_JSON_ATTRIBUTES = 16, - JCLIPBOARD_TYPE_UNKNOWN = 256 -} t_clipboard_datatype; - - - -t_symbol *fontmap_getmapping(t_symbol *from, char *mapped); -double fontinfo_getsize(short oldsize); // tranlsate max 4.6 font size to max 5 font size -t_symbol *fontinfo_getname(short number); -short fontinfo_getnumber(t_symbol *s); - - -// Core structs - -/** - Coordinates for specifying a rectangular region. - @ingroup datatypes - @see t_pt - @see t_size */ -typedef struct _rect -{ - double x; ///< The horizontal origin - double y; ///< The vertical origin - double width; ///< The width - double height; ///< The height -} t_rect; - - -/** - Coordinates for specifying a point. - @ingroup datatypes - @see t_rect - @see t_size */ -typedef struct _pt -{ - double x; ///< The horizontal coordinate - double y; ///< The vertical coordinate -} t_pt; - - -/** - Coordinates for specifying the size of a region. - @ingroup datatypes - @see t_rect - @see t_pt */ -typedef struct _size -{ - double width; ///< The width - double height; ///< The height -} t_size; - - -/** A color composed of red, green, and blue components. - Typically such a color is assumed to be completely opaque (with no transparency). - @ingroup color - @see t_jrgba */ -typedef struct _jrgb { - double red; ///< Red component in the range [0.0, 1.0] - double green; ///< Green component in the range [0.0, 1.0] - double blue; ///< Blue component in the range [0.0, 1.0] -} t_jrgb; - - -/** A color composed of red, green, blue, and alpha components. - @ingroup color */ -typedef struct _jrgba { - double red; ///< Red component in the range [0.0, 1.0] - double green; ///< Green component in the range [0.0, 1.0] - double blue; - double alpha; ///< Alpha (transparency) component in the range [0.0, 1.0] -} t_jrgba; - - -/** - The t_jboxdrawparams structure. This struct is provided for debugging convenience, - but should be considered opaque and is subject to change without notice. - - @ingroup jbox -*/ -typedef struct _jboxdrawparams { - float d_inletheight; - float d_inletvoffset; - float d_outletheight; - float d_outletvoffset; - float d_reserved1; // was d_inletinset. unused and can chop but will require rebuild all so for now I'm renaming - float d_cornersize; // how rounded is the box - float d_borderthickness; - t_jrgba d_bordercolor; - t_jrgba d_boxfillcolor; -} t_jboxdrawparams; - -#define JBOX_SPOOL_CONTENTS 1 -#define JBOX_SPOOL_WHOLEBOX 2 - -#define JBOX_FLAG_READY 0x01 // set once the box has finished construction -#define JBOX_FLAG_NOT_YET_VISIBLE 0x02 // used to defer expensive size calculations until will be visible -#define JBOX_FLAG_VALIDATE_RECT 0x04 // used to force rect to be validated despite size not changing - -/** The t_jbox struct provides the header for a Max user-interface object. - This struct should be considered opaque and is subject to change without notice. - Do not access it's members directly any code. - - @ingroup patcher -*/ -typedef struct _jbox -{ - t_object b_ob; - void *obex; - t_object *b_patcher; - t_rect b_patching_rect; - t_rect b_presentation_rect; - t_symbol *b_name; - t_symbol *b_id; // immutable box ID - t_object *b_firstin; // the object, could be the box - t_object *b_textfield; // optional text field. - t_symbol *b_fontname; - double b_fontsize; - char* b_hint; - t_jrgba b_color; - double b_unused; // we can chop this or make it do something different - void *b_binbuf; // really an atombuf :) - long b_temp; - char b_spooled; - char b_hidden; - char b_hilitable; - char b_background; - char b_ignoreclick; - char b_bogus; - char b_drawfirstin; - char b_outline; - char b_growy; - char b_growboth; - char b_nogrow; - char b_drawinlast; - char b_paintoverchildren; - char b_mousedragdelta; // hide mouse during drag, and send mousedragdelta instead of mousedrag for infinite scrolling - char b_presentation; - char b_drawiolocked; - char b_dragactive; - char b_drawbackground; - char b_unused2; // was b_hinttrack, now unused - char b_fontface; - char *b_annotation; - char b_opaque; - char b_useimagebuffer; - char b_noinspectfirstin; - char b_editactive; // editing via inspector - t_symbol *b_prototypename; - char b_commasupport; - char b_boxflags; - char b_textjustification; - char b_reserved3; - void *b_ptemp; -} t_jbox; - - -// selection information -- private -typedef struct _pvselinfo -{ - long nboxselect; - long nlineselect; - long nselboxhidden; // how many of the selected boxes are hidden - long nsellinehidden; // how many of the selected lines are hidden - long ncanignoreclick; // how many of the selected items could accept the ingore click command - long ncanrespondtoclick;// how many of the selected items could accept the respond to click command - long nbg; // how many of the selected items are in the background - long nboxcolorable; // how many respond to the color message - long nselboxbg; // how many of the selected boxes are in the background - long nboxinfo; // how many of the selected boxes respond to the info message - long nboxfixwidth; // how many of the selected boxes respond to the fixwidth message - long nboxpatcher; // how many of the selected boxes are patchers - long nboxpresent; // how many of the selected boxes are in the presentation - long nwiretaplines; // how many of the selected lines have wiretaps (breakpoint, watchpoint, enabled or not) - long nwatchpointlines; // how many of the selected lines have watchpoints enabled - long nbreakpointlines; // how many of the selected lines have breakpoints enabled - long nenabledwiretaplines; // how many of the selected lines are enabled - long sameclass; // are all selected items of the same class (true for one object, N patchlines, or N boxes of the same class) - long editbox; // is a text box currently being edited - long nlineswithsegments;// how many of the selected lines have at least one segment - long nlinesdisabled; // how many of the selected lines are disabled - long nsignallines; // number of selected lines that are signal patch cords - long nboxdblclick; // how many of the selected boxes respond to the dblclick msg -} t_pvselinfo; - - -// jpatcher interface - -/** Gets the value of a #t_rect attribute, given its parent object and name. - Do not use this on a jbox object -- use jbox_get_rect_for_view() instead! - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param rect The address of a valid #t_rect whose values will be filled-in from the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_get_rect(t_object *o, t_symbol *name, t_rect *rect); - -/** Sets the value of a #t_rect attribute, given its parent object and name. - Do not use this on a jbox object -- use jbox_get_rect_for_view() instead! - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param rect The address of a valid #t_rect whose values will be used to set the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_set_rect(t_object *o, t_symbol *name, t_rect *rect); - - -/** Sets the value of a #t_rect attribute, given its parent object and name. - Do not use this on a jbox object -- use jbox_get_rect_for_view() instead! - - @ingroup attr - @param o The attribute's parent object - @param attr The attribute's name - @param x A double containing the new x position. - @param y A double containing the new y position. - @param w A double containing the new width. - @param h A double containing the new height. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -void object_attr_set_xywh(t_object *o, t_symbol *attr, double x, double y, double w, double h); - - -/** Gets the value of a #t_pt attribute, given its parent object and name. - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param pt The address of a valid #t_pt whose values will be filled-in from the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. -*/ -t_max_err object_attr_getpt(t_object *o, t_symbol *name, t_pt *pt); - - -/** Sets the value of a #t_pt attribute, given its parent object and name. - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param pt The address of a valid #t_pt whose values will be used to set the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_setpt(t_object *o, t_symbol *name, t_pt *pt); - - -/** Gets the value of a #t_size attribute, given its parent object and name. - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param size The address of a valid #t_size whose values will be filled-in from the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_getsize(t_object *o, t_symbol *name, t_size *size); - -/** Sets the value of a #t_size attribute, given its parent object and name. - - @ingroup attr - @param o The attribute's parent object - @param name The attribute's name - @param size The address of a valid #t_size whose values will be used to set the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_setsize(t_object *o, t_symbol *name, t_size *size); - - -/** Gets the value of a #t_jrgba attribute, given its parent object and name. - - @ingroup attr - @param b The attribute's parent object - @param attrname The attribute's name - @param prgba The address of a valid #t_jrgba whose values will be filled-in from the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_getcolor(t_object *b, t_symbol *attrname, t_jrgba *prgba); - -/** Sets the value of a #t_jrgba attribute, given its parent object and name. - - @ingroup attr - @param b The attribute's parent object - @param attrname The attribute's name - @param prgba The address of a valid #t_jrgba whose values will be used to set the attribute. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err object_attr_setcolor(t_object *b, t_symbol *attrname, t_jrgba *prgba); - - -/** Get the value of a #t_jrgba struct, returned as an array of atoms with the values for each component. - - @ingroup color - @param jrgba The color struct whose color will be retrieved. - @param argc The address of a variable that will be set with the number of atoms in the argv array. - The returned value should be 4. - The value of the int should be set to 0 prior to calling this function. - @param argv The address of a #t_atom pointer that will receive the a new array of atoms set to the values of the jrgba struct. - The pointer should be set to NULL prior to calling this function. - There should be 4 atoms returned, representing alpha, red, green, and blue components. - When you are done using the atoms, you are responsible for freeing the pointer using sysmem_freeptr(). - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err jrgba_attr_get(t_jrgba *jrgba, long *argc, t_atom **argv); - -/** Set the value of a #t_jrgba struct, given an array of atoms with the values to use. - - @ingroup color - @param jrgba The color struct whose color will be set. - @param argc The number of atoms in the array. This must be 4. - @param argv The address of the first of the atoms in the array. - There must be 4 atoms, representing alpha, red, green, and blue components. - - @return This function returns the error code #MAX_ERR_NONE if successful, - or one of the other error codes defined in #e_max_errorcodes if unsuccessful. */ -t_max_err jrgba_attr_set(t_jrgba *jrgba, long argc, t_atom *argv); - - - - -// various utilities -void set_jrgba_from_palette_index(short index, t_jrgba *jrgba); -void set_jrgba_from_boxcolor_index(short index, t_jrgba *jrgba); -short get_boxcolor_index_from_jrgba(t_jrgba *jrgba); -void jgraphics_clip_rgba(t_jrgba *rgba); - - -/** Open the help patcher for a given instance of an object. - @ingroup obj - @param x The object instance for which to open the help patcher. */ -void object_openhelp(t_object *x); - -/** Open the reference page for a given instance of an object. - @ingroup obj - @param x The object instance for which to open the reference page. */ -void object_openrefpage(t_object *x); - -/** Open a search in the file browser for files with the name of the given object. - @ingroup obj - @param x The object instance for which to query. */ -void object_openquery(t_object *x); - - -/** Open the help patcher for a given object class name. - @ingroup obj - @param classname The class name for which to open the help patcher. */ -void classname_openhelp(char *classname); - -/** Open the reference page for a given object class name. - @ingroup obj - @param classname The class name for which to open the reference page.*/ -void classname_openrefpage(char *classname); - -/** Open a search in the file browser for files with the name of the given class. - @ingroup obj - @param classname The class name for which to query. */ -void classname_openquery(char *classname); - - -/** Find a patcherview at the given screen coords. - @ingroup jpatcherview - @param x The horizontal coordinate at which to find a patcherview. - @param y The vertical coordinate at which to find a patcherview. - @return A pointer to the patcherview at the specified location, - or NULL if no patcherview exists at that location. */ -t_object* patcherview_findpatcherview(int x, int y); - - -// private (initialize object palette -- separated so it can be moved to optimize startup experience) -void patcherview_makepalette(void); - - -// Utilities to get/set patcher attributes - -/** Determine of a #t_object* is a patcher object. - @ingroup jpatcher - @param p The object pointer to test. - @return Returns true if the object is a patcher, otherwise returns non-zero. */ -int jpatcher_is_patcher(t_object *p); - -/** If a patcher is inside a box, return its box. - @ingroup jpatcher - @param p The patcher to be queried. - @return A pointer to the box containing the patcher, otherwise NULL. */ -t_object* jpatcher_get_box(t_object *p); - -/** Determine the number of boxes in a patcher. - @ingroup jpatcher - @param p The patcher to be queried. - @return The number of boxes in the patcher. */ -long jpatcher_get_count(t_object *p); - - -/** To determine whether a patcher is currently in a locked state, - you should actually query the patcherview using patcherview_get_locked(). - This is because, for any given patcher, there may be multiple views with differing locked states. - - @param p The patcher to be queried. - @return True if the patcher is locked, otherwise false. - @see patcherview_get_locked() */ -char jpatcher_get_locked(t_object *p); - -/** Lock or unlock a patcher. - @ingroup jpatcher - @param p The patcher whose locked state will be changed. - @param c Pass true to lock a patcher, otherwise pass false. - @return A Max error code. */ -t_max_err jpatcher_set_locked(t_object *p, char c); - - -/** Determine whether a patcher is currently in presentation mode. - @ingroup jpatcher - @param p The patcher to be queried. - @return True if the patcher is in presentation mode, otherwise false. */ -char jpatcher_get_presentation(t_object *p); - -/** Set a patcher to presentation mode. - @ingroup jpatcher - @param p The patcher whose locked state will be changed. - @param c Pass true to switch the patcher to presentation mode, otherwise pass false. - @return A Max error code. */ -t_max_err jpatcher_set_presentation(t_object *p, char c); - - -/** Get the first box in a patcher. - All boxes in a patcher are maintained internally in a #t_linklist. - Use this function together with jbox_get_nextobject() to traverse a patcher. - @ingroup jpatcher - @param p The patcher to be queried. - @return The first box in a patcher. - @see jbox_get_prevobject() - jbox_get_nextobject() - jpatcher_get_lastobject() */ -t_object* jpatcher_get_firstobject(t_object *p); - -/** Get the last box in a patcher. - All boxes in a patcher are maintained internally in a #t_linklist. - Use this function together with jbox_get_prevobject() to traverse a patcher. - @ingroup jpatcher - @param p The patcher to be queried. - @return The last box in a patcher. - @see jbox_get_prevobject() - jbox_get_nextobject() - jpatcher_get_firstobject() */ -t_object* jpatcher_get_lastobject(t_object *p); - - -/** Get the first line (patch-cord) in a patcher. - All lines in a patcher are maintained internally in a #t_linklist. - Use this function to begin traversing a patcher's lines. - @ingroup jpatcher - @param p The patcher to be queried. - @return The first jpatchline in a patcher. */ -t_object* jpatcher_get_firstline(t_object *p); - -/** Get the first view (jpatcherview) for a given patcher. - All views of a patcher are maintained internally as a #t_linklist. - Use this function to begin traversing a patcher's views. - @ingroup jpatcher - @param p The patcher to be queried. - @return The first view of a patcher. */ -t_object* jpatcher_get_firstview(t_object *p); - - -/** Retrieve a patcher's title. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's title. */ -t_symbol* jpatcher_get_title(t_object *p); - -/** Set a patcher's title. - @ingroup jpatcher - @param p The patcher whose locked state will be changed. - @param ps The new title for the patcher. - @return A Max error code. */ -t_max_err jpatcher_set_title(t_object *p, t_symbol *ps); - - -/** Retrieve a patcher's name. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's name. */ -t_symbol* jpatcher_get_name(t_object *p); - -/** Retrieve a patcher's file path. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's file path. */ -t_symbol* jpatcher_get_filepath(t_object *p); - -/** Retrieve a patcher's file name. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's file name. */ -t_symbol* jpatcher_get_filename(t_object *p); - - -/** Determine whether a patcher's dirty bit has been set. - @ingroup jpatcher - @param p The patcher to be queried. - @return True if the patcher is dirty, otherwise false. */ -char jpatcher_get_dirty(t_object *p); - -/** Set a patcher's dirty bit. - @ingroup jpatcher - @param p The patcher whose dirty bit will be set. - @param c The new value for the patcher's dirty bit (pass true or false). - @return A Max error code. */ -t_max_err jpatcher_set_dirty(t_object *p, char c); - - -/** Determine whether a patcher's background layer is locked. - @ingroup jpatcher - @param p The patcher to be queried. - @return True if the background layer is locked, otherwise false. */ -char jpatcher_get_bglocked(t_object *p); - -/** Set whether a patcher's background layer is locked. - @ingroup jpatcher - @param p The patcher whose dirty bit will be set. - @param c Pass true to lock the patcher's background layer, otherwise pass false. - @return A Max error code. */ -t_max_err jpatcher_set_bglocked(t_object *p, char c); - - -/** Determine whether a patcher's background layer is hidden. - @ingroup jpatcher - @param p The patcher to be queried. - @return True if the background layer is hidden, otherwise false. */ -char jpatcher_get_bghidden(t_object *p); - -/** Set whether a patcher's background layer is hidden. - @ingroup jpatcher - @param p The patcher whose dirty bit will be set. - @param c Pass true to hide the patcher's background layer, otherwise pass false. - @return A Max error code. */ -t_max_err jpatcher_set_bghidden(t_object *p, char c); - - -/** Determine whether a patcher's foreground layer is hidden. - @ingroup jpatcher - @param p The patcher to be queried. - @return True if the foreground layer is hidden, otherwise false. */ -char jpatcher_get_fghidden(t_object *p); - -/** Set whether a patcher's foreground layer is hidden. - @ingroup jpatcher - @param p The patcher whose dirty bit will be set. - @param c Pass true to hide the patcher's foreground layer, otherwise pass false. - @return A Max error code. */ -t_max_err jpatcher_set_fghidden(t_object *p, char c); - - -// TODO: unused? -// t_object* jpatcher_get_font(t_object *p); - - -/** Retrieve a patcher's editing background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a valid #t_jrgba struct that will be filled-in with the current patcher color values. - @return A Max error code. */ -t_max_err jpatcher_get_editing_bgcolor(t_object *p, t_jrgba *prgba); - -/** Set a patcher's editing background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a #t_jrgba struct containing the new color to use. - @return A Max error code. */ -t_max_err jpatcher_set_editing_bgcolor(t_object *p, t_jrgba *prgba); - - -/** Retrieve a patcher's unlocked background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a valid #t_jrgba struct that will be filled-in with the current patcher color values. - @return A Max error code. */ -t_max_err jpatcher_get_bgcolor(t_object *p, t_jrgba *prgba); - -/** Retrieve a patcher's locked background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a valid #t_jrgba struct that will be filled-in with the current patcher color values. - @return A Max error code. */ -t_max_err jpatcher_get_locked_bgcolor(t_object *p, t_jrgba *prgba); - -/** Set a patcher's unlocked background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a #t_jrgba struct containing the new color to use. - @return A Max error code. */ -t_max_err jpatcher_set_bgcolor(t_object *p, t_jrgba *prgba); - -/** Set a patcher's locked background color. - @ingroup jpatcher - @param p The patcher to be queried. - @param prgba The address of a #t_jrgba struct containing the new color to use. - @return A Max error code. */ -t_max_err jpatcher_set_locked_bgcolor(t_object *p, t_jrgba *prgba); - - -/** Retrieve a patcher's grid size. - @ingroup jpatcher - @param p The patcher to be queried. - @param gridsizeX The address of a double that will be set to the current horizontal grid spacing for the patcher. - @param gridsizeY The address of a double that will be set to the current vertical grid spacing for the patcher. - @return A Max error code. */ -t_max_err jpatcher_get_gridsize(t_object *p, double *gridsizeX, double *gridsizeY); - -/** Set a patcher's grid size. - @ingroup jpatcher - @param p The patcher to be queried. - @param gridsizeX The new horizontal grid spacing for the patcher. - @param gridsizeY The new vertical grid spacing for the patcher. - @return A Max error code. */ -t_max_err jpatcher_set_gridsize(t_object *p, double gridsizeX, double gridsizeY); - - -// private -t_object* jpatcher_get_controller(t_object *p); - - -/** Delete an object that is in a patcher. - @ingroup jpatcher - @param p The patcher. - @param b The object box to delete. */ -void jpatcher_deleteobj(t_object *p, t_jbox *b); - - -/** Given a patcher, return its parent patcher. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's parent patcher, if there is one. - If there is no parent patcher (this is a top-level patcher) then NULL is returned. */ -t_object* jpatcher_get_parentpatcher(t_object *p); - -/** Given a patcher, return the top-level patcher for the tree in which it exists. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's top-level parent patcher. */ -t_object* jpatcher_get_toppatcher(t_object *p); - -/** Given a patcher, return the patcher that will be responsible for holding the parameter hub. - @ingroup jpatcher - @param p The patcher to be queried. - @return The patcher's parameter hub holder. */ -t_object* jpatcher_get_hubholder(t_object *p); - -// unused -t_symbol* jpatcher_get_maxclass(t_object *p); -t_symbol* jpatcher_get_parentclass(t_object *p); - - -/** Query a patcher to determine its location and size. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @param pr The address of valid #t_rect whose values will be filled-in upon return. - @return A Max error code. */ -t_max_err jpatcher_get_rect(t_object *p, t_rect *pr); - -/** Set a patcher's location and size. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @param pr The address of a #t_rect with the new position and size. - @return A Max error code. */ -t_max_err jpatcher_set_rect(t_object *p, t_rect *pr); - - -/** Query a patcher to determine the location and dimensions of its window when initially opened. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @param pr The address of valid #t_rect whose values will be filled-in upon return. - @return A Max error code. */ -t_max_err jpatcher_get_defrect(t_object *p, t_rect *pr); - -/** Set a patcher's default location and size. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @param pr The address of a #t_rect with the new position and size. - @return A Max error code. */ -t_max_err jpatcher_set_defrect(t_object *p, t_rect *pr); - - -// private -char jpatcher_get_noedit(t_object *p); -t_object *jpatcher_get_collective(t_object *p); -char jpatcher_get_cansave(t_object *p); - - -/** Generate a unique name for a box in patcher. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @param classname The name of an object's class. - @return The newly-generated unique name. - @remark This is the function used by pattr to assign names to objects in a patcher. */ -t_symbol *jpatcher_uniqueboxname(t_object *p, t_symbol *classname); - - -// private -short jpatcher_getboxfont(t_object *p, short fnum, double *fsize, t_symbol **fontname); - - -/** Return the name of the default font used for new objects in a patcher. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @return The name of the default font used for new objects in a patcher. -*/ -t_symbol *jpatcher_get_default_fontname(t_object *p); - - -/** Return the size of the default font used for new objects in a patcher. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @return The size of the default font used for new objects in a patcher. -*/ -float jpatcher_get_default_fontsize(t_object *p); - - -/** Return the index of the default font face used for new objects in a patcher. - @ingroup jpatcher - @param p A pointer to a patcher instance. - @return The index of the default font face used for new objects in a patcher. -*/ -long jpatcher_get_default_fontface(t_object *p); - - -// private -t_max_err jpatcher_set_imprint(t_object *p, char c); -char jpatcher_get_imprint(t_object *p); - -// private (only used by jdatatest) -void jpatcher_addboxlistener(t_object *p, t_object *listener); -void jpatcher_removeboxlistener(t_object *p, t_object *listener); - - -/** Return the file version of the patcher. - @ingroup jpatcher - @param p A pointer to the patcher whose version number is desired. - @return The file version number. */ -long jpatcher_get_fileversion(t_object *p); - -/** Return the file version for any new patchers, e.g. the current version created by Max. - @ingroup jpatcher - @return The file version number. */ -long jpatcher_get_currentfileversion(void); - - - - -// Utilities to get/set box attributes - -/** Find the rect for a box in a given patcherview. - @ingroup jbox - @param box The box whose rect will be fetched. - @param patcherview A patcherview in which the box exists. - @param rect The address of a valid #t_rect whose members will be filled in by this function. - @return A Max error code. */ -t_max_err jbox_get_rect_for_view(t_object *box, t_object *patcherview, t_rect *rect); - -/** Change the rect for a box in a given patcherview. - @ingroup jbox - @param box The box whose rect will be changed. - @param patcherview A patcherview in which the box exists. - @param rect The address of a valid #t_rect that will replace the current values used by the box in the given view. - @return A Max error code. */ -t_max_err jbox_set_rect_for_view(t_object *box, t_object *patcherview, t_rect *rect); - -/** Find the rect for a box with a given attribute name. - @ingroup jbox - @param box The box whose rect will be fetched. - @param which The name of the rect attribute to be fetched, for example _sym_presentation_rect or _sym_patching_rect. - @param pr The address of a valid #t_rect whose members will be filled in by this function. - @return A Max error code. */ -t_max_err jbox_get_rect_for_sym(t_object *box, t_symbol *which, t_rect *pr); - -/** Change the rect for a box with a given attribute name. - @ingroup jbox - @param box The box whose rect will be changed. - @param which The name of the rect attribute to be changed, for example _sym_presentation_rect or _sym_patching_rect. - @param pr The address of a valid #t_rect that will replace the current values used by the box. - @return A Max error code. */ -t_max_err jbox_set_rect_for_sym(t_object *box, t_symbol *which, t_rect *pr); - - -/** Set both the presentation rect and the patching rect. - @ingroup jbox - @param box The box whose rect will be changed. - @param pr The address of a #t_rect with the new rect values. - @return A Max error code. */ -t_max_err jbox_set_rect(t_object *box, t_rect *pr); - -/** Retrieve the patching rect of a box. - @ingroup jbox - @param box The box whose rect values will be retrieved. - @param pr The address of a valid #t_rect whose values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_patching_rect(t_object *box, t_rect *pr); - -/** Change the patching rect of a box. - @ingroup jbox - @param box The box whose rect will be changed. - @param pr The address of a #t_rect with the new rect values. - @return A Max error code. */ -t_max_err jbox_set_patching_rect(t_object *box, t_rect *pr); - -/** Retrieve the presentation rect of a box. - @ingroup jbox - @param box The box whose rect values will be retrieved. - @param pr The address of a valid #t_rect whose values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_presentation_rect(t_object *box, t_rect *pr); - -/** Change the presentation rect of a box. - @ingroup jbox - @param box The box whose rect will be changed. - @param pr The address of a #t_rect with the new rect values. - @return A Max error code. */ -t_max_err jbox_set_presentation_rect(t_object *box, t_rect *pr); - - -/** Set the position of a box for both the presentation and patching views. - @ingroup jbox - @param box The box whose position will be changed. - @param pos The address of a #t_pt with the new x and y values. - @return A Max error code. */ -t_max_err jbox_set_position(t_object *box, t_pt *pos); - -/** Fetch the position of a box for the patching view. - @ingroup jbox - @param box The box whose position will be retrieved. - @param pos The address of a valid #t_pt whose x and y values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_patching_position(t_object *box, t_pt *pos); - -/** Set the position of a box for the patching view. - @ingroup jbox - @param box The box whose positon will be changed. - @param pos The address of a #t_pt with the new x and y values. - @return A Max error code. */ -t_max_err jbox_set_patching_position(t_object *box, t_pt *pos); - -/** Fetch the position of a box for the presentation view. - @ingroup jbox - @param box The box whose position will be retrieved. - @param pos The address of a valid #t_pt whose x and y values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_presentation_position(t_object *box, t_pt *pos); - -/** Set the position of a box for the presentation view. - @ingroup jbox - @param box The box whose rect will be changed. - @param pos The address of a #t_pt with the new x and y values. - @return A Max error code. */ -t_max_err jbox_set_presentation_position(t_object *box, t_pt *pos); - - -/** Set the size of a box for both the presentation and patching views. - @ingroup jbox - @param box The box whose size will be changed. - @param size The address of a #t_size with the new size values. - @return A Max error code. */ -t_max_err jbox_set_size(t_object *box, t_size *size); - -/** Fetch the size of a box for the patching view. - @ingroup jbox - @param box The box whose size will be retrieved. - @param size The address of a valid #t_size whose width and height values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_patching_size(t_object *box, t_size *size); - -/** Set the size of a box for the patching view. - @ingroup jbox - @param box The box whose size will be changed. - @param size The address of a #t_size with the new width and height values. - @return A Max error code. */ -t_max_err jbox_set_patching_size(t_object *box, t_size *size); - -/** Fetch the size of a box for the presentation view. - @ingroup jbox - @param box The box whose size will be retrieved. - @param size The address of a valid #t_size whose width and height values will be filled in. - @return A Max error code. */ -t_max_err jbox_get_presentation_size(t_object *box, t_size *size); - -/** Set the size of a box for the presentation view. - @ingroup jbox - @param box The box whose size will be changed. - @param size The address of a #t_size with the new width and height values. - @return A Max error code. */ -t_max_err jbox_set_presentation_size(t_object *box, t_size *size); - - - - -/** Retrieve the name of the class of the box's object. - @ingroup jbox - @param b The box to query. - @return The name of the class of the box's object. */ -t_symbol* jbox_get_maxclass(t_object *b); - -/** Retrieve a pointer to the box's object. - @ingroup jbox - @param b The box to query. - @return A pointer to the box's object. */ -t_object* jbox_get_object(t_object *b); - -/** Retrieve a box's patcher. - @ingroup jbox - @param b The box to query. - @return If the box has a patcher, the patcher's pointer is returned. - Otherwise NULL is returned. */ -t_object* jbox_get_patcher(t_object *b); - - -/** Retrieve a box's 'hidden' attribute. - @ingroup jbox - @param b The box to query. - @return True if the box is hidden, otherwise false. */ -char jbox_get_hidden(t_object *b); - -/** Set a box's 'hidden' attribute. - @ingroup jbox - @param b The box to query. - @param c Set to true to hide the box, otherwise false. - @return A Max error code. */ -t_max_err jbox_set_hidden(t_object *b, char c); - - -/** Retrieve a box's 'fontname' attribute. - @ingroup jbox - @param b The box to query. - @return The font name. */ -t_symbol* jbox_get_fontname(t_object *b); - -/** Set a box's 'fontname' attribute. - @ingroup jbox - @param b The box to query. - @param ps The font name. Note that the font name may be case-sensitive. - @return A Max error code. */ -t_max_err jbox_set_fontname(t_object *b, t_symbol *ps); - - -/** Retrieve a box's 'fontsize' attribute. - @ingroup jbox - @param b The box to query. - @return The font size in points. */ -double jbox_get_fontsize(t_object *b); - -/** Set a box's 'fontsize' attribute. - @ingroup jbox - @param b The box to query. - @param d The fontsize in points. - @return A Max error code. */ -t_max_err jbox_set_fontsize(t_object *b, double d); - - -/** Retrieve a box's 'color' attribute. - @ingroup jbox - @param b The box to query. - @param prgba The address of a valid #t_rect whose values will be filled-in upon return. - @return A Max error code. */ -t_max_err jbox_get_color(t_object *b, t_jrgba *prgba); - -/** Set a box's 'color' attribute. - @ingroup jbox - @param b The box to query. - @param prgba The address of a #t_rect containing the desired color for the box/object. - @return A Max error code. */ -t_max_err jbox_set_color(t_object *b, t_jrgba *prgba); - - -/** Retrieve a box's hint text as a symbol. - @ingroup jbox - @param b The box to query. - @return The box's hint text. */ -t_symbol *jbox_get_hint(t_object *b); - -/** Set a box's hint text using a symbol. - @ingroup jbox - @param b The box to query. - @param s The new text to use for the box's hint. - @return A Max error code. */ -t_max_err jbox_set_hint(t_object *b, t_symbol *s); - - -/** Retrieve a box's hint text as a C-string. - @ingroup jbox - @param bb The box to query. - @return The box's hint text. */ -char *jbox_get_hintstring(t_object *bb); - -/** Set a box's hint text using a C-string. - @ingroup jbox - @param bb The box to query. - @param s The new text to use for the box's hint. - @return A Max error code. */ -void jbox_set_hintstring(t_object *bb, char *s); - - -char jbox_get_hinttrack(t_object *b); -t_max_err jbox_set_hinttrack(t_object *b, char h); - - -/** Retrieve a box's annotation string, if the user has given it an annotation. - @ingroup jbox - @param bb The box to query. - @return The user-created annotation string for a box, or NULL if no string exists. */ -char *jbox_get_annotation(t_object *bb); - -/** Set a box's annotation string. - @ingroup jbox - @param bb The box to query. - @param s The annotation string for the box. - @return A Max error code. */ -void jbox_set_annotation(t_object *bb, char *s); - - -/** The next box in the patcher's (linked) list of boxes. - @ingroup jbox - @param b The box to query. - @return The next box in the list. */ -t_object* jbox_get_nextobject(t_object *b); - -/** The previous box in the patcher's (linked) list of boxes. - @ingroup jbox - @param b The box to query. - @return The next box in the list. */ -t_object* jbox_get_prevobject(t_object *b); - - -// not implemented? -// t_symbol* jbox_get_f(t_object *b); - - -/** Retrieve a box's scripting name. - @ingroup jbox - @param b The box to query. - @return The box's scripting name. */ -t_symbol* jbox_get_varname(t_object *b); - -/** Set a box's scripting name. - @ingroup jbox - @param b The box to query. - @param ps The new scripting name for the box. - @return A Max error code. */ -t_max_err jbox_set_varname(t_object *b, t_symbol *ps); - - -/** Retrieve a boxes unique id. - @ingroup jbox - @param b The box to query. - @return The unique id of the object. This is a symbol that is referenced, for example, by patchlines. */ -t_symbol* jbox_get_id(t_object *b); - - -/** Retrieve a box flag value from a box. - @ingroup jbox - @param b The box to query. - @return The value of the canhilite bit in the box's flags. */ -char jbox_get_canhilite(t_object *b); - - -/** Determine whether a box is located in the patcher's background layer. - @ingroup jbox - @param b The box to query. - @return Zero if the object is in the foreground, otherwise non-zero. */ -char jbox_get_background(t_object *b); - -/** Set whether a box should be in the background or foreground layer of a patcher. - @ingroup jbox - @param b The box to query. - @param c Pass zero to tell the box to appear in the foreground, or non-zero to indicate that the box should be in the background layer. - @return A Max error code. */ -t_max_err jbox_set_background(t_object *b, char c); - - -/** Determine whether a box ignores clicks. - @ingroup jbox - @param b The box to query. - @return Zero if the object responds to clicks, otherwise non-zero. */ -char jbox_get_ignoreclick(t_object *b); - -/** Set whether a box ignores clicks. - @ingroup jbox - @param b The box to query. - @param c Pass zero to tell the box to respond to clicks, or non-zero to indicate that the box should ignore clicks. - @return A Max error code. */ -t_max_err jbox_set_ignoreclick(t_object *b, char c); - - -/** Determine whether a box draws its first inlet. - @ingroup jbox - @param b The box to query. - @return Zero if the inlet is not drawn, otherwise non-zero. */ -char jbox_get_drawfirstin(t_object *b); - - -/** Determine whether a box draws an outline. - @ingroup jbox - @param b The box to query. - @return Zero if the outline is not drawn, otherwise non-zero. */ -char jbox_get_outline(t_object *b); - -/** Set whether a box draws an outline. - @ingroup jbox - @param b The box to query. - @param c Pass zero to hide the outline, or non-zero to indicate that the box should draw the outline. - @return A Max error code. */ -t_max_err jbox_set_outline(t_object *b, char c); - - -/** Retrieve a box flag value from a box. - @ingroup jbox - @param b The box to query. - @return The value of the growy bit in the box's flags. */ -char jbox_get_growy(t_object *b); - -/** Retrieve a box flag value from a box. - @ingroup jbox - @param b The box to query. - @return The value of the growboth bit in the box's flags. */ -char jbox_get_growboth(t_object *b); - -/** Retrieve a box flag value from a box. - @ingroup jbox - @param b The box to query. - @return The value of the nogrow bit in the box's flags. */ -char jbox_get_nogrow(t_object *b); - -/** Retrieve a box flag value from a box. - @ingroup jbox - @param b The box to query. - @return The value of the drawinlast bit in the box's flags. */ -char jbox_get_drawinlast(t_object *b); - - -// private? -char jbox_get_mousedragdelta(t_object *b); -t_max_err jbox_set_mousedragdelta(t_object *b, char c); - - -/** Retrieve a pointer to a box's textfield. - @ingroup jbox - @param b The box to query. - @return The textfield for the box, assuming it has one. - If the box does not own a textfield then NULL is returned. */ -t_object* jbox_get_textfield(t_object *b); - - -// private -long jbox_get_understanding(t_object *b, t_symbol *msg); - - -/** Determine if a box is included in the presentation view. - @ingroup jbox - @param b The box to query. - @return Non-zero if in presentation mode, otherwise zero. */ -char jbox_get_presentation(t_object *b); - -/** Determine if a box is included in the presentation view. - @ingroup jbox - @param b The box to query. - @param c Pass zero to remove a box from the presention view, or non-zero to add it to the presentation view. - @return Non-zero if in presentation mode, otherwise zero. */ -t_max_err jbox_set_presentation(t_object *b, char c); - - -// private -t_object *jbox_get_autocompletion(t_object *b); -t_symbol *jbox_get_prototypename(t_object *b); -void jbox_set_prototypename(t_object *b, t_symbol *name); -t_atom_long jclipboard_datatypes(void); -void jbox_validaterects(t_jbox *b); - - - -// utilities to get/set patchline attributes - -typedef enum _patchline_updatetype { - JPATCHLINE_DISCONNECT=0, - JPATCHLINE_CONNECT=1, - JPATCHLINE_ORDER=2 -} t_patchline_updatetype; - -/** Retrieve a patchline's starting point. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @param x The address of a variable to hold the x-coordinate of the starting point's position upon return. - @param y The address of a variable to hold the y-coordinate of the starting point's position upon return. - @return A Max error code. */ -t_max_err jpatchline_get_startpoint(t_object *l, double *x, double *y); - -/** Retrieve a patchline's ending point. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @param x The address of a variable to hold the x-coordinate of the ending point's position upon return. - @param y The address of a variable to hold the y-coordinate of the ending point's position upon return. - @return A Max error code. */ -t_max_err jpatchline_get_endpoint(t_object *l, double *x, double *y); - -/** Determine the number of midpoints (segments) in a patchline. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @return The number of midpoints in the patchline. */ -long jpatchline_get_nummidpoints(t_object *l); - -char jpatchline_get_pending(t_object *l); - - -/** Return the object box from which a patchline originates. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @return The object box from which the patchline originates. */ -t_object* jpatchline_get_box1(t_object *l); - -/** Return the outlet number of the originating object box from which a patchline begins. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @return The outlet number. */ -long jpatchline_get_outletnum(t_object *l); - - -/** Return the destination object box for a patchline. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @return The destination object box for a patchline. */ -t_object* jpatchline_get_box2(t_object *l); - -/** Return the inlet number of the destination object box to which a patchline is connected. - @ingroup jpatchline - @param l A pointer to the patchline's instance. - @return The inlet number. */ -long jpatchline_get_inletnum(t_object *l); - - -// private? -double jpatchline_get_straightthresh(t_object *l); -t_max_err jpatchline_set_straightthresh(t_object *l, double d); - -// private? -char jpatchline_get_straightstart(t_object *l); -char jpatchline_get_straightend(t_object *l); - -// private? -t_max_err jpatchline_set_straightstart(t_object *l, char c); -t_max_err jpatchline_set_straightend(t_object *l, char c); - - -/** Given a patchline, traverse to the next patchline in the (linked) list. - @ingroup jpatchline - @param b A patchline instance. - @return The next patchline. - If the current patchline is at the end (tail) of the list, then NULL is returned. -*/ -t_object* jpatchline_get_nextline(t_object *b); - - -/** Determine if a patch line is hidden. - @ingroup jpatchline - @param l A patchline instance. - @return Zero if the patchline is visible, non-zero if it is hidden. -*/ -char jpatchline_get_hidden(t_object *l); - -/** Set a patchline's visibility. - @ingroup jpatchline - @param l A patchline instance. - @param c Pass 0 to make a patchline visible, or non-zero to hide it. - @return An error code. -*/ -t_max_err jpatchline_set_hidden(t_object *l, char c); - - -/** Get the color of a patch line. - @ingroup jpatchline - @param l A patchline instance. - @param prgba The address of a valid #t_jrgba struct that will be filled with the color values of the patch line. - @return An error code. -*/ -t_max_err jpatchline_get_color(t_object *l, t_jrgba *prgba); - -/** Set the color of a patch line. - @ingroup jpatchline - @param l A patchline instance. - @param prgba The address of a valid #t_jrgba struct containing the color to use. - @return An error code. -*/ -t_max_err jpatchline_set_color(t_object *l, t_jrgba *prgba); - - -// private -t_object *jpatchline_get_wiretap(t_object *l); -long wiretap_get_id(t_object *w); -long wiretap_get_flags(t_object *w); -void wiretap_set_flags(t_object *w, long n); - - - - -// utilities to get/set patcherview attributes - -/** Query a patcherview to determine whether it is visible. - @ingroup jpatcherview - @param pv The patcherview instance to query. - @return Returns zero if the patcherview is invisible, otherwise returns non-zero. */ -char patcherview_get_visible(t_object *pv); - -/** Set the 'visible' attribute of a patcherview. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute will be set. - @param c Whether or not the patcherview should be made visible. - @return An error code. */ -t_max_err patcherview_set_visible(t_object *pv, char c); - - -/** Get the value of the rect attribute for a patcherview. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute value will be fetched. - @param pr The address of a valid #t_rect struct, whose contents will be filled upon return. - @return An error code. */ -t_max_err patcherview_get_rect(t_object *pv, t_rect *pr); - -/** Set the value of the rect attribute for a patcherview. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute value will be set. - @param pr The address of a valid #t_rect struct. - @return An error code. */ -t_max_err patcherview_set_rect(t_object *pv, t_rect *pr); - -/** Convert the point cx, cy in canvas coordinates to screen coordinates. - @ingroup jpatcherview - @param pv The patcherview instance the canvas coords are relative to. - @param cx The x dimension of the canvas coordinate relative to the patcherview. - @param cy The y dimension of the canvas coordinate relative to the patcherview. - @param sx A pointer to a long to receive the screen coordinate x dimension. - @param sy A pointer to a long to receive the screen coordinate y dimension. -*/ -void patcherview_canvas_to_screen(t_object *pv, double cx, double cy, long *sx, long *sy); - -/** Convert the point cx, cy in canvas coordinates to screen coordinates. - @ingroup jpatcherview - @param pv The patcherview instance the canvas coords are relative to. - @param sx The screen position x coordinate. - @param sy The screen position y coordinate - @param cx A pointer to a double to receive the canvas coordinate for the given screen x position. - @param cy A pointer to a double to receive the canvas coordinate for the given screen y position. - */ -void patcherview_screen_to_canvas(t_object *pv, long sx, long sy, double *cx, double *cy); - -/** Find out if a patcherview is locked. - @ingroup jpatcherview - @param p The patcherview instance whose attribute value will be fetched. - @return Returns 0 if unlocked, otherwise returns non-zero. */ -char patcherview_get_locked(t_object *p); - -/** Lock or unlock a patcherview. - @ingroup jpatcherview - @param p The patcherview instance whose attribute value will be set. - @param c Set this value to zero to unlock the patcherview, otherwise pass a non-zero value. - @return An error code. */ -t_max_err patcherview_set_locked(t_object *p, char c); - - -/** Find out if a patcherview is a presentation view. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute value will be fetched. - @return Returns 0 if the view is not a presentation view, otherwise returns non-zero. */ -char patcherview_get_presentation(t_object *pv); - -/** Set whether or not a patcherview is a presentation view. - @ingroup jpatcherview - @param p The patcherview instance whose attribute value will be set. - @param c Set this value to non-zero to make the patcherview a presentation view, otherwise pass zero. - @return An error code. */ -t_max_err patcherview_set_presentation(t_object *p, char c); - - -/** Fetch the zoom-factor of a patcherview. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute value will be fetched. - @return The factor by which the view is zoomed. */ -double patcherview_get_zoomfactor(t_object *pv); - -/** Set the zoom-factor of a patcherview. - @ingroup jpatcherview - @param pv The patcherview instance whose attribute value will be set. - @param d The zoom-factor at which the patcherview should display the patcher. - @return An error code. */ -t_max_err patcherview_set_zoomfactor(t_object *pv, double d); - - -/** Given a patcherview, find the next patcherview. - The views of a patcher are maintained internally as a #t_linklist, - and so the views can be traversed should you need to perform operations on all of a patcher's patcherviews. - @ingroup jpatcherview - @param pv The patcherview instance from which to find the next patcherview. - @return The next patcherview in the list, or NULL if the patcherview passed in pv is the tail. */ -t_object* patcherview_get_nextview(t_object *pv); - - -/** Given a patcherview, return the #t_jgraphics context for that view. - @ingroup jpatcherview - @param pv The patcherview instance. - @return The #t_jgraphics context for the view. */ -t_object* patcherview_get_jgraphics(t_object *pv); - -// private -t_max_err patcherview_set_jgraphics(t_object *pv, t_object *po); - - -/** Given a patcherview, return its patcher. - @ingroup jpatcherview - @param pv The patcherview instance for which to fetch the patcher. - @return The patcher. */ -t_object* patcherview_get_patcher(t_object *pv); - -/** Given a patcherview, return the top patcherview (possibly itself). - If the patcherview is inside a bpatcher which is in a patcher then - this will give you the view the bpatcher view is inside of. - @ingroup jpatcherview - @param pv The patcherview instance whose top view you want to get. - @return The top patcherview. */ -t_object* patcherview_get_topview(t_object *pv); - - -// utilities to get/set textfield attributes - -/** Return the object that owns a particular textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A pointer to the owning object. */ -t_object* textfield_get_owner(t_object *tf); - - -/** Retrieve the color of the text in a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param prgba The address of a valid #t_jrgba whose values will be filled-in upon return. - @return A Max error code. */ -t_max_err textfield_get_textcolor(t_object *tf, t_jrgba *prgba); - -/** Set the color of the text in a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param prgba The address of a #t_jrgba containing the new color to use. - @return A Max error code. */ -t_max_err textfield_set_textcolor(t_object *tf, t_jrgba *prgba); - - -/** Retrieve the background color of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param prgba The address of a valid #t_jrgba whose values will be filled-in upon return. - @return A Max error code. */ -t_max_err textfield_get_bgcolor(t_object *tf, t_jrgba *prgba); - -/** Set the background color of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param prgba The address of a #t_jrgba containing the new color to use. - @return A Max error code. */ -t_max_err textfield_set_bgcolor(t_object *tf, t_jrgba *prgba); - - -/** Retrieve the margins from the edge of the textfield to the text itself in a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param pleft The address of a variable to hold the value of the left margin upon return. - @param ptop The address of a variable to hold the value of the top margin upon return. - @param pright The address of a variable to hold the value of the right margin upon return. - @param pbottom The address of a variable to hold the value of the bottom margin upon return. - @return A Max error code. */ -t_max_err textfield_get_textmargins(t_object *tf, double *pleft, double *ptop, double *pright, double *pbottom); - -/** Set the margins from the edge of the textfield to the text itself in a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param left The new value for the left margin. - @param top The new value for the top margin. - @param right The new value for the right margin. - @param bottom The new value for the bottom margin. - @return A Max error code. */ -t_max_err textfield_set_textmargins(t_object *tf, double left, double top, double right, double bottom); - - -/** Return the value of the 'editonclick' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_editonclick(t_object *tf); - -/** Set the 'editonclick' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_editonclick(t_object *tf, char c); - - -/** Return the value of the 'selectallonedit' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_selectallonedit(t_object *tf); - -/** Set the 'selectallonedit' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_selectallonedit(t_object *tf, char c); - - -/** Return the value of the 'noactivate' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_noactivate(t_object *tf); - -/** Set the 'noactivate' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_noactivate(t_object *tf, char c); - - -/** Return the value of the 'readonly' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_readonly(t_object *tf); - -/** Set the 'readonly' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_readonly(t_object *tf, char c); - - -/** Return the value of the 'wordwrap' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_wordwrap(t_object *tf); - -/** Set the 'wordwrap' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_wordwrap(t_object *tf, char c); - - -/** Return the value of the 'useellipsis' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_useellipsis(t_object *tf); - -/** Set the 'useellipsis' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_useellipsis(t_object *tf, char c); - - -/** Return the value of the 'autoscroll' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_autoscroll(t_object *tf); - -/** Set the 'autoscroll' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_autoscroll(t_object *tf, char c); - - -/** Return the value of the 'wantsreturn' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_wantsreturn(t_object *tf); - -/** Set the 'wantsreturn' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_wantsreturn(t_object *tf, char c); - - -/** Return the value of the 'wantstab' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_wantstab(t_object *tf); - -/** Set the 'wantstab' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_wantstab(t_object *tf, char c); - - -/** Return the value of the 'underline' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @return A value of the attribute. */ -char textfield_get_underline(t_object *tf); - -/** Set the 'underline' attribute of a textfield. - @ingroup textfield - @param tf The textfield instance pointer. - @param c The new value for the attribute. - @return A Max error code. */ -t_max_err textfield_set_underline(t_object *tf, char c); - - -// private -char textfield_get_justification(t_object *tf); -t_max_err textfield_set_justification(t_object *tf, char c); -char textfield_get_autofixwidth(t_object *tf); -t_max_err textfield_set_autofixwidth(t_object *tf, char c); - - -/** Set the 'empty' text of a textfield. - The empty text is the text that is displayed in the textfield when no text is present. - By default this is gensym(""). - @ingroup textfield - @param tf The textfield instance pointer. - @param txt A symbol containing the new text to display when the textfield has no content. - @return A Max error code. */ -t_max_err textfield_set_emptytext(t_object *tf, t_symbol *txt); - -/** Retrieve the 'empty' text of a textfield. - The empty text is the text that is displayed in the textfield when no text is present. - By default this is gensym(""). - @ingroup textfield - @param tf The textfield instance pointer. - @return The current text used as the empty text. */ -t_symbol *textfield_get_emptytext(t_object *tf); - -// textfield constants - -#define TEXTFIELD_DEF_LEFTMARGIN (4) ///< textfield default left margin -#define TEXTFIELD_DEF_TOPMARGIN (3) ///< textfield default top margin -#define TEXTFIELD_DEF_RIGHTMARGIN (4) ///< textfield default right margin -#define TEXTFIELD_DEF_BOTTOMMARGIN (3) ///< textfield default bottom margin - - -// jbox flags -// flags passed to box_new - -// The following flags affect how the boxes are drawn -#define JBOX_DRAWFIRSTIN (1<<0) ///< draw first inlet @ingroup jbox -#define JBOX_NODRAWBOX (1<<1) ///< don't draw the frame @ingroup jbox -#define JBOX_DRAWINLAST (1<<2) ///< draw inlets after update method @ingroup jbox - -// JBOX_TRANSPARENT is unused -- box is always transparent by default -#define JBOX_TRANSPARENT (1<<3) ///< don't make transparent unless you need it (for efficiency) @ingroup jbox - -// Box growing: nogrow is clear -- box is not sizable. -// Default (none of following three flags) means box width is only sizable. -// JBOX_GROWY means that X and Y are sizable and the aspect ratio is fixed (or maybe it has to be square, like dial?). -// JBOX_GROWBOTH means that X and Y are independently sizable. -#define JBOX_NOGROW (1<<4) ///< don't even draw grow thingie @ingroup jbox -#define JBOX_GROWY (1<<5) ///< can grow in y direction by dragging @ingroup jbox -#define JBOX_GROWBOTH (1<<6) ///< can grow independently in both x and y @ingroup jbox - -// Box interaction -#define JBOX_IGNORELOCKCLICK (1<<7) ///< box should ignore a click if patcher is locked @ingroup jbox -#define JBOX_HILITE (1<<8) ///< flag passed to jbox_new() to tell max that the UI object can receive the focus when clicked on -- may be replaced by JBOX_FOCUS in the future @ingroup jbox -#define JBOX_BACKGROUND (1<<9) ///< immediately set box into the background @ingroup jbox -#define JBOX_NOFLOATINSPECTOR (1<<10) ///< no floating inspector window @ingroup jbox - -// textfield: give this flag for automatic textfield support -#define JBOX_TEXTFIELD (1<<11) ///< save/load text from textfield, unless JBOX_BINBUF flag is set @ingroup jbox -#define JBOX_FIXWIDTH (1<<19) ///< give the box a textfield based fix-width (bfixwidth) method @ingroup jbox -#define JBOX_FONTATTR (1<<18) ///< if you want font related attribute you must add this to jbox_initclass() @ingroup jbox -#define JBOX_TEXTJUSTIFICATIONATTR (1<<21) ///< give your object a textjustification attr to control textfield @ingroup jbox -#define JBOX_BINBUF (1<<14) ///< save/load text from b_binbuf @ingroup jbox - -#define JBOX_MOUSEDRAGDELTA (1<<12) ///< hides mouse cursor in drag and sends mousedragdelta instead of mousedrag (for infinite scrolling like number) @ingroup jbox - -#define JBOX_COLOR (1<<13) ///< support the "color" method for color customization @ingroup jbox -#define JBOX_DRAWIOLOCKED (1<<15) ///< draw inlets and outlets when locked (default is not to draw them) @ingroup jbox -#define JBOX_DRAWBACKGROUND (1<<16) ///< set to have box bg filled in for you based on getdrawparams method or brgba attribute @ingroup jbox -#define JBOX_NOINSPECTFIRSTIN (1<<17) ///< flag for objects such as bpatcher that have a different b_firstin, - ///< but the attrs of the b_firstin should not be shown in the inspector @ingroup jbox - -// JBOX_DEFAULTNAMES is unused -- box is attached automatically if needed -// Since JBOX_DEFAULTNAMES was unused and used a conflicting flag bit with JBOX_FONTATTR it is being removed. -// Just remove from your code if you have a compile error about JBOX_DEFAULTNAMES missing. -//#define JBOX_DEFAULTNAMES (1<<18) ///< flag instructing jbox_new to attach object to the defaults object for live defaults updating @ingroup jbox - -#define JBOX_FOCUS (1<<20) ///< more advanced focus support (passed to jbox_initclass() to add "nextfocus" and "prevfocus" attributes to the UI object). Not implemented as of 2009-05-11 @ingroup jbox -#define JBOX_BOXVIEW (1<<23) ///< enable jboxview methods @ingroup jbox - -#define JBOX_LEGACYCOLOR (1<<22) ///< add undocumented color N message to objects from Max 4 that used it @ingroup jbox -#define JBOX_COPYLEGACYDEFAULT (1<<24) ///< if there is a legacy default, copy it instead of the regular default @ingroup jbox -#define JBOX_NOLEGACYDEFAULT (1<<25) ///< if there is a legacy default, don't copy any default @ingroup jbox - -#define JBOX_MULTITOUCH (1<<26) ///< when passed to jbox_initclass box will be sent multitouch version of mouse messages - -/** actual numerical values of the b_fontface attribute; use jbox_fontface() to weight - @ingroup jbox */ -enum { - JBOX_FONTFACE_REGULAR = 0, ///< normal - JBOX_FONTFACE_BOLD = 1, ///< bold - JBOX_FONTFACE_ITALIC = 2, ///< italic - JBOX_FONTFACE_BOLDITALIC = 3 ///< bold and italic -}; - -// The following two are not needed in the new world. -// #define JBOX_MOVING 8 // object invalidates outside its defined clipping region -// #define JBOX_SAVVY 2048 // calls box_enddraw after box_nodraw returns false - -/** enumerations used for box decorators - @ingroup jbox */ -typedef enum _HitTestResult { - HitNothing = 0, ///< a hole in the box - HitBox = 1, ///< the body of the box - HitInlet = 2, ///< an inlet - HitOutlet = 3, ///< an outlet - HitGrowBox = 4, ///< the grow handle - HitLine = 5, ///< a line - HitLineLocked = 6, ///< a line in a locked patcher (for probing) - HitBorder = 7 ///< border around the box (drawn when selected), can use to select or move (only used when patch is unlocked) -} HitTestResult; - -// private -typedef enum _DecoratorPaintFlags { - BoxSelected = 1 << 0, - DrawFirstIn = 1 << 1, - NoGrow = 1 << 2, - Outline = 1 << 3, - Locked = 1 << 4, - InletHighlighted = 1 << 5, // value tells index of highlighted inlet - OutletHighlighted = 1 << 6 // value tells index of highlighted outlet (only one can be highlighted) -} DecoratorPaintFlags; - - - -// UI object functions for implementing your own UI objects - -// private -void jbox_initclass(t_class *c, long flags); - -/** Set up your UI object's #t_jbox member. - This should be called from your UI object's free method. - @ingroup jbox - @param b The address of your UI object's #t_jbox member (which should be the first member of the object's struct). - @param flags Flags to set the box's behavior, such as #JBOX_NODRAWBOX. - @param argc The count of atoms in the argv parameter. - @param argv The address of the first in an array of atoms to be passed to the box constructor. - Typically these are simply the argument passed to your object when it is created. - @return A Max error code. */ -t_max_err jbox_new(t_jbox *b, long flags, long argc, t_atom *argv); - -/** Tear down your UI object's #t_jbox member. - This should be called from your UI object's free method. - @ingroup jbox - @param b The address of your object's #t_jbox member (which should be the first member of the object's struct). */ -void jbox_free(t_jbox *b); - -/** Mark the box ready to be accessed and drawn by Max. - This should typically be called at the end of your UI object's new method. - @ingroup jbox - @param b The address of your object's #t_jbox member. */ -void jbox_ready(t_jbox *b); - - -/** Request that your object/box be re-drawn by Max. - @ingroup jbox - @param b The address of your object's #t_jbox member. */ -void jbox_redraw(t_jbox *b); - -// private -void jbox_redrawcontents(t_jbox *b); -void *jbox_getoutlet(t_jbox *x, long index); -void *jbox_getinlet(t_jbox *x, long index); -void jbox_updatetextfield(t_jbox *b); - -// fills in all missing legacy defaults if one is present - -#define LEGACYDEFAULTS_FLAGS_FORCE 1 // forces it to happen - -void jbox_processlegacydefaults(t_jbox *b, t_dictionary *d, long flags); - -/** Send a notification to a box. This is the same as calling object_notify() for a box. - @ingroup jbox - @param b The address of your object's #t_jbox member. - @param s The name of the send object. - @param msg The notification name. - @param sender The sending object's address. - @param data A pointer to some data passed to the box's notify method. - @return A Max error code. -*/ -t_max_err jbox_notify(t_jbox *b, t_symbol *s, t_symbol *msg, void *sender, void *data); - -// private -t_max_err jbox_set_to_defaultsize(t_jbox *b, t_symbol *s, short argc, t_atom *argv); - - -/** Grab the keyboard focus for your box. - Calling this method should be considered exceptional, and its use is discouraged. - @param b The address of your object's #t_jbox member. */ -void jbox_grabfocus(t_jbox *b); - -// private -void jbox_redrawpeers(t_jbox *b); -long jbox_getinletindex(t_jbox *b, void *inlet); -long jbox_getoutletindex(t_jbox *b, void *outlet); - - -void jbox_show_caption(t_jbox *b); -void jbox_hide_caption(t_jbox *b); - - -// dictionary stuff -#define DICT_JRGBA 1 // convert RGB to jrgba when storing/retrieving from dictionary -t_max_err dictionary_appendjrgba(t_dictionary *d, t_symbol *key, t_jrgba *jc); - -t_max_err dictionary_getdefjrgba(t_dictionary *d, t_symbol *key, t_jrgba *jc, t_jrgba *def); - -t_max_err dictionary_gettrect(t_dictionary *d, t_symbol *key, t_rect *rect); -t_max_err dictionary_appendtrect(t_dictionary *d, t_symbol *key, t_rect *rect); - -t_max_err dictionary_gettpt(t_dictionary *d, t_symbol *key, t_pt *pt); -t_max_err dictionary_appendtpt(t_dictionary *d, t_symbol *key, t_pt *pt); - -void atomstojrgba(long argc, t_atom *argv, t_jrgba *dest); -void jrgbatoatoms(t_jrgba *src, t_atom *argv); - -/** Read the specified YAML file and return a #t_dictionary object. - You are responsible for freeing the dictionary with object_free(), - subject to the caveats explained in @ref when_to_free_a_dictionary. - @ingroup dictionary - @param filename The name of the file. - @param path The path of the file. - @param d The address of a #t_dictionary pointer that will be set to the newly created dictionary. - @return A Max error code - */ - -t_max_err dictionary_read_yaml(const char *filename, const short path, t_dictionary **d); - -/** Serialize the specified #t_dictionary object to a YAML file. - @ingroup dictionary - @param d The dictionary to serialize into YAML format and write to disk. - @param filename The name of the file to write. - @param path The path to which the file should be written. - @return A Max error code. - */ -t_max_err dictionary_write_yaml(const t_dictionary *d, const char *filename, const short path); - - -// convenience for object-making - -#define newobject_fromdictionary_delete(p,d) newobject_fromdictionary(p,d), freeobject((t_object *)d) - -// private -t_dictionary* dictionary_prototypefromclass(t_class *c); - -/** - Create a new object in a specified patcher with values using a combination of attribute and sprintf syntax. - - @ingroup obj - @param patcher An instance of a patcher object. - @param fmt An sprintf-style format string specifying key-value pairs with attribute nomenclature. - @param ... One or more arguments which are to be substituted into the format string. - @return A pointer to the newly created object instance, or NULL if creation of the object fails. - - @remark Max attribute syntax is used to define key-value pairs. For example, - @code - "@key1 value @key2 another_value" - @endcode - - @remark The example below creates a new object that in a patcher whose - object pointer is stored in a variable called "aPatcher". - @code - t_object *my_comment; - char text[4]; - - strncpy_zero(text, "foo", 4); - - my_comment = newobject_sprintf(aPatcher, "@maxclass comment @varname _name \ - @text \"%s\" @patching_rect %.2f %.2f %.2f %.2f \ - @fontsize %f @textcolor %f %f %f 1.0 \ - @fontname %s @bgcolor 0.001 0.001 0.001 0.", - text, 20.0, 20.0, 200.0, 24.0, - 18, 0.9, 0.9, 0.9, "Arial"); - @endcode - - @see dictionary_sprintf() - @see newobject_fromdictionary() - @see atom_setparse() -*/ -t_object *newobject_sprintf(t_object *patcher, C74_CONST char *fmt, ...); - - -/** - Create an object from the passed in text. - The passed in text is in the same format as would be typed into an object box. - It can be used for UI objects or text objects so this is the simplest way to create objects from C. - - @ingroup obj - @param patcher An instance of a patcher object. - @param text The text as if typed into an object box. - @return A pointer to the newly created object instance, or NULL if creation of the object fails. - - @see newobject_sprintf() -*/ -t_object *newobject_fromboxtext(t_object *patcher, const char *text); - - -/** - Place a new object into a patcher. The new object will be created based on a specification - contained in a @ref dictionary. - - Create a new dictionary populated with values using a combination of attribute and sprintf syntax. - - @ingroup obj - @param patcher An instance of a patcher object. - @param d A dictionary containing an object specification. - @return A pointer to the newly created object instance, or NULL if creation of the object fails. - - @remark Max attribute syntax is used to define key-value pairs. For example, - @code - "@key1 value @key2 another_value" - @endcode - - @remark The example below creates a new object that in a patcher whose - object pointer is stored in a variable called "aPatcher". - @code - t_dictionary *d; - t_object *o; - char text[4]; - - strncpy_zero(text, "foo", 4); - - d = dictionary_sprintf("@maxclass comment @varname _name \ - @text \"%s\" @patching_rect %.2f %.2f %.2f %.2f \ - @fontsize %f @textcolor %f %f %f 1.0 \ - @fontname %s @bgcolor 0.001 0.001 0.001 0.", - text, 20.0, 20.0, 200.0, 24.0, - 18, 0.9, 0.9, 0.9, "Arial"); - - o = newobject_fromdictionary(aPatcher, d); - @endcode - - @see newobject_sprintf() - @see newobject_fromdictionary() - @see atom_setparse() -*/ -t_object *newobject_fromdictionary(t_object *patcher, t_dictionary *d); - -/** Return the last known combination of modifier keys being held by the user. - @ingroup jmouse - @return The current modifier keys that are activated. */ -t_modifiers jkeyboard_getcurrentmodifiers(void); - -/** Return the current combination of modifier keys being held by the user. - @ingroup jmouse - @return The current modifier keys that are activated. */ -t_modifiers jkeyboard_getcurrentmodifiers_realtime(void); - -// mouse cursor stuff - -/** Get the position of the mouse cursor in screen coordinates. - @ingroup jmouse - @param x The address of a variable to hold the x-coordinate upon return. - @param y The address of a variable to hold the y-coordinate upon return. */ -void jmouse_getposition_global(int *x, int *y); - -/** Set the position of the mouse cursor in screen coordinates. - @ingroup jmouse - @param x The new x-coordinate of the mouse cursor position. - @param y The new y-coordinate of the mouse cursor position. */ -void jmouse_setposition_global(int x, int y); - -/** Set the position of the mouse cursor relative to the patcher canvas coordinates. - @ingroup jmouse - @param patcherview The patcherview upon which the mouse coordinates are based. - @param cx The new x-coordinate of the mouse cursor position. - @param cy The new y-coordinate of the mouse cursor position. */ -void jmouse_setposition_view(t_object *patcherview, double cx, double cy); - -/** Set the position of the mouse cursor relative to a box within the patcher canvas coordinates. - @ingroup jmouse - @param patcherview The patcherview containing the box upon which the mouse coordinates are based. - @param box The box upon which the mouse coordinates are based. - @param bx The new x-coordinate of the mouse cursor position. - @param by The new y-coordinate of the mouse cursor position. */ -void jmouse_setposition_box(t_object *patcherview, t_object *box, double bx, double by); - -void *jmouse_getobject(void); - -/** Mouse cursor types. - @ingroup jmouse */ -typedef enum _jmouse_cursortype { - JMOUSE_CURSOR_NONE, ///< None - JMOUSE_CURSOR_ARROW, ///< Arrow - JMOUSE_CURSOR_WAIT, ///< Wait - JMOUSE_CURSOR_IBEAM, ///< I-Beam - JMOUSE_CURSOR_CROSSHAIR, ///< Crosshair - JMOUSE_CURSOR_COPYING, ///< Copying - JMOUSE_CURSOR_POINTINGHAND, ///< Pointing Hand - JMOUSE_CURSOR_DRAGGINGHAND, ///< Dragging Hand - JMOUSE_CURSOR_RESIZE_LEFTRIGHT, ///< Left-Right - JMOUSE_CURSOR_RESIZE_UPDOWN, ///< Up-Down - JMOUSE_CURSOR_RESIZE_FOURWAY, ///< Four Way - JMOUSE_CURSOR_RESIZE_TOPEDGE, ///< Top Edge - JMOUSE_CURSOR_RESIZE_BOTTOMEDGE, ///< Bottom Edge - JMOUSE_CURSOR_RESIZE_LEFTEDGE, ///< Left Edge - JMOUSE_CURSOR_RESIZE_RIGHTEDGE, ///< Right Edge - JMOUSE_CURSOR_RESIZE_TOPLEFTCORNER, ///< Top-Left Corner - JMOUSE_CURSOR_RESIZE_TOPRIGHTCORNER, ///< Top-Right Corner - JMOUSE_CURSOR_RESIZE_BOTTOMLEFTCORNER, ///< Bottom-Left Corner - JMOUSE_CURSOR_RESIZE_BOTTOMRIGHTCORNER ///< Bottom-Right Corner -} t_jmouse_cursortype; - - -/** Set the mouse cursor. - @ingroup jmouse - @param patcherview The patcherview for which the cursor should be applied. - @param box The box for which the cursor should be applied. - @param type The type of cursor for the mouse to use. */ -void jmouse_setcursor(t_object *patcherview, t_object *box, t_jmouse_cursortype type); - -// UI objects are sent messages for each mouse event -// object's that include JBOX_MULTITOUCH flag in jbox_initclass call are sent multitouch version of event -// the multitouch messages are prefixed with "mt_" and have a different function prototype - -// standard mouse events: -// mouseenter, mousemove, mousedown, mousedrag, mouseup, mouseleave -// mousedoubleclick will also be sent on double click -// mousedragdelta is a special alternative -- see JBOX_MOUSEDRAGDELTA -// function prototype is of form: -// void myobj_mousemove(t_myobj *x, t_object *patcherview, t_pt position, long modifiers); - -// mousewheel will be sent when the wheel moves over the box: -// void myobj_mousewheel(t_myobj *x, t_object *patcherview, t_pt position, long modifiers, double wheelIncX, double wheelIncY); - -// multitouch mouse events: -// note, if machine doesn't support touch then these events are still sent but only for the one mouse of course -// mt_mouseenter, mt_mousemove, mt_mousedown, mt_mousedrag, mt_mouseup, mt_mouseleave -// function prototype is of form: -// void myobj_mtmousemove(t_myobj *x, t_object *patcherview, t_mouseevent *mouseevent); - -typedef enum _inputeventtype { - eMouseEvent = 1, - eTouchEvent = 2, - ePenEvent = 3 -} t_inputeventtype; - -typedef struct _mouseevent { - t_inputeventtype type; - t_atom_long index; - t_pt position; - t_modifiers modifiers; - t_atom_float pressure; - t_atom_float orientation; - t_atom_float rotation; - t_atom_float tiltX; - t_atom_float tiltY; -} t_mouseevent; - -/** Get the current window, if any. - @ingroup jwind - @return A pointer to the current window, if there is one. Otherwise returns NULL. */ -t_object* jwind_getactive(void); - -/** Determine how many windows exist. - @ingroup jwind - @return The number of windows. */ -long jwind_getcount(void); - -/** Return a pointer to the window with a given index. - @ingroup jwind - @param index Get window at index (0 to count-1). - @return A pointer to a window object. */ -t_object* jwind_getat(long index); - -// functions to enumerate displays - -/** Return the number of monitors on which can be displayed. - @ingroup jmonitor - @return The number of monitors. */ -long jmonitor_getnumdisplays(void); - -/** Return the #t_rect for a given display. - @ingroup jmonitor - @param workarea Set workarea non-zero to clip out things like dock / task bar. - @param displayindex The index number for a monitor. The primary monitor has an index of 0. - @param rect The address of a valid #t_rect whose values will be filled-in upon return. */ -void jmonitor_getdisplayrect(long workarea, long displayindex, t_rect *rect); - -/** Return a union of all display rects. - @ingroup jmonitor - @param workarea Set workarea non-zero to clip out things like dock / task bar. - @param rect The address of a valid #t_rect whose values will be filled-in upon return. */ -void jmonitor_getdisplayrect_foralldisplays(long workarea, t_rect *rect); // get union of all display rects - -/** Return the #t_rect for the display on which a point exists. - @ingroup jmonitor - @param workarea Set workarea non-zero to clip out things like dock / task bar. - @param pt A point, for which the monitor will be determined and the rect recturned. - @param rect The address of a valid #t_rect whose values will be filled-in upon return. */ -void jmonitor_getdisplayrect_forpoint(long workarea, t_pt pt, t_rect *rect); - -/** Return the scale factor for the display on which a point exists. -@ingroup jmonitor -@param displayindex Index of the monitor whose scale factor will be returned. */ -double jmonitor_getdisplayscalefactor(long displayindex); - -/** Return the scale factor for the display on which a point exists. -@ingroup jmonitor -@param pt A point, for which the monitor will be determined and the scale factor recturned. */ -double jmonitor_getdisplayscalefactor_forpoint(t_pt pt); - -/** take an unscaled point and convert it to a scaled point - note -- most APIs take scaled coordinates so drawing doesn't need to consider scale factor for each monitor -@ingroup jmonitor -@param unscaled_pt the point to be scaled, should be in pixels on the global "virtual" screen consisting of all monitors -@return pointer to receive the scaled point, scaled to normalize based on various scale factors and monitor arrangement -*/ -t_pt jmonitor_scale_pt(t_pt unscaled_pt); - -/** take an unscaled point and convert it to a scaled point -note -- most APIs take scaled coordinates so drawing doesn't need to consider scale factor for each monitor -@ingroup jmonitor -@param scaled_pt the point to be unscaled, should be in normalized coordinates, scaled based on scale factors and monitor arrangement -@return pointer to receive the unscaled point, which will be pixel-based coordinates relative to the main monitor origin -*/ -t_pt jmonitor_unscale_pt(t_pt scaled_pt); - -void jpatcher_bulk_load_begin(void); -void jpatcher_bulk_load_end(void); - -void *jpatcher_load(const char *name, short volume, short ac, t_atom *av); -void *jpatcher_load_frombuffer(char *name, short vol, const char *json, long len, short ac, t_atom *av); -void *jpatcher_load_fromdictionary(const char *name, short vol, t_object *rd, short ac, t_atom *av); - -void *jpatcher_load_namespace(const char *name, short volume, short ac, t_atom *av, t_symbol *classnamespace); -void *jpatcher_load_frombuffer_namespace(const char *name, short vol, const char *json, long len, short ac, t_atom *av, t_symbol *classnamespace); -void *jpatcher_load_fromdictionary_namespace(const char *name, short vol, t_object *rd, short ac, t_atom *av, t_symbol *classnamespace); - -// private -- internal use only -long jpatcher_inc_maxsendcontext(void); - -// private -- internal use only -long jbox_is_selected_in_view(t_object *box, t_object *view); - -// private -- internal use only -t_atom_long jpatcher_dictionary_modernui(t_dictionary *d); -t_atom_long jpatcher_dictionary_version(void); -t_dictionary *jpatcher_fallback_version(void); -long jbox_isdefaultattribute(t_jbox *x, t_symbol *attrname); - -long jwind_canfullscreen(void); - - -/** Retrieve the name of Max's system font. - @ingroup jfont - @return The name of Max's system font. -*/ -const char *systemfontname(void); - -/** Retrieve the name of Max's bold system font. - @ingroup jfont - @return The name of Max's bold system font. -*/ -const char *systemfontname_bold(void); - -/** Retrieve the name of Max's light system font. - @ingroup jfont - @return The name of Max's light system font. -*/ -const char *systemfontname_light(void); - -/** Retrieve the name of Max's system font as a symbol. - @ingroup jfont - @return The name of Max's system font. -*/ -t_symbol *systemfontsym(void); - - -#define JPATCHER_DEFAULT_EXTENSION ".maxpat" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -END_USING_C_LINKAGE - -#endif // #ifndef _JPATCHER_API_H_ diff --git a/source/c74support/max-includes/jpatcher_syms.h b/source/c74support/max-includes/jpatcher_syms.h deleted file mode 100644 index 39a53861..00000000 --- a/source/c74support/max-includes/jpatcher_syms.h +++ /dev/null @@ -1,273 +0,0 @@ -#ifndef _JPATCHER_SYMS_H_ -#define _JPATCHER_SYMS_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -void jpatcher_syms_init(void); - -extern t_symbol *ps_patcher; -extern t_symbol *ps_jpatchline; -extern t_symbol *ps_jpatcher; -extern t_symbol *ps_patcherview; -extern t_symbol *ps_juiobject; // attribute who's existence means we are a new style UI object - -extern t_symbol *ps__set; - -// notifications -extern t_symbol *ps_patchernotify; -extern t_symbol *ps_boxnotify; -extern t_symbol *ps_linenotify; - -extern t_symbol *ps_user; -extern t_symbol *ps_defaultname; - -// patchernotify -extern t_symbol *ps_rect; -extern t_symbol *ps_free; -extern t_symbol *ps_imbed; -extern t_symbol *ps_unimbed; -extern t_symbol *ps_snaptogrid; -extern t_symbol *ps_invis; -extern t_symbol *ps_toolbarvisible; - -// boxnotify -extern t_symbol *ps_newobject; -extern t_symbol *ps_free; -extern t_symbol *ps_redraw; -extern t_symbol *ps_redrawcontents; -extern t_symbol *ps_textchanged; -extern t_symbol *ps_textcolor; -extern t_symbol *ps_color; -extern t_symbol *ps_grabfocus; -extern t_symbol *ps_inletoutlet; -extern t_symbol *ps_fontchanged; -extern t_symbol *ps_fontcolor; -extern t_symbol *ps_bfixwidth; -extern t_symbol *ps_showcaption; -extern t_symbol *ps_hidecaption; -extern t_symbol *ps_freecontainedview; -extern t_symbol *ps_rebuildcontainedview; -extern t_symbol *ps_viewvisibility; -extern t_symbol *ps_viewvisibilitychanged; - -// linenotify -extern t_symbol *ps_newobject; -extern t_symbol *ps_free; -extern t_symbol *ps_linechanged; - -// if a box attribute changes a boxnotify message containing the attribute name will be sent. -// I won't repeat the attributes here as they are listed below. - -// linenotify -extern t_symbol *ps_newobject; - -// Attributes of the patcher class -extern t_symbol *ps_box; -extern t_symbol *ps_count; -extern t_symbol *ps_locked; -extern t_symbol *ps_firstobject; -extern t_symbol *ps_lastobject; -extern t_symbol *ps_firstline; -extern t_symbol *ps_firstview; -extern t_symbol *ps_title; -extern t_symbol *ps_name; -extern t_symbol *ps_filepath; -extern t_symbol *ps_savefilepath; -extern t_symbol *ps_filename; -extern t_symbol *ps_dirty; -extern t_symbol *ps_bglocked; -extern t_symbol *ps_bghidden; -extern t_symbol *ps_fghidden; -extern t_symbol *ps_font; -extern t_symbol *ps_bgcolor; -extern t_symbol *ps_editing_bgcolor; -extern t_symbol *ps_locked_bgcolor; -extern t_symbol *ps_gridsize; -extern t_symbol *ps_controller; -extern t_symbol *ps_parentpatcher; -extern t_symbol *ps_toppatcher; -extern t_symbol *ps_maxclass; -extern t_symbol *ps_parentclass; -extern t_symbol *ps_scrolloffset; -extern t_symbol *ps_scrollorigin; -extern t_symbol *ps_wind; -extern t_symbol *ps_noedit; -extern t_symbol *ps_collective; -extern t_symbol *ps_cansave; -extern t_symbol *ps_presentation; - -// methods of the patcher class -extern t_symbol *ps_newobject; -extern t_symbol *ps_newdefault; -extern t_symbol *ps_connect; -extern t_symbol *ps_hiddenconnect; -extern t_symbol *ps_disconnect; -extern t_symbol *ps_apply; -extern t_symbol *ps_applydeep; -extern t_symbol *ps_applyif; -extern t_symbol *ps_applydeepif; -extern t_symbol *ps_remove; -extern t_symbol *ps_getnamed; -extern t_symbol *ps_getlogical; -extern t_symbol *ps_bringtofront; -extern t_symbol *ps_sendtoback; - -// patcher dictionary syms -extern t_symbol *ps_pound_PD; -extern t_symbol *ps_appversion; -extern t_symbol *ps_major; -extern t_symbol *ps_minor; -extern t_symbol *ps_revision; -extern t_symbol *ps_architecture; -extern t_symbol *ps_x86; -extern t_symbol *ps_x64; -extern t_symbol *ps_modernui; -extern t_symbol *ps_dynamiccolor; - -// Attributes of the Maxobj class -extern t_symbol *ps_rect; -extern t_symbol *ps_presentation_rect; -extern t_symbol *ps_patching_rect; -extern t_symbol *ps_jp_position; -extern t_symbol *ps_presentation_position; -extern t_symbol *ps_patching_position; -extern t_symbol *ps_size; -extern t_symbol *ps_presentation_size; -extern t_symbol *ps_patching_size; -extern t_symbol *ps_object; -extern t_symbol *ps_maxclass; -extern t_symbol *ps_patcher; -extern t_symbol *ps_hint; -extern t_symbol *ps_hidden; -extern t_symbol *ps_fontname; -extern t_symbol *ps_fontsize; -extern t_symbol *ps_fontface; -extern t_symbol *ps_textcolor; -extern t_symbol *ps_color; -extern t_symbol *ps_nextobject; -extern t_symbol *ps_prevobject; -extern t_symbol *ps_varname; -extern t_symbol *ps_id; -extern t_symbol *ps_canhilite; -extern t_symbol *ps_zorder; -extern t_symbol *ps_background; -extern t_symbol *ps_ignoreclick; -extern t_symbol *ps_drawfirstin; -extern t_symbol *ps_outline; -extern t_symbol *ps_growy; -extern t_symbol *ps_growboth; -extern t_symbol *ps_nogrow; -extern t_symbol *ps_drawinlast; -extern t_symbol *ps_transparent; -extern t_symbol *ps_mousedragdelta; -extern t_symbol *ps_textfield; -extern t_symbol *ps_presentation_rect; -extern t_symbol *ps_opaque; -extern t_symbol *ps_useimagebuffer; -extern t_symbol *ps_hide; -extern t_symbol *ps_show; -extern t_symbol *ps_move; -extern t_symbol *ps_offset; -extern t_symbol *ps_respondtoclick; - -// Methods of the Maxobj class -extern t_symbol *ps_message; -extern t_symbol *ps_help; -extern t_symbol *ps_subpatcher; -extern t_symbol *ps_understands; - -// attributes of the jpatchline -extern t_symbol *ps_startpoint; -extern t_symbol *ps_endpoint; -extern t_symbol *ps_pending; -extern t_symbol *ps_nummidpoints; -extern t_symbol *ps_midpoints; -extern t_symbol *ps_box1; -extern t_symbol *ps_outletnum; -extern t_symbol *ps_box2; -extern t_symbol *ps_inletnum; -extern t_symbol *ps_hidden; -extern t_symbol *ps_color; -extern t_symbol *ps_boundingbox; -extern t_symbol *ps_straightthresh; -extern t_symbol *ps_straightstart; -extern t_symbol *ps_straightend; -extern t_symbol *ps_nextline; - -// attributes of the patcherview -extern t_symbol *ps_visible; -extern t_symbol *ps_locked; -extern t_symbol *ps_unlockedinteraction; -extern t_symbol *ps_zoomfactor; -extern t_symbol *ps_nextview; -extern t_symbol *ps_jgraphics; -extern t_symbol *ps_patcher; -extern t_symbol *ps_topview; - -// methods of the jpatchline -extern t_symbol *ps_insertsegment; -extern t_symbol *ps_removesegment; -extern t_symbol *ps_setmidpoint; -extern t_symbol *ps_completeconnection; - -// Messages to UI objects from the view -extern t_symbol *ps_focusgained; -extern t_symbol *ps_focuslost; -extern t_symbol *ps_key; -extern t_symbol *ps_keyfilter; -extern t_symbol *ps_mouseenter; -extern t_symbol *ps_mousemove; -extern t_symbol *ps_mousedown; -extern t_symbol *ps_mousedrag; -extern t_symbol *ps_mouseup; -extern t_symbol *ps_mousedoubleclick; -extern t_symbol *ps_mousewheel; -extern t_symbol *ps_mouseleave; -extern t_symbol *ps_dropfiles; -extern t_symbol *ps_moved; -extern t_symbol *ps_resized; -extern t_symbol *ps_vis; -extern t_symbol *ps_bcut; -extern t_symbol *ps_bcopy; -extern t_symbol *ps_bpaste; -extern t_symbol *ps_bpastepic; -extern t_symbol *ps_bclear; -extern t_symbol *ps_bundo; -extern t_symbol *ps_bredo; - -// Textfield attributes -extern t_symbol *ps_owner; -extern t_symbol *ps_textcolor; -extern t_symbol *ps_textmargins; -extern t_symbol *ps_editonclick; -extern t_symbol *ps_selectallonedit; -extern t_symbol *ps_noactivate; -extern t_symbol *ps_readonly; -extern t_symbol *ps_wordwrap; -extern t_symbol *ps_useellipsis; -extern t_symbol *ps_autoscroll; -extern t_symbol *ps_wantsreturn; -extern t_symbol *ps_wantstab; -extern t_symbol *ps_underline; -extern t_symbol *ps_autofixwidth; -extern t_symbol *ps_emptytext; -extern t_symbol *ps_justification; - -// jcolor attributes -extern t_symbol *ps_red; -extern t_symbol *ps_green; -extern t_symbol *ps_blue; -extern t_symbol *ps_alpha; -extern t_symbol *ps_rgba; - -// scripting names -extern t_symbol *ps_varname_set; -extern t_symbol *ps_varname_unset; - -END_USING_C_LINKAGE - -#endif // #ifndef _JPATCHER_SYMS_H_ - diff --git a/source/c74support/max-includes/jpatcher_utils.h b/source/c74support/max-includes/jpatcher_utils.h deleted file mode 100644 index 635bfb2d..00000000 --- a/source/c74support/max-includes/jpatcher_utils.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef _JPATCHER_UTILS_H_ -#define _JPATCHER_UTILS_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -BEGIN_USING_C_LINKAGE - -/** Copy an array of atoms. - @ingroup atom - @param argc1 The count of atoms in argv1. - @param argv1 The address to the first of an array of atoms that is the source for the copy. - @param argv2 The address to the first of an array of atoms that is the destination for the copy. - Note that this array must already by allocated using sysmem_newptr() or atom_alloc(). */ -void atom_copy(long argc1, t_atom *argv1, t_atom *argv2); - -/** Print the contents of an array of atoms to the Max window. - @ingroup atom - @param argc The count of atoms in argv. - @param argv The address to the first of an array of atoms. */ -void postargs(long argc, t_atom *argv); - -/** Print the contents of a dictionary to the Max window. - @ingroup dictionary - @param d A pointer to a dictionary object. */ -void postdictionary(t_object *d); - - -/** Return a pointer to an object contained in an atom if it is of the specified class. - @ingroup atom - @param x The address of a pointer to the object contained in av if it is of the specified class upon return. - Otherwise NULL upon return. - @param idx The index of the atom in the array from which to get the object pointer. - @param argc The count of atoms in argv. - @param argv The address to the first of an array of atoms. - @param cls A symbol containing the class name of which the object should be an instance. - @return A Max error code. */ -t_max_err atom_arg_getobjclass(t_object **x, long idx, long argc, t_atom *argv, t_symbol *cls); - -/** Return a pointer to an object contained in an atom if it is of the specified class. - @ingroup atom - @param av A pointer to the atom from which to get the #t_object. - @param cls A symbol containing the class name of which the object should be an instance. - @return A pointer to the object contained in av if it is of the specified class, otherwise NULL. */ -void *atom_getobjclass(t_atom *av, t_symbol *cls); - - -method my_object_getmethod(void *obj, t_symbol *s); - - -END_USING_C_LINKAGE - -#endif // #ifndef _JPATCHER_UTILS_H_ diff --git a/source/c74support/max-includes/macho-prefix.pch b/source/c74support/max-includes/macho-prefix.pch deleted file mode 100644 index fcfbfe8a..00000000 --- a/source/c74support/max-includes/macho-prefix.pch +++ /dev/null @@ -1,6 +0,0 @@ -// -// Prefix header for all source files of the 'MaxExternal' target in the 'MaxExternal' project. -// - -#include - diff --git a/source/c74support/max-includes/max-common.xcconfig b/source/c74support/max-includes/max-common.xcconfig deleted file mode 100644 index f8dea53d..00000000 --- a/source/c74support/max-includes/max-common.xcconfig +++ /dev/null @@ -1,38 +0,0 @@ -// Xcode target configuration settings shared across all Max projects -// To change settings for only one project, override the settings using Xcode's target inspector. -// -// Timothy Place -// Copyright © 2011, Cycling '74 - - -PRODUCT_NAME = $(PROJECT_NAME) -PRODUCT_VERSION = 8.0.0 -PRODUCT_BUILD = 1974 - -ARCHS = i386 x86_64 -ONLY_ACTIVE_ARCH=YES - -SDKROOT = macosx10.10 -MACOSX_DEPLOYMENT_TARGET = 10.10 -CLANG_CXX_LANGUAGE_STANDARD = c++11 - -//SYSBUILD_BRANCH = master -C74SUPPORT = $(SRCROOT)/../.. -SYSBUILD = $(C74SUPPORT)/../../sysbuild$(SYSBUILD_BRANCH)_$(ARCHS) - -CLANG_LINK_OBJC_RUNTIME = NO - -C74_FRAMEWORK_PATH_SUFFIX[arch=i386] = -C74_FRAMEWORK_PATH_SUFFIX[arch=x86_64] = x64 -C74_FRAMEWORK_PATH_SUFFIX[arch="i386 x86_64"] = x64 -C74_FRAMEWORK_PATH_SUFFIX[arch="x86_64 i386 "] = x64 - -#include "max-local.xcconfig" - -C74_SYM_LINKER_FLAGS = @$(C74SUPPORT)/max-includes/c74_linker_flags.txt -C74_DEVELOPER_BIN_DIR = /Applications/Developer/C74.compiler/bin - -C74_ROOT = $(SYSBUILD)/$(CONFIGURATION)/resources -EXTERNALS_ROOT = $(C74_ROOT)/externals -EXTENSIONS_ROOT = $(C74_ROOT)/extensions -JSEXTENSIONS_ROOT = $(C74_ROOT)/jsextensions diff --git a/source/c74support/max-includes/max-external-common.xcconfig b/source/c74support/max-includes/max-external-common.xcconfig deleted file mode 100644 index e051be24..00000000 --- a/source/c74support/max-includes/max-external-common.xcconfig +++ /dev/null @@ -1,44 +0,0 @@ -// Xcode target configuration settings for Max externals -// -// Changes to the settings in this file will be applied to all externals -// To change settings for only one of the objects, override the settings using Xcode's target inspector. -// -// Timothy Place -// Copyright © 2009, Cycling '74 - -#include "max-common.xcconfig" - - -// Paths - -C74SUPPORT = $(SRCROOT)/../../c74support -C74PRIVATE = $(SRCROOT)/../../c74support-private -HEADER_SEARCH_PATHS_COMMON = $(DEVELOPER_DIR)/Headers/FlatCarbon "$(C74SUPPORT)/max-includes" "$(C74PRIVATE)/max-includes" -HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS_COMMON) -USER_HEADER_SEARCH_PATHS = -FRAMEWORK_SEARCH_PATHS_COMMON = "$(C74SUPPORT)/max-includes/$(C74_FRAMEWORK_PATH_SUFFIX)" -FRAMEWORK_SEARCH_PATHS = $(FRAMEWORK_SEARCH_PATHS_COMMON) - -// Define DSTROOT in a context-specific xcconfig file that includes this file, rather than globally: - -// DSTROOT = $(SRCROOT)/../../../sysbuild/$(CONFIGURATION)/Cycling '74/max-externals - - -// (This next path is relative to DSTROOT) - -INSTALL_PATH = / - - -// Special Files - -GCC_PREFIX_HEADER = $(C74SUPPORT)/max-includes/macho-prefix.pch -INFOPLIST_FILE = $(C74PRIVATE)/max-includes/Info.plist - - -// Static Configuration - -WRAPPER_EXTENSION = mxo; -WARNING_CFLAGS = -Wmost -Wno-four-char-constants -Wno-unknown-pragmas -DEPLOYMENT_LOCATION = YES -GENERATE_PKGINFO_FILE = YES - diff --git a/source/c74support/max-includes/max-external-debug.xcconfig b/source/c74support/max-includes/max-external-debug.xcconfig deleted file mode 100644 index 9be5b1b2..00000000 --- a/source/c74support/max-includes/max-external-debug.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -#include "max-external-common.xcconfig" - -GCC_OPTIMIZATION_LEVEL = 0 -GCC_AUTO_VECTORIZATION = NO -GCC_ENABLE_SSE3_EXTENSIONS = NO -GCC_UNROLL_LOOPS = NO -LLVM_LTO = NO - -GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS) _DEBUG DEBUG diff --git a/source/c74support/max-includes/max-external-release.xcconfig b/source/c74support/max-includes/max-external-release.xcconfig deleted file mode 100644 index 0d92df2f..00000000 --- a/source/c74support/max-includes/max-external-release.xcconfig +++ /dev/null @@ -1,8 +0,0 @@ -#include "max-external-common.xcconfig" - -GCC_OPTIMIZATION_LEVEL = s -GCC_AUTO_VECTORIZATION = YES -GCC_ENABLE_SSE3_EXTENSIONS = YES -GCC_UNROLL_LOOPS = YES -LLVM_LTO = NO -GCC_FAST_MATH = YES diff --git a/source/c74support/max-includes/max-local.xcconfig b/source/c74support/max-includes/max-local.xcconfig deleted file mode 100644 index e69de29b..00000000 diff --git a/source/c74support/max-includes/max_extern_common.props b/source/c74support/max-includes/max_extern_common.props deleted file mode 100644 index 29c20356..00000000 --- a/source/c74support/max-includes/max_extern_common.props +++ /dev/null @@ -1,51 +0,0 @@ - - - - ..\..\sysbuild\win_debug - ..\..\sysbuild\win_debug_x64 - ..\..\sysbuild\win_release - ..\..\sysbuild\win_release_x64 - $(ProjectDir)..\..\c74support\ - $(SYSBUILD)\resources - $(C74_ROOT)\externals - $(C74_ROOT)\extensions - $(C74_ROOT)\jsextensions - - - <_ProjectFileVersion>10.0.40219.1 - $(C74SUPPORT)..\..\externals\ - ..\..\sysbuild\intermediate\$(Configuration)_$(PlatformName)\$(ProjectName)\ - false - - - - MaxAPI.lib;MaxAudio.lib;jitlib.lib;%(AdditionalDependencies) - - - VER_TARGETNAME=\"$(TargetName)\";%(PreprocessorDefinitions) - - - _CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - $(IntDir)$(TargetName).manifest - - - - - $(C74SUPPORT) - - - $(C74_ROOT) - - - $(EXTERNALS_ROOT) - - - $(EXTENSIONS_ROOT) - - - $(JSEXTENSIONS_ROOT) - - - \ No newline at end of file diff --git a/source/c74support/max-includes/max_extern_x64.props b/source/c74support/max-includes/max_extern_x64.props deleted file mode 100644 index 83e62a58..00000000 --- a/source/c74support/max-includes/max_extern_x64.props +++ /dev/null @@ -1,15 +0,0 @@ - - - - <_ProjectFileVersion>10.0.40219.1 - .mxe64 - - - - $(C74SUPPORT)\max-includes\x64;$(C74SUPPORT)\msp-includes\x64;$(C74SUPPORT)\jit-includes\x64;%(AdditionalLibraryDirectories) - - - VER_TARGETEXT=\".mxe64\";%(PreprocessorDefinitions) - - - \ No newline at end of file diff --git a/source/c74support/max-includes/max_extern_x86.props b/source/c74support/max-includes/max_extern_x86.props deleted file mode 100644 index b0862cb3..00000000 --- a/source/c74support/max-includes/max_extern_x86.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - <_ProjectFileVersion>10.0.40219.1 - .mxe - - - - $(C74SUPPORT)\max-includes;$(C74SUPPORT)\msp-includes;$(C74SUPPORT)\jit-includes;%(AdditionalLibraryDirectories) - - - VER_TARGETEXT=\".mxe\";%(PreprocessorDefinitions) - - - StreamingSIMDExtensions2 - - - \ No newline at end of file diff --git a/source/c74support/max-includes/max_keydefs.h b/source/c74support/max-includes/max_keydefs.h deleted file mode 100644 index 19f3ed03..00000000 --- a/source/c74support/max-includes/max_keydefs.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef _MAX_KEYDEFS_H_ -#define _MAX_KEYDEFS_H_ - -/** Bit mask values for various meta-key presses on the keyboard. - @ingroup jmouse */ -typedef enum _modifiers { - eCommandKey = 1, ///< Command Key - eShiftKey = 2, ///< Shift Key - eControlKey = 4, ///< Control Key - eAltKey = 8, ///< Alt Key - eLeftButton = 16, ///< Left mouse button - eRightButton = 32, ///< Right mouse button - eMiddleButton = 64, ///< Middle mouse button - ePopupMenu = 128, ///< Popup Menu (contextual menu requested) - eCapsLock = 256, ///< Caps lock - eAutoRepeat = 512 ///< Key is generated by key press auto-repeat -} t_modifiers; - -// key codes -// key/keyup objects fourth outlet and key message to objects uses -// the following values for keycodes -typedef enum _keycode { - // keycode is ascii value with modifiers stripped - // a-z keys thus report lowercase keycode regardless of shift key or capslock state - JKEY_NONE = -1, - JKEY_SPACEBAR = -2, - JKEY_ESC = -3, - JKEY_RETURN = -4, - JKEY_ENTER = -4, // same as JKEY_RETURN - JKEY_TAB = -5, - JKEY_DELETE = -6, - JKEY_BACKSPACE = -7, - JKEY_INSERT = -8, - JKEY_UPARROW = -9, - JKEY_DOWNARROW = -10, - JKEY_LEFTARROW = -11, - JKEY_RIGHTARROW = -12, - JKEY_PAGEUP = -13, - JKEY_PAGEDOWN = -14, - JKEY_HOME = -15, - JKEY_END = -16, - JKEY_F1 = -17, - JKEY_F2 = -18, - JKEY_F3 = -19, - JKEY_F4 = -20, - JKEY_F5 = -21, - JKEY_F6 = -22, - JKEY_F7 = -23, - JKEY_F8 = -24, - JKEY_F9 = -25, - JKEY_F10 = -26, - JKEY_F11 = -27, - JKEY_F12 = -28, - JKEY_F13 = -29, - JKEY_F14 = -30, - JKEY_F15 = -31, - JKEY_F16 = -32, - JKEY_NUMPAD0 = -33, - JKEY_NUMPAD1 = -34, - JKEY_NUMPAD2 = -35, - JKEY_NUMPAD3 = -36, - JKEY_NUMPAD4 = -37, - JKEY_NUMPAD5 = -38, - JKEY_NUMPAD6 = -39, - JKEY_NUMPAD7 = -40, - JKEY_NUMPAD8 = -41, - JKEY_NUMPAD9 = -42, - JKEY_NUMPADADD = -43, - JKEY_NUMPADSUBTRACT = -44, - JKEY_NUMPADMULTIPLY = -45, - JKEY_NUMPADDIVIDE = -46, - JKEY_NUMPADSEPARATOR = -47, - JKEY_NUMPADDECIMALPOINT = -48, - JKEY_NUMPADEQUALS = -49, - JKEY_NUMPADDELETE = -50, - JKEY_PLAYPAUSE = -51, - JKEY_STOP = -52, - JKEY_NEXTTRACK = -53, - JKEY_PREVTRACK = -54, - JKEY_HELP = -55 -} t_keycode; - - -#endif // #ifndef _MAX_KEYDEFS_H_ diff --git a/source/c74support/max-includes/max_types.h b/source/c74support/max-includes/max_types.h deleted file mode 100755 index 1b685dc0..00000000 --- a/source/c74support/max-includes/max_types.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef _MAX_TYPES_H_ -#define _MAX_TYPES_H_ - -#include "ext_infer_system.h" - -#include - -typedef unsigned int t_uint; ///< an unsigned int as defined by the architecture / platform @ingroup misc -typedef int8_t t_int8; ///< a 1-byte int @ingroup misc -typedef uint8_t t_uint8; ///< an unsigned 1-byte int @ingroup misc -typedef int16_t t_int16; ///< a 2-byte int @ingroup misc -typedef uint16_t t_uint16; ///< an unsigned 2-byte int @ingroup misc -typedef int32_t t_int32; ///< a 4-byte int @ingroup misc -typedef uint32_t t_uint32; ///< an unsigned 4-byte int @ingroup misc -typedef int64_t t_int64; ///< an 8-byte int @ingroup misc -typedef uint64_t t_uint64; ///< an unsigned 8-byte int @ingroup misc -typedef t_uint32 t_fourcc; ///< an integer of suitable size to hold a four char code / identifier @ingroup misc - - -typedef uintptr_t t_ptr_uint; ///< an unsigned pointer-sized int @ingroup misc -typedef intptr_t t_ptr_int; ///< a pointer-sized int @ingroup misc - -#ifdef C74_X64 -typedef double t_atom_float; ///< the type that is an A_FLOAT in a #t_atom @ingroup misc -typedef t_ptr_uint t_getbytes_size; ///< like size_t but for getbytes() @ingroup misc -#define ATOM_LONG_FMT_MODIFIER "ll" -#define ATOM_FLOAT_FMT_MODIFIER "l" // for scanf "%lf" will read into a double - -#ifdef WIN_VERSION -#define INT32_FMT_MODIFIER "" -#define INT64_FMT_MODIFIER "ll" -#endif - -#if defined(MAC_VERSION) || defined(LINUX_VERSION) -#define INT32_FMT_MODIFIER "" -#define INT64_FMT_MODIFIER "l" -#endif - -#else -typedef float t_atom_float; ///< the type that is an A_FLOAT in a #t_atom @ingroup misc -typedef short t_getbytes_size; ///< like size_t but for getbytes() @ingroup misc -#define ATOM_LONG_FMT_MODIFIER "l" -#define ATOM_FLOAT_FMT_MODIFIER "" // for scanf we just want "%f" for scanf to read a float -#define INT32_FMT_MODIFIER "" -#define INT64_FMT_MODIFIER "ll" -#endif - -#define C74_INT16_MAX INT16_MAX -#define C74_INT32_MAX INT32_MAX -#define C74_INT64_MAX INT64_MAX -#define C74_INT16_MIN INT16_MIN -#define C74_INT32_MIN INT32_MIN -#define C74_INT64_MIN INT64_MIN -#define C74_UINT16_MAX UINT16_MAX -#define C74_UINT32_MAX UINT32_MAX -#define C74_UINT64_MAX UINT64_MAX - -#define C74_PTR_INT_MIN INTPTR_MIN -#define C74_PTR_INT_MAX INTPTR_MAX -#define C74_PTR_UINT_MAX UINTPTR_MAX - -#define C74_ATOM_LONG_MIN C74_PTR_INT_MIN -#define C74_ATOM_LONG_MAX C74_PTR_INT_MAX - -#if defined(MAC_VERSION) || defined(LINUX_VERSION) -#define C74_LONG_INT_MIN C74_PTR_INT_MIN -#define C74_LONG_INT_MAX C74_PTR_INT_MAX -#define C74_ULONG_INT_MAX C74_PTR_UINT_MAX -#else -#define C74_LONG_INT_MIN C74_INT32_MIN -#define C74_LONG_INT_MAX C74_INT32_MAX -#define C74_ULONG_INT_MAX C74_UINT32_MAX -#endif - -typedef t_ptr_int t_int; ///< an integer @ingroup misc -typedef t_ptr_uint t_ptr_size; ///< unsigned pointer-sized value for counting (like size_t) @ingroup misc -typedef t_ptr_int t_atom_long; ///< the type that is an A_LONG in a #t_atom @ingroup misc -typedef t_atom_long t_max_err; ///< an integer value suitable to be returned as an error code @ingroup misc - -typedef char **t_handle; ///< a handle (address of a pointer) @ingroup misc -typedef char *t_ptr; ///< a pointer @ingroup misc - -typedef t_uint8 t_bool; ///< a true/false variable @ingroup misc -typedef t_int16 t_filepath; ///< i.e. path/vol in file APIs identifying a folder @ingroup misc - -#ifdef WIN_VERSION -typedef t_int16 t_refnum; - -#ifndef __cplusplus -#define bool int -#define false (0) -#define true (1) -#endif - -#endif - -#ifdef MAC_VERSION -// typedef FSIORefNum t_refnum; // don't want to require Carbon include for build -#ifdef C74_X64 -typedef int t_refnum; // for x64 an FSIORefNum is an int -#else -typedef short t_refnum; -#endif -#endif // #ifdef MAC_VERSION - -#ifdef LINUX_VERSION -typedef int t_refnum; -#endif - - -#ifndef bool -#include -#endif - -/** Standard values returned by function calls with a return type of #t_max_err - @ingroup misc */ -typedef enum { - MAX_ERR_NONE = 0, ///< No error - MAX_ERR_GENERIC = -1, ///< Generic error - MAX_ERR_INVALID_PTR = -2, ///< Invalid Pointer - MAX_ERR_DUPLICATE = -3, ///< Duplicate - MAX_ERR_OUT_OF_MEM = -4 ///< Out of memory -} e_max_errorcodes; - -#endif // #ifdef _MAX_TYPES_H_ diff --git a/source/c74support/max-includes/x64/MaxAPI.lib b/source/c74support/max-includes/x64/MaxAPI.lib deleted file mode 100644 index 20456c88..00000000 Binary files a/source/c74support/max-includes/x64/MaxAPI.lib and /dev/null differ diff --git a/source/c74support/msp-includes/MaxAudioAPI.framework/MaxAudioAPI b/source/c74support/msp-includes/MaxAudioAPI.framework/MaxAudioAPI deleted file mode 120000 index c98bd342..00000000 --- a/source/c74support/msp-includes/MaxAudioAPI.framework/MaxAudioAPI +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/MaxAudioAPI \ No newline at end of file diff --git a/source/c74support/msp-includes/MaxAudioAPI.framework/Resources b/source/c74support/msp-includes/MaxAudioAPI.framework/Resources deleted file mode 120000 index 953ee36f..00000000 --- a/source/c74support/msp-includes/MaxAudioAPI.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources \ No newline at end of file diff --git a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/MaxAudioAPI b/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/MaxAudioAPI deleted file mode 100755 index 79ba2de2..00000000 Binary files a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/MaxAudioAPI and /dev/null differ diff --git a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/Resources/Info.plist b/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 36486b4f..00000000 --- a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - MaxAudioAPI - CFBundleIdentifier - com.cycling74.MaxAudioAPI - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0 - - diff --git a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/Current b/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/Current deleted file mode 120000 index 8c7e5a66..00000000 --- a/source/c74support/msp-includes/MaxAudioAPI.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A \ No newline at end of file diff --git a/source/c74support/msp-includes/MaxAudioAPI.h b/source/c74support/msp-includes/MaxAudioAPI.h deleted file mode 100644 index 5753fc61..00000000 --- a/source/c74support/msp-includes/MaxAudioAPI.h +++ /dev/null @@ -1 +0,0 @@ -#include "z_dsp.h" diff --git a/source/c74support/msp-includes/buffer.h b/source/c74support/msp-includes/buffer.h deleted file mode 100644 index 184b9092..00000000 --- a/source/c74support/msp-includes/buffer.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef _BUFFER_H_ -#define _BUFFER_H_ - -#include "ext_obex.h" -#include "ext_systhread.h" -#include "ext_critical.h" -#include "ext_atomic.h" -#include "ext_buffer.h" -#include "ext_maxtypes.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -enum { - MAXCHAN = 4 -}; - -enum { - bi_basefreq = 0, - bi_detune, - bi_lowfreq, - bi_hifreq, - bi_lowvel, - bi_hivel, - bi_gain, - bi_numparams -}; - - -/** Data structure for the buffer~ object. - Deprectated. - Use #t_buffer_ref and #t_buffer_obj instead. -*/ -struct _buffer -{ - t_object b_obj; ///< doesn't have any signals so it doesn't need to be pxobject - long b_valid; ///< flag is off during read replacement or editing operation - float *b_samples; ///< stored with interleaved channels if multi-channel - long b_frames; ///< number of sample frames (each one is sizeof(float) * b_nchans bytes) - long b_nchans; ///< number of channels - long b_size; ///< size of buffer in floats - float b_sr; ///< sampling rate of the buffer - float b_1oversr; ///< 1 / sr - float b_msr; ///< sr * .001 - // Mac-specific stuff - float *b_memory; ///< pointer to where memory starts (initial padding for interp) - t_symbol *b_name; ///< name of the buffer - short b_vol; - short b_space; - // looping info (from AIFF file) - long b_susloopstart; ///< looping info (from AIFF file) in samples - long b_susloopend; ///< looping info (from AIFF file) in samples - long b_relloopstart; ///< looping info (from AIFF file) in samples - long b_relloopend; ///< looping info (from AIFF file) in samples - // instrument info (from AIFF file) - short b_inst[bi_numparams]; - // window stuff - void *b_wind; - double b_pixperfr; - double b_frperpix; - long b_imagesize; - short b_unusedshort1; // was Point b_scroll - short b_unusedshort2; // could chop if struct compatibility wasn't important - long b_scrollscale; - long b_selbegin[MAXCHAN]; // unused - do NOT USE - MAXCHAN is retired - long b_selend[MAXCHAN]; // unused - do NOT USE - MAXCHAN is retired - long b_zoom; - long b_zim[11]; - void *b_mouseout; - long b_format; ///< 'AIFF' or 'Sd2f' - t_symbol *b_filename; ///< last file read (not written) for info~ - long b_oldnchans; ///< used for resizing window in case of # of channels change - void *b_doneout; - long b_outputbytes; ///< number of bytes used for output sample (1-4) - long b_modtime; ///< last modified time ("dirty" method) - struct _buffer *b_peer; ///< objects that share this symbol (used as a link in the peers) - t_bool b_owner; ///< b_memory/b_samples "owned" by this object - long b_outputfmt; ///< sample type (A_LONG, A_FLOAT, etc.) - t_int32_atomic b_inuse; ///< objects that use buffer should ATOMIC_INCREMENT / ATOMIC_DECREMENT this in their perform - void *b_dspchain; ///< dspchain used for this instance - long b_padding; ///< amount of padding (number of samples) in b_memory before b_samples starts - long b_paddingchanged; ///< flag indicating that b_padding has changed and needs to be allocated - t_object *b_jsoundfile; ///< internal instance for reading/writing FLAC format - t_systhread_mutex b_mutex; ///< mutex to use when locking and performing operations anywhere except perform method - long b_wasvalid; ///< internal flag used by replacement or editing operation - method b_custom_error_handler_fn; /// used to return error numbers to a caller if this object is embedded inside of another object (e.g. playlist~) - t_object *b_custom_error_handler; /// used to return error numbers to a caller if this object is embedded inside of another object (e.g. playlist~) - t_clock *b_dirty_clock; ///< used to move buffer dirty notifications to the main thread - t_qelem *b_dirty_qelem; ///< used to move buffer dirty notifications to the main thread - t_bool b_dirty_done; ///< a buffer is not only dirty, but needs the 'done' message sent out its b_doneout outlet - t_filepath b_filevol; ///< path of last file read (not written) -}; - -// Direct access to a t_buffer struct is deprecated and will no longer be supported in the future. -// Instead, use t_buffer_ref and t_buffer_obj as defined in the 'ext_buffer.h' header file. - -#ifdef C74_BUFFER_INTERNAL -typedef struct _buffer t_buffer; -#else -C74_DEPRECATED( typedef struct _buffer t_buffer ); -#endif // C74_BUFFER_INTERNAL - - -#define BUFWIND(x) ((t_wind *)(x->b_wind)) - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#endif // #ifndef _BUFFER_H_ diff --git a/source/c74support/msp-includes/ext_buffer.h b/source/c74support/msp-includes/ext_buffer.h deleted file mode 100644 index 1edd26b0..00000000 --- a/source/c74support/msp-includes/ext_buffer.h +++ /dev/null @@ -1,250 +0,0 @@ -#ifndef _EXT_BUFFER_H_ -#define _EXT_BUFFER_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" - -/** A buffer~ reference. - Use this struct to represent a reference to a buffer~ object in Max. - Use the buffer_ref_getbuffer() call to return a pointer to the buffer. - You can then make calls on the buffer itself. - - @ingroup buffers -*/ -typedef struct _buffer_ref t_buffer_ref; - - -/** A buffer~ object. - This represents the actual buffer~ object. - You can use this to send messages, query attributes, etc. of the actual buffer object - referenced by a #t_buffer_ref. - - @ingroup buffers - */ -typedef t_object t_buffer_obj; - - -/** Common buffer~ data/metadata. - This info can be retreived from a buffer~ using the buffer_getinfo() call. - - @ingroup buffers - */ -typedef struct _buffer_info -{ - t_symbol *b_name; ///< name of the buffer - float *b_samples; ///< stored with interleaved channels if multi-channel - long b_frames; ///< number of sample frames (each one is sizeof(float) * b_nchans bytes) - long b_nchans; ///< number of channels - long b_size; ///< size of buffer in floats - float b_sr; ///< sampling rate of the buffer - long b_modtime; ///< last modified time ("dirty" method) - long b_rfu[57]; ///< reserved for future use (total struct size is 64x4 = 256 bytes) -} t_buffer_info; - - -BEGIN_USING_C_LINKAGE - - -/** Create a reference to a buffer~ object by name. - You must release the buffer reference using object_free() when you are finished using it. - - @ingroup buffers - @param self pointer to your object - @param name the name of the buffer~ - @return a pointer to your new buffer reference -*/ -t_buffer_ref* buffer_ref_new(t_object *self, t_symbol *name); - - -/** Change a buffer reference to refer to a different buffer~ object by name. - - @ingroup buffers - @param x the buffer reference - @param name the name of a different buffer~ to reference - */ -void buffer_ref_set(t_buffer_ref *x, t_symbol *name); - - -/** Query to find out if a buffer~ with the referenced name actually exists. - - @ingroup buffers - @param x the buffer reference - @return non-zero if the buffer~ exists, otherwise zero -*/ -t_atom_long buffer_ref_exists(t_buffer_ref *x); - - -/** Query a buffer reference to get the actual buffer~ object being referenced, if it exists. - - @ingroup buffers - @param x the buffer reference - @return the buffer object if exists, otherwise NULL - */ -t_buffer_obj *buffer_ref_getobject(t_buffer_ref *x); - - -/** Your object needs to handle notifications issued by the buffer~ you reference. - You do this by defining a "notify" method. - Your notify method should then call this notify method for the #t_buffer_ref. - - @ingroup buffers - @param x the buffer reference - @param s the registered name of the sending object - @param msg then name of the notification/message sent - @param sender the pointer to the sending object - @param data optional argument sent with the notification/message - @return a max error code -*/ -t_max_err buffer_ref_notify(t_buffer_ref *x, t_symbol *s, t_symbol *msg, void *sender, void *data); - - - - - -/** Open a viewer window to display the contents of the buffer~. - - @ingroup buffers - @param buffer_object the buffer object -*/ -void buffer_view(t_buffer_obj *buffer_object); - - -/** Claim the buffer~ and get a pointer to the first sample in memory. - When you are done reading/writing to the buffer you must call buffer_unlocksamples(). - If the attempt to claim the buffer~ fails the returned pointer will be NULL. - - @ingroup buffers - @param buffer_object the buffer object - @return a pointer to the first sample in memory, or NULL if the buffer doesn't exist. -*/ -float *buffer_locksamples(t_buffer_obj *buffer_object); - - -/** Release your claim on the buffer~ contents so that other objects may read/write to the buffer~. - - @ingroup buffers - @param buffer_object the buffer object -*/ -void buffer_unlocksamples(t_buffer_obj *buffer_object); - - -#ifndef C74_BUFFER_INTERNAL - - -/** Query a buffer~ to find out how many channels are present in the buffer content. - - @ingroup buffers - @param buffer_object the buffer object - @return the number of channels in the buffer -*/ -t_atom_long buffer_getchannelcount(t_buffer_obj *buffer_object); - - -/** Query a buffer~ to find out how many frames long the buffer content is in samples. - - @ingroup buffers - @param buffer_object the buffer object - @return the number of frames in the buffer -*/ -t_atom_long buffer_getframecount(t_buffer_obj *buffer_object); - - -/** Query a buffer~ to find out its native sample rate in samples per second. - - @ingroup buffers - @param buffer_object the buffer object - @return the sample rate in samples per second -*/ -t_atom_float buffer_getsamplerate(t_buffer_obj *buffer_object); - - -/** Query a buffer~ to find out its native sample rate in samples per millisecond. - - @ingroup buffers - @param buffer_object the buffer object - @return the sample rate in samples per millisecond -*/ -t_atom_float buffer_getmillisamplerate(t_buffer_obj *buffer_object); - - -/** Set the number of samples with which to zero-pad the buffer~'s contents. - The typical application for this need is to pad a buffer with enough room to allow for the reach of a FIR kernel in convolution. - - @ingroup buffers - @param buffer_object the buffer object - @param samplecount the number of sample to pad the buffer with on each side of the contents - @return an error code -*/ -t_max_err buffer_setpadding(t_buffer_obj *buffer_object, t_atom_long samplecount); - - -/** Set the buffer's dirty flag, indicating that changes have been made. - - @ingroup buffers - @param buffer_object the buffer object - @return an error code - */ -t_max_err buffer_setdirty(t_buffer_obj *buffer_object); - - -/** Retrieve the name of the last file to be read by a buffer~. - (Not the last file written). - - @ingroup buffers - @param buffer_object the buffer object - @return The name of the file last read, or gensym("") if no files have been read. - - @version Introduced in Max 7.0.1 - */ -t_symbol *buffer_getfilename(t_buffer_obj *buffer_object); - - -#endif // C74_BUFFER_INTERNAL - - -// Internal or low-level functions - - -// buffer_perform functions to replace the direct use of -// atomics and other buffer state flags from the perform method -// wrapped by buffer_locksamples() and buffer_unlocksamples() -t_max_err buffer_perform_begin(t_buffer_obj *buffer_object); -t_max_err buffer_perform_end(t_buffer_obj *buffer_object); - -// utility function for getting buffer info in struct form -// without needing to know entire buffer struct -t_max_err buffer_getinfo(t_buffer_obj *buffer_object, t_buffer_info *info); - - -// the following functions are not to be called in the perform method -// please use the lightweight buffer_perform methods - -// use buffer_edit functions to collapse all operations of -// locking heavy b_mutex, setting b_valid flag, -// waiting on lightweight atomic b_inuse, etc. -t_max_err buffer_edit_begin(t_buffer_obj *buffer_object); -t_max_err buffer_edit_end(t_buffer_obj *buffer_object, long valid); // valid 0=FALSE, positive=TRUE, negative=RESTORE_OLD_VALID (not common) - -// low level mutex locking used by buffer_edit fucntions. -// use only if you really know what you're doing. -// otherwise, use the buffer_edit functions -// if you're touching a t_buffer outside perform -t_max_err buffer_lock(t_buffer_obj *buffer_object); -t_max_err buffer_trylock(t_buffer_obj *buffer_object); -t_max_err buffer_unlock(t_buffer_obj *buffer_object); - -// low level utilities used by buffer_edit functions -// use only if you really know what you're doing. -// otherwise, use the buffer_edit functions -// if you're touching a t_buffer outside perform -t_buffer_obj *buffer_findowner(t_buffer_obj *buffer_object); -long buffer_spinwait(t_buffer_obj *buffer_object); -long buffer_valid(t_buffer_obj *buffer_object, long way); - - - - -END_USING_C_LINKAGE - - -#endif // #ifndef _EXT_BUFFER_H_ diff --git a/source/c74support/msp-includes/r_pfft.h b/source/c74support/msp-includes/r_pfft.h deleted file mode 100644 index bcef4856..00000000 --- a/source/c74support/msp-includes/r_pfft.h +++ /dev/null @@ -1,37 +0,0 @@ -// public fftpatcher struct -#ifndef _R_PFFT_H_ -#define _R_PFFT_H_ - -#include "ext_prefix.h" -#include "ext_mess.h" -#include "z_dsp.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** Public FFT Patcher struct. - @ingroup pfft -*/ -typedef struct _pfftpub { - t_pxobject x_obj; - t_object *x_parent; ///< parent patcher - t_object *x_patcher; ///< patcher loaded - struct _dspchain *x_chain; ///< dsp chain within pfft - long x_fftsize; ///< fft frame size - long x_ffthop; ///< hop between fft frames - long x_fftoffset; ///< n samples offset before fft is started - long x_fftindex; ///< current index into fft frame - short x_fullspect; ///< process half-spectrum (0) or full mirrored spectrum (1)? -} t_pfftpub; - - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -#endif diff --git a/source/c74support/msp-includes/x64/MaxAudio.lib b/source/c74support/msp-includes/x64/MaxAudio.lib deleted file mode 100644 index b914e639..00000000 Binary files a/source/c74support/msp-includes/x64/MaxAudio.lib and /dev/null differ diff --git a/source/c74support/msp-includes/z_altivec.h b/source/c74support/msp-includes/z_altivec.h deleted file mode 100755 index 2bbff69d..00000000 --- a/source/c74support/msp-includes/z_altivec.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifdef __ALTIVEC__ -#pragma altivec_model on - -#ifdef __cplusplus -#include // for vec_malloc -#endif - -typedef union -{ - float flt[4]; - vector float vFlt; -} floatToVector; - -static floatToVector __vsf_temp; - -// this is what was needed to convince the compiler to copy a float to -// the four float locations in a vector - -#define vec_splat_float(v,f) { \ - __vsf_temp.flt[0] = f; \ - v = vec_splat( vec_lde( 0, __vsf_temp.flt ), 0 ); } - -#define VRSAVE asm { li r0,-1 ; mtspr vrsave,r0 } - -#pragma altivec_model off -#endif diff --git a/source/c74support/msp-includes/z_dsp.h b/source/c74support/msp-includes/z_dsp.h deleted file mode 100755 index 19db7a65..00000000 --- a/source/c74support/msp-includes/z_dsp.h +++ /dev/null @@ -1,464 +0,0 @@ -// z_dsp.h -- the main header file for all DSP objects copyright 1997-2003 Cycling '74 - -// DSP services: - -#ifndef _Z_DSP_H -#define _Z_DSP_H - -#include "z_sampletype.h" -#include "ext_systhread.h" -#include "ext_linklist.h" -#include "ext_atomic.h" -#include "ext_maxtypes.h" - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(push, 2) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack(2) -#endif - -/** MSP System Properties. - @ingroup msp */ -enum { - SYS_MAXBLKSIZE = 2048 ///< a good number for a maximum signal vector size -}; - -// maximum channels in a multi-channel signal - -#define MC_MAX_CHANS 1024 - -// suggested maximum number of inlets or outlets in a multi-channel object -// this is not a hard limit, just a way to keep people from making objects -// with huge numbers of inlets and outlets by mistake - -#define MC_MAX_IO 64 - -// header for all DSP objects. Provides a proxy. - -// z_misc flags: - -#define Z_NO_INPLACE 1 ///< flag indicating the object doesn't want signals in place @ingroup msp -#define Z_PUT_LAST 2 ///< when list of ugens is resorted, put this object at end @ingroup msp -#define Z_PUT_FIRST 4 ///< when list of ugens is resorted, put this object at beginning @ingroup msp -#define Z_IGNORE_DISABLE 8 ///< ignore the disable field when executing the chain, e.g. to process the pass~ object in a muted patcher. -#define Z_DONT_ADD 16 ///< if this flag is set the object will be ignored and its dsp method won't be called. -#define Z_MC_INLETS 32 ///< object knows how to count channels of incoming multi-channel signals - -#define SIXTEENIZE(p) ((((t_ptr_uint)(p)) + 16) & (~(t_ptr_uint)0xF)) -#define THIRTYTWOIZE(p) ((((t_ptr_uint)(p)) + 32) & (~(t_ptr_uint)0x1F)) - -typedef void *t_proxy; - -/** Common struct for MSP objects. - @ingroup msp */ -typedef struct _pxdata { - long z_in; - void *z_proxy; - long z_disabled; ///< set to non-zero if this object is muted (using the pcontrol or mute~ objects) - short z_count; ///< the number of signal inlets - short z_misc; ///< flags (bitmask) determining object behaviour, such as #Z_NO_INPLACE, #Z_PUT_FIRST, or #Z_PUT_LAST -} t_pxdata; - -/** Header for any non-ui signal processing object. - For ui objects use #t_pxjbox. - @ingroup msp */ -typedef struct t_pxobject { - struct object z_ob; ///< The standard #t_object struct. - long z_in; - void *z_proxy; - long z_disabled; ///< set to non-zero if this object is muted (using the pcontrol or mute~ objects) - short z_count; ///< the number of signal inlets - short z_misc; ///< flags (bitmask) determining object behaviour, such as #Z_NO_INPLACE, #Z_PUT_FIRST, or #Z_PUT_LAST -} t_pxobject; - - -#define MAXLOGSIG 13 -#define MAXSIGSIZE (1 << MAXLOGSIG) -/** The signal data structure. - @ingroup msp */ -typedef struct _signal -{ - long s_n; ///< The vector size of the signal. - t_sample *s_vec; ///< A buffer holding the vector of audio samples. - float s_sr; ///< The sample rate of the signal. - struct _signal *s_next; - struct _signal *s_nextused; - short s_refcount; - short s_size; // element size (* s_n == memory) - char *s_ptr; // what to free -} t_signal; - - -// c74 private - -struct _chain64item; -struct _chain64item_extra; - -typedef struct _dspchain -{ - t_object c_ob; - t_int *c_chain; - long c_chainsize; - long c_callcount; - long c_usedcount; - long c_reusedcount; - long c_freedcount; - long c_sr; - long c_bs; - t_signal *c_usedlist; - t_signal *c_freelist; - t_signal *c_zero; - struct _ugenbox *c_ugenlist; // temporary variable, allows reentrant compiling - struct _dspchain *c_prev; - void *c_patcher; // top-level parent or 0 if global - void *c_inlets; // collection of inlets - void *c_outlets; // collection of outlets - void *c_inputs; // signal input list (zero before first exec) - void *c_outputs; // signal output list - // have to determine whether freelist is global or local - volatile long c_broken; // object being freed, don't run it - long c_intype; // using old signal linklist (0) or array - long c_outtype; // using old signal linklist (0) or array - t_int32_atomic c_dontbreak; // temporarily prevent chain from being broken - t_int32_atomic c_wantsbreak; // so main thread can tell audio thread it wants to become broken - void *c_patchers; // used to keep track of all patchers in chain - void *c_posttickobjects; // list of objects to be ticked after process (called from same thread as dspchain is ticked from) - void *c_mixerlisteners; // list of objects listening to various mixer notifications - void *unused; // was c_chain64 but no longer used - struct _ugenbox *c_curugen; // internal use: ugenbox pointer to current box during dsp64 method call - t_object *c_implicitugens; // internal use - long c_32bitchain; // flag set when this is really a 32 bit chain (for wrapper) - long c_benchmark; // flag set when benchmarking cpu consumption - double c_benchtime_used; // cumulative cputime (in milliseconds) used for ticking all objects in the chain (only when benchmarking is enabled) - double c_benchtime_available; // cumulative time (in milliseconds) since this dspchain has been started (only when benchmarking is enabled) - long c_chain64_alloclen; - long c_chain64_len; - struct _chain64item *c_chain64_array; - struct _chain64item_extra *c_chain64_extra_array; -} t_dspchain; - -#ifndef VPTR_TYPEDEF -/** A void pointer. @ingroup msp */ -typedef void *t_vptr; -/** A void pointer. @ingroup msp */ -typedef void *vptr; -#define VPTR_TYPEDEF -#endif - -// useful define - -#ifndef PI -/** The pi constant. @ingroup msp */ -#define PI 3.14159265358979323846 -#endif -#ifndef TWOPI -/** Twice the pi constant. @ingroup msp */ -#define TWOPI 6.28318530717958647692 -#endif // TWOPI -#ifndef PIOVERTWO -/** Half of the pi constant. @ingroup msp */ -#define PIOVERTWO 1.57079632679489661923 -#endif // PIOVERTWO - -// system access prototypes - -BEGIN_USING_C_LINKAGE - -/** A function pointer for the audio perform routine used by MSP objects to process blocks of samples. @ingroup msp */ -typedef t_int *(*t_perfroutine)(t_int *args); - -typedef void (*t_perfroutine64)(t_object *x, t_object *dsp64, double **ins, long numins, double **outs, long numouts, long sampleframes, long flags, void *userparam); - -// messages to the dsp object - -void *dspmess(t_symbol *mess); - -// access to DSP system variables - -/** Query MSP for the maximum global vector (block) size. - @ingroup msp - @return The maximum global vector size for the MSP environment. */ -int sys_getmaxblksize(void); - -/** Query MSP for the current global vector (block) size. - @ingroup msp - @return The current global vector size for the MSP environment. */ -int sys_getblksize(void); - -/** Query MSP for the global sample rate. - @ingroup msp - @return The global sample rate of the MSP environment. */ -float sys_getsr(void); - -int sys_getch(void); // returns current number of channels -int sys_optimize(void); // returns whether to optimize or not -int sys_altivec(void); // returns whether machine has vector processing - -/** Query MSP to determine whether or not it is running. - @ingroup msp - @return Returns true if the DSP is turned on, otherwise returns false. */ -int sys_getdspstate(void); // returns whether audio is on or off - -/** Query MSP to determine whether or not a given audio object is - in a running dsp chain. This is preferable over sys_getdspstate() - since global audio can be on but an object could be in a patcher that - is not running. - @ingroup msp - @return Returns true if the MSP object is in a patcher that has audio on, otherwise returns false. -*/ -int sys_getdspobjdspstate(t_object *o); - -// controlling the DSP - -void canvas_start_dsp(void); -void canvas_stop_dsp(void); -void dsp_tick(void); // no longer used - -// the dspchain object - -#define DSPCHAIN_MIXERLISTENER_WILLPROCESSIOVECTOR (0x00000001) -#define DSPCHAIN_MIXERLISTENER_WILLPROCESSMIXER (0x00000002) -#define DSPCHAIN_MIXERLISTENER_DIDPROCESSMIXER (0x00000004) -#define DSPCHAIN_MIXERLISTENER_DIDPROCESSIOVECTOR (0x00000008) -#define DSPCHAIN_MIXERLISTENER_MIXERGRAPHWILLSTART (0x00000010) -#define DSPCHAIN_MIXERLISTENER_MIXERGRAPHWILLSTOP (0x00000020) - -t_dspchain *dspchain_start(long bs, long sr); -t_dspchain *dspchain_get(void); -t_dspchain *dspchain_compile(t_patcher *p, long bs, long sr); -t_dspchain *dspchain_compile2(t_patcher *p, t_dspchain *x); -void dspchain_tick(t_dspchain *c); -void canvas_start_onedsp(t_patcher *p, t_dspchain **c, long bs, long sr); -void canvas_stop_onedsp(t_dspchain *c); -void dspchain_setbroken(t_dspchain *c); -t_max_err dspchain_lock(t_dspchain *c); -void dspchain_unlock(t_dspchain *c); -t_dspchain *dspchain_fromobject(t_object *o); -void dspchain_addmixerlistener(t_dspchain *chain, t_object *listener, long notifications); - -// utility perform routines - -void set_zero(float *dst, long n); -void set_zero64(double *dst, long n); -void copy_64from32(t_double *dst, const t_float *src, long n); -void copy_32from64(t_float *dst, const t_double *src, long n); -t_int *plus_perform(t_int *args); -t_int *plus_perform64(t_int *args); -t_int *sig_perform(t_int *args); -t_int *sig_perform64(t_int *args); -t_int *copy_perform(t_int *args); -t_int *copy_perform64(t_int *args); -t_int *plus2_perform(t_int *w); -t_int *plus2_perform64(t_int *w); - -// setup routines used by DSP objects - -/** Call this function in your MSP object's dsp method. - This function adds your object's perform method to the DSP call chain - and specifies the arguments it will be passed. - n, the number of arguments to your perform method, should be followed by n - additional arguments, all of which must be the size of a pointer or a long. - - @ingroup msp - @param f The perform routine to use for processing audio. - @param n The number of arguments that will follow - @param ... The arguments that will be passed to the perform routine. - @see @ref chapter_msp_anatomy_dsp - @see @ref chapter_msp_advanced_connections */ -C74_DEPRECATED( void dsp_add(t_perfroutine f, int n, ...) ); - -/** Call this function in your MSP object's dsp method. - Use dsp_addv() to add your object's perform routine to the DSP call - chain and specify its arguments in an array rather than as arguments to - a function. - - @ingroup msp - @param f The perform routine to use for processing audio. - @param n The number of arguments that will follow in the vector parameter. - @param vector The arguments that will be passed to the perform routine. - @see @ref chapter_msp_anatomy_dsp - @see @ref chapter_msp_advanced_connections */ -C74_DEPRECATED( void dsp_addv(t_perfroutine f, int n, void **vector) ); - -// objects should only have one perform method -// in exceptional cases there may be a situation where warnings about this need to be disabled. -// this flag to dsp_add64 will accomplish that -// for internal use only -#define DSP_ADD64_FLAG_INTERNALITEM (0x00000001) - -void dsp_add64(t_object *chain, t_object *x, t_perfroutine64 f, long flags, void *userparam); - -/** Call this routine after creating your object in the new instance routine - with object_alloc(). Cast your object to #t_pxobject as the first - argument, then specify the number of signal inputs your object will - have. dsp_setup() initializes fields of the #t_pxobject header and - allocates any proxies needed (if num_signal_inputs is greater than 1). - - Some signal objects have no inputs; you should pass 0 for - num_signal_inputs in this case. After calling dsp_setup(), you can - create additional non-signal inlets using intin(), floatin(), or - inlet_new(). - - @ingroup msp - @param x Your object's pointer. - @param nsignals The number of signal/proxy inlets to create for the object. - @see #dsp_setup */ -void z_dsp_setup(t_pxobject *x, long nsignals); // called in new method - -/** This is commonly used rather than directly calling z_dsp_setup() in MSP objects. - @ingroup msp */ -#define dsp_setup z_dsp_setup - -void dsp_resize(t_pxobject *x, long nsignals); // for dynamic inlets - - -/** This function disposes of any memory used by proxies allocated by - dsp_setup(). It also notifies the signal compiler that the DSP call chain - needs to be rebuilt if signal processing is active. You should be sure to - call this before de-allocating any memory that might be in use by your - object’s perform routine, in the event that signal processing is on when - your object is freed. - - @ingroup msp - @param x The object to free. - @see #dsp_free */ -void z_dsp_free(t_pxobject *x); - -/** This is commonly used rather than directly calling z_dsp_free() in MSP objects. - @ingroup msp */ -#define dsp_free z_dsp_free - - -C74_DEPRECATED ( void z_add_signalmethod(void) ); // called in initialization routine -#define dsp_initclass z_add_signalmethod - -void z_sysinit(void); -#define dsp_sysinit z_sysinit - -void dsp_setpatcher(void *p); -void *dsp_getpatcher(); - -short z_isconnected(t_object *x, t_object *dst, short *index); -#define dsp_isconnected z_isconnected - -short z_dsp_setloadupdate(short way); -#define dsp_setloadupdate z_dsp_setloadupdate - -void *dsp_setpostprocess(method pm); -void *dsp_setpreprocess(method pm); - -// used only by audio driver objects - -void sys_setprocessflag(short way); - -// lame audio file utility (do not use) - -short aiff_parse(char *header, long *offset, long *size, long *nchans, long *ssize, - long *srate, void *chunk, void *markers); - -// memory utilities - -void *t_resizebytes(char *old, long oldsize, long newsize); -void *t_getbytes(long size); -void *t_freebytes(void *fatso, long size); - -// atom utilities - -t_int atom_getintarg(short which, short argc, t_atom *argv); -float atom_getfloatarg(short which, short argc, t_atom *argv); -t_symbol *atom_getsymarg(short which, short argc, t_atom *argv); - -#define PROXY_GETINLET(x) proxy_getinlet(x) - - -/** This routine must be called in your object's initialization routine. It - adds a set of methods to your object's class that are called by MSP to - build the DSP call chain. These methods function entirely - transparently to your object so you don't have to worry about them. - However, you should avoid binding anything to their names: signal, - userconnect, nsiginlets, and enable. - - This routine is for non-user-interface objects only - (where the first item in your object's struct is a t_pxobject). - It must be called prior to calling class_register() for your class. - - @ingroup msp - @param c The class to make dsp-ready. - @see class_dspinitjbox() */ -void class_dspinit(t_class *c); - -/** This routine must be called in your object's initialization routine. It - adds a set of methods to your object's class that are called by MSP to - build the DSP call chain. These methods function entirely - transparently to your object so you don't have to worry about them. - However, you should avoid binding anything to their names: signal, - userconnect, nsiginlets, and enable. - - This routine is for user-interface objects only - (where the first item in your object's struct is a t_jbox). - - @ingroup msp - @param c The class to make dsp-ready. - @see class_dspinit() */ -void class_dspinitjbox(t_class *c); - - -// defines for SIMD optimization - -// minimum vector size to use SIMD optimization -#define DSP_OPTIMIZE_MIN 64 - -// simple (e.g. times, minus) not worth optimizing, disabled -#define DSP_SIMPLE_OPTIMIZE_TEST(sigptr) (FALSE) - -// simple parameter setting test (e.g. times, minus) not worth optimizing, disabled -#define DSP_SIMPLE_OPTIMIZE_TEST_PARAM (FALSE) - -// complex (e.g. cos, log, sqrt, fft family) optimize as long as enabled and vector is large enough -#define DSP_COMPLEX_OPTIMIZE_TEST(sigptr) (FALSE) -//#define DSP_COMPLEX_OPTIMIZE_TEST(sigptr) (sys_optimize()&&(sigptr)&&(sigptr)->s_n>=DSP_OPTIMIZE_MIN) - -// buffered routines optimize always if enabled since signal vector isn't relevant -#define DSP_BUFFERED_OPTIMIZE_TEST(sigptr) (FALSE) -//#define DSP_BUFFERED_OPTIMIZE_TEST(sigptr) (sys_optimize()) - - - -END_USING_C_LINKAGE - -#if C74_PRAGMA_STRUCT_PACKPUSH - #pragma pack(pop) -#elif C74_PRAGMA_STRUCT_PACK - #pragma pack() -#endif - -//-- ddz, so this is OK, just needs jpatcher_api.h first, right? - -#if defined(_JPATCHER_API_H_) || defined(_DOXY_) -BEGIN_USING_C_LINKAGE - - -/** Header for any ui signal processing object. - For non-ui objects use #t_pxobject. - @ingroup msp */ -typedef struct _pxjbox { - t_jbox z_box; ///< The box struct used by all ui objects. - long z_in; - void *z_proxy; - long z_disabled; ///< set to non-zero if this object is muted (using the pcontrol or mute~ objects) - short z_count; ///< the number of signal inlets - short z_misc; ///< flags (bitmask) determining object behaviour, such as #Z_NO_INPLACE, #Z_PUT_FIRST, or #Z_PUT_LAST -} t_pxjbox; - -void z_jbox_dsp_setup(t_pxjbox *x, long nsignals); -void z_jbox_dsp_free(t_pxjbox *x); - -#define dsp_setupjbox z_jbox_dsp_setup -#define dsp_freejbox z_jbox_dsp_free - -END_USING_C_LINKAGE - - -#endif // _JPATCHER_API_H_ -#endif // _Z_DSP_H - diff --git a/source/c74support/msp-includes/z_sampletype.h b/source/c74support/msp-includes/z_sampletype.h deleted file mode 100644 index e5afab08..00000000 --- a/source/c74support/msp-includes/z_sampletype.h +++ /dev/null @@ -1,87 +0,0 @@ -// z_sampletype.h -- defines t_sample and friends copyright 1997-2010 Cycling '74 - -#ifndef _Z_SAMPLETYPE_H -#define _Z_SAMPLETYPE_H - -#ifndef MSP64 -// tap -- set to build 64-bit audio chains -#define MSP64 1 -#endif - -/** A float -- always a 32 bit floating point number. @ingroup msp */ -typedef float t_float; - -/** A double -- always a 64 bit floating point number. @ingroup msp */ -typedef double t_double; - -/** A sample value -- width determined by MSP version. @ingroup msp */ -#if MSP64 -typedef double t_sample; -#else -typedef float t_sample; -#endif - -// macro loop for checking for NAN/INF - -// note: this may be platform-dependent - -#define NAN_MASK 0x7F800000 - -#define NAN_CHECK(n,o) \ -while (n--) { if ((*(o) & NAN_MASK) == NAN_MASK) *(o) = 0; (o)++; } // now post inc/dec -Rd jun 05 - -#define IS_DENORM_FLOAT(v) ((((*(t_uint32 *)&(v))&0x7f800000)==0)&&((v)!=0.f)) -#define IS_DENORM_DOUBLE(v) ((((((t_uint32 *)&(v))[1])&0x7fe00000)==0)&&((v)!=0.)) - -#define IS_NAN_FLOAT(v) (((*(t_uint32 *)&(v))&0x7f800000)==0x7f800000) -#define IS_NAN_DOUBLE(v) (((((t_uint32 *)&(v))[1])&0x7fe00000)==0x7fe00000) - -#define IS_DENORM_NAN_FLOAT(v) (IS_DENORM_FLOAT(v)||IS_NAN_FLOAT(v)) -#define IS_DENORM_NAN_DOUBLE(v) (IS_DENORM_DOUBLE(v)||IS_NAN_DOUBLE(v)) - -// currently all little endian processors are x86 -// an external could #define DENORM_WANT_FIX to disable or enable denorm checks -// but now we disable them all by default -#ifndef DENORM_WANT_FIX -#if 0 -// || defined(WIN_VERSION) // no longer fixing denormals on Win. Instead using SSE processor flags. -// || (defined(MAC_VERSION)&&TARGET_RT_LITTLE_ENDIAN) // no longer fixing denormals on Mac. Instead using SSE processor flags. -// user can #define DENORM_WANT_FIX to 0 to disable -#define DENORM_WANT_FIX 1 -#endif -#endif // #ifndef DENORM_WANT_FIX - -#if DENORM_WANT_FIX - -#define FIX_DENORM_FLOAT(v) ((v)=IS_DENORM_FLOAT(v)?0.f:(v)) -#define FIX_DENORM_DOUBLE(v) ((v)=IS_DENORM_DOUBLE(v)?0.f:(v)) - -#define FIX_DENORM_NAN_FLOAT(v) ((v)=IS_DENORM_NAN_FLOAT(v)?0.f:(v)) -#define FIX_DENORM_NAN_DOUBLE(v) ((v)=IS_DENORM_NAN_DOUBLE(v)?0.:(v)) - -#else - -#define FIX_DENORM_FLOAT(v) -#define FIX_DENORM_DOUBLE(v) - -#define FIX_DENORM_NAN_FLOAT(v) ((v)=IS_NAN_FLOAT(v)?0.0:(v)) -#define FIX_DENORM_NAN_DOUBLE(v) ((v)=IS_NAN_DOUBLE(v)?0.0:(v)) - -#endif // #ifdef DENORM_WANT_FIX - -#if MSP64 -#define IS_DENORM_SAMPLE(v) IS_DENORM_DOUBLE(v) -#define IS_NAN_SAMPLE(v) IS_NAN_DOUBLE(v) -#define IS_DENORM_NAN_SAMPLE(v) IS_DENORM_NAN_DOUBLE(v) -#define FIX_DENORM_SAMPLE(v) FIX_DENORM_DOUBLE(v) -#define FIX_DENORM_NAN_SAMPLE(v) FIX_DENORM_NAN_DOUBLE(v) -#else -#define IS_DENORM_SAMPLE(v) IS_DENORM_FLOAT(v) -#define IS_NAN_SAMPLE(v) IS_NAN_FLOAT(v) -#define IS_DENORM_NAN_SAMPLE(v) IS_DENORM_NAN_FLOAT(v) -#define FIX_DENORM_SAMPLE(v) FIX_DENORM_FLOAT(v) -#define FIX_DENORM_NAN_SAMPLE(v) FIX_DENORM_NAN_FLOAT(v) -#endif - -#endif // _Z_SAMPLETYPE_H - diff --git a/source/dictionary/dict.group/CMakeLists.txt b/source/dictionary/dict.group/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/dictionary/dict.group/CMakeLists.txt +++ b/source/dictionary/dict.group/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/dictionary/dict.route/CMakeLists.txt b/source/dictionary/dict.route/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/dictionary/dict.route/CMakeLists.txt +++ b/source/dictionary/dict.route/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/dictionary/dict.route/dict.route.c b/source/dictionary/dict.route/dict.route.c index dafce121..ce0635b5 100644 --- a/source/dictionary/dict.route/dict.route.c +++ b/source/dictionary/dict.route/dict.route.c @@ -55,15 +55,19 @@ void *dict_route_new(t_symbol *s, long argc, t_atom *argv) x->outlet_dict = outlet_new(x, "dictionary"); x->inlet_tomatch = proxy_new(x, 1, NULL); - if (attrstart) + if (attrstart) { dictobj_dictionaryfromatoms(&d, attrstart, argv); + if (!d) { + object_error((t_object *)x, "could not parse argument"); + } + } if (!d) { char errorstring[256]; t_max_err err; err = dictobj_dictionaryfromstring(&d, "{ \"schema\" : \"*\" }", true, errorstring); if (err) - error("dict.route: %s", errorstring); + object_error((t_object *)x, "%s", errorstring); } x->schema_dict = dictobj_register(d, &x->schema_name); diff --git a/source/dictionary/dict.strip/CMakeLists.txt b/source/dictionary/dict.strip/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/dictionary/dict.strip/CMakeLists.txt +++ b/source/dictionary/dict.strip/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/gl/jit.gl.cube/CMakeLists.txt b/source/gl/jit.gl.cube/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/gl/jit.gl.cube/CMakeLists.txt +++ b/source/gl/jit.gl.cube/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/gl/jit.gl.gridshape/CMakeLists.txt b/source/gl/jit.gl.gridshape/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/gl/jit.gl.gridshape/CMakeLists.txt +++ b/source/gl/jit.gl.gridshape/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/gl/jit.gl.gridshape/max.jit.gl.gridshape.c b/source/gl/jit.gl.gridshape/max.jit.gl.gridshape.c index 1ae02d4a..7d05adee 100755 --- a/source/gl/jit.gl.gridshape/max.jit.gl.gridshape.c +++ b/source/gl/jit.gl.gridshape/max.jit.gl.gridshape.c @@ -20,7 +20,7 @@ C74_EXPORT void ext_main(void *r) maxclass = class_new("jit.gl.gridshape", (method)max_jit_gl_gridshape_new, (method)max_jit_gl_gridshape_free, sizeof(t_max_jit_gl_gridshape), NULL, A_GIMME, 0); max_jit_class_obex_setup(maxclass, calcoffset(t_max_jit_gl_gridshape, obex)); jitclass = jit_class_findbyname(gensym("jit_gl_gridshape")); - max_jit_class_wrap_standard(maxclass, jitclass, 0); + max_jit_class_wrap_ob3d_inletinfo(maxclass, jitclass, 0); class_addmethod(maxclass, (method)max_jit_ob3d_assist, "assist", A_CANT, 0); class_addmethod(maxclass, (method)max_jit_ob3d_acceptsdrag, "acceptsdrag_unlocked", A_CANT, 0); diff --git a/source/gl/jit.gl.simple/CMakeLists.txt b/source/gl/jit.gl.simple/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/gl/jit.gl.simple/CMakeLists.txt +++ b/source/gl/jit.gl.simple/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/gl/jit.gl.videoplane/CMakeLists.txt b/source/gl/jit.gl.videoplane/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/gl/jit.gl.videoplane/CMakeLists.txt +++ b/source/gl/jit.gl.videoplane/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/gl/jit.gl.videoplane/max.jit.gl.videoplane.c b/source/gl/jit.gl.videoplane/max.jit.gl.videoplane.c index 63693ce3..6772cdba 100644 --- a/source/gl/jit.gl.videoplane/max.jit.gl.videoplane.c +++ b/source/gl/jit.gl.videoplane/max.jit.gl.videoplane.c @@ -28,7 +28,7 @@ C74_EXPORT void ext_main(void *r) maxclass = class_new("jit.gl.videoplane", (method)max_jit_gl_videoplane_new, (method)max_jit_gl_videoplane_free, sizeof(t_max_jit_gl_videoplane), NULL, A_GIMME, 0); max_jit_class_obex_setup(maxclass, calcoffset(t_max_jit_gl_videoplane, obex)); jitclass = jit_class_findbyname(gensym("jit_gl_videoplane")); - max_jit_class_wrap_standard(maxclass, jitclass, 0); + max_jit_class_wrap_ob3d_inletinfo(maxclass, jitclass, 0); class_addmethod(maxclass, (method)max_jit_ob3d_assist, "assist", A_CANT, 0); diff --git a/source/matrix/jit.3m/CMakeLists.txt b/source/matrix/jit.3m/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.3m/CMakeLists.txt +++ b/source/matrix/jit.3m/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.alphablend/CMakeLists.txt b/source/matrix/jit.alphablend/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.alphablend/CMakeLists.txt +++ b/source/matrix/jit.alphablend/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.change/CMakeLists.txt b/source/matrix/jit.change/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.change/CMakeLists.txt +++ b/source/matrix/jit.change/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.charmap/CMakeLists.txt b/source/matrix/jit.charmap/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.charmap/CMakeLists.txt +++ b/source/matrix/jit.charmap/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.clip/CMakeLists.txt b/source/matrix/jit.clip/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.clip/CMakeLists.txt +++ b/source/matrix/jit.clip/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.coerce/CMakeLists.txt b/source/matrix/jit.coerce/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.coerce/CMakeLists.txt +++ b/source/matrix/jit.coerce/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.concat/CMakeLists.txt b/source/matrix/jit.concat/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.concat/CMakeLists.txt +++ b/source/matrix/jit.concat/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.demultiplex/CMakeLists.txt b/source/matrix/jit.demultiplex/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.demultiplex/CMakeLists.txt +++ b/source/matrix/jit.demultiplex/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.dimmap/CMakeLists.txt b/source/matrix/jit.dimmap/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.dimmap/CMakeLists.txt +++ b/source/matrix/jit.dimmap/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.eclipse/CMakeLists.txt b/source/matrix/jit.eclipse/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.eclipse/CMakeLists.txt +++ b/source/matrix/jit.eclipse/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.fill/CMakeLists.txt b/source/matrix/jit.fill/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.fill/CMakeLists.txt +++ b/source/matrix/jit.fill/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.findbounds/CMakeLists.txt b/source/matrix/jit.findbounds/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.findbounds/CMakeLists.txt +++ b/source/matrix/jit.findbounds/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.fluoride/CMakeLists.txt b/source/matrix/jit.fluoride/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.fluoride/CMakeLists.txt +++ b/source/matrix/jit.fluoride/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.glue/CMakeLists.txt b/source/matrix/jit.glue/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.glue/CMakeLists.txt +++ b/source/matrix/jit.glue/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.gradient/CMakeLists.txt b/source/matrix/jit.gradient/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.gradient/CMakeLists.txt +++ b/source/matrix/jit.gradient/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.hello/CMakeLists.txt b/source/matrix/jit.hello/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.hello/CMakeLists.txt +++ b/source/matrix/jit.hello/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.histogram/CMakeLists.txt b/source/matrix/jit.histogram/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.histogram/CMakeLists.txt +++ b/source/matrix/jit.histogram/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.iter/CMakeLists.txt b/source/matrix/jit.iter/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.iter/CMakeLists.txt +++ b/source/matrix/jit.iter/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.keyscreen/CMakeLists.txt b/source/matrix/jit.keyscreen/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.keyscreen/CMakeLists.txt +++ b/source/matrix/jit.keyscreen/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.la.diagproduct/CMakeLists.txt b/source/matrix/jit.la.diagproduct/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.la.diagproduct/CMakeLists.txt +++ b/source/matrix/jit.la.diagproduct/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.map/CMakeLists.txt b/source/matrix/jit.map/CMakeLists.txt new file mode 100755 index 00000000..898230b3 --- /dev/null +++ b/source/matrix/jit.map/CMakeLists.txt @@ -0,0 +1,24 @@ +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) + +############################################################# +# MAX EXTERNAL +############################################################# + +include_directories( + "${MAX_SDK_INCLUDES}" + "${MAX_SDK_MSP_INCLUDES}" + "${MAX_SDK_JIT_INCLUDES}" +) + +file(GLOB PROJECT_SRC + "*.h" + "*.c" + "*.cpp" +) +add_library( + ${PROJECT_NAME} + MODULE + ${PROJECT_SRC} +) + +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.noise/CMakeLists.txt b/source/matrix/jit.noise/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.noise/CMakeLists.txt +++ b/source/matrix/jit.noise/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.notify/CMakeLists.txt b/source/matrix/jit.notify/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.notify/CMakeLists.txt +++ b/source/matrix/jit.notify/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.op/CMakeLists.txt b/source/matrix/jit.op/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.op/CMakeLists.txt +++ b/source/matrix/jit.op/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.p.bounds/CMakeLists.txt b/source/matrix/jit.p.bounds/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.p.bounds/CMakeLists.txt +++ b/source/matrix/jit.p.bounds/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.pack/CMakeLists.txt b/source/matrix/jit.pack/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.pack/CMakeLists.txt +++ b/source/matrix/jit.pack/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.peek~/CMakeLists.txt b/source/matrix/jit.peek~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.peek~/CMakeLists.txt +++ b/source/matrix/jit.peek~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.poke~/CMakeLists.txt b/source/matrix/jit.poke~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.poke~/CMakeLists.txt +++ b/source/matrix/jit.poke~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.print/CMakeLists.txt b/source/matrix/jit.print/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.print/CMakeLists.txt +++ b/source/matrix/jit.print/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.rgb2luma/CMakeLists.txt b/source/matrix/jit.rgb2luma/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.rgb2luma/CMakeLists.txt +++ b/source/matrix/jit.rgb2luma/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.scalebias/CMakeLists.txt b/source/matrix/jit.scalebias/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.scalebias/CMakeLists.txt +++ b/source/matrix/jit.scalebias/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.scissors/CMakeLists.txt b/source/matrix/jit.scissors/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.scissors/CMakeLists.txt +++ b/source/matrix/jit.scissors/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.spill/CMakeLists.txt b/source/matrix/jit.spill/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.spill/CMakeLists.txt +++ b/source/matrix/jit.spill/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.split/CMakeLists.txt b/source/matrix/jit.split/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.split/CMakeLists.txt +++ b/source/matrix/jit.split/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.str.op/CMakeLists.txt b/source/matrix/jit.str.op/CMakeLists.txt index 1b97e351..09a893ba 100755 --- a/source/matrix/jit.str.op/CMakeLists.txt +++ b/source/matrix/jit.str.op/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -23,4 +23,4 @@ add_library( max.jit.str.op.c ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.submatrix/CMakeLists.txt b/source/matrix/jit.submatrix/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.submatrix/CMakeLists.txt +++ b/source/matrix/jit.submatrix/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.textfile/CMakeLists.txt b/source/matrix/jit.textfile/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.textfile/CMakeLists.txt +++ b/source/matrix/jit.textfile/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.thin/CMakeLists.txt b/source/matrix/jit.thin/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.thin/CMakeLists.txt +++ b/source/matrix/jit.thin/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.transpose/CMakeLists.txt b/source/matrix/jit.transpose/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.transpose/CMakeLists.txt +++ b/source/matrix/jit.transpose/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.turtle/CMakeLists.txt b/source/matrix/jit.turtle/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.turtle/CMakeLists.txt +++ b/source/matrix/jit.turtle/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/jit.unpack/CMakeLists.txt b/source/matrix/jit.unpack/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/jit.unpack/CMakeLists.txt +++ b/source/matrix/jit.unpack/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/simplejit/CMakeLists.txt b/source/matrix/simplejit/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/simplejit/CMakeLists.txt +++ b/source/matrix/simplejit/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/matrix/simplejit~/CMakeLists.txt b/source/matrix/simplejit~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/matrix/simplejit~/CMakeLists.txt +++ b/source/matrix/simplejit~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/max-sdk-base b/source/max-sdk-base new file mode 160000 index 00000000..81d01ff7 --- /dev/null +++ b/source/max-sdk-base @@ -0,0 +1 @@ +Subproject commit 81d01ff7a3d68a2c9acd625440040109bf006815 diff --git a/source/mc/gridmeter~/CMakeLists.txt b/source/mc/gridmeter~/CMakeLists.txt index 46dd3ba7..5bbb49c5 100755 --- a/source/mc/gridmeter~/CMakeLists.txt +++ b/source/mc/gridmeter~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -22,4 +22,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/mc/limi~/CMakeLists.txt b/source/mc/limi~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/mc/limi~/CMakeLists.txt +++ b/source/mc/limi~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/mc/mc.pack~/CMakeLists.txt b/source/mc/mc.pack~/CMakeLists.txt index 46dd3ba7..5bbb49c5 100755 --- a/source/mc/mc.pack~/CMakeLists.txt +++ b/source/mc/mc.pack~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -22,4 +22,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/mc/mc.rotate~/CMakeLists.txt b/source/mc/mc.rotate~/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/mc/mc.rotate~/CMakeLists.txt +++ b/source/mc/mc.rotate~/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/buddy/CMakeLists.txt b/source/misc/buddy/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/buddy/CMakeLists.txt +++ b/source/misc/buddy/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/filedate/CMakeLists.txt b/source/misc/filedate/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/filedate/CMakeLists.txt +++ b/source/misc/filedate/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/filein/CMakeLists.txt b/source/misc/filein/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/filein/CMakeLists.txt +++ b/source/misc/filein/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/folder/CMakeLists.txt b/source/misc/folder/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/folder/CMakeLists.txt +++ b/source/misc/folder/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/iter/CMakeLists.txt b/source/misc/iter/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/iter/CMakeLists.txt +++ b/source/misc/iter/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/master/CMakeLists.txt b/source/misc/master/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/master/CMakeLists.txt +++ b/source/misc/master/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/match/CMakeLists.txt b/source/misc/match/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/match/CMakeLists.txt +++ b/source/misc/match/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/minimum/CMakeLists.txt b/source/misc/minimum/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/minimum/CMakeLists.txt +++ b/source/misc/minimum/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/past/CMakeLists.txt b/source/misc/past/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/past/CMakeLists.txt +++ b/source/misc/past/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/servant/CMakeLists.txt b/source/misc/servant/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/servant/CMakeLists.txt +++ b/source/misc/servant/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/thresh/CMakeLists.txt b/source/misc/thresh/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/thresh/CMakeLists.txt +++ b/source/misc/thresh/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/thresh/thresh.c b/source/misc/thresh/thresh.c index 681e38f3..4c503d11 100755 --- a/source/misc/thresh/thresh.c +++ b/source/misc/thresh/thresh.c @@ -13,7 +13,7 @@ void *thresh_class; -#define MAXSIZE 4096 +#define MAXSIZE 32767 typedef struct thresh { t_object t_ob; @@ -61,7 +61,7 @@ void thresh_int(t_thresh *x, t_atom_long n) if (proxy_getinlet((t_object *)x)) x->t_interval = n < 5? 5 : n; else { - if (x->t_ac < MAXSIZE - 1) { + if (x->t_ac < MAXSIZE) { x->t_time = gettime_forobject((t_object *)x); atom_setlong(x->t_av+x->t_ac,n); x->t_ac++; @@ -75,7 +75,7 @@ void thresh_float(t_thresh *x, double f) if (proxy_getinlet((t_object *)x)) x->t_interval = f < 5? 5 : f; else { - if (x->t_ac < MAXSIZE - 1) { + if (x->t_ac < MAXSIZE) { x->t_time = gettime_forobject((t_object *)x); atom_setfloat(x->t_av+x->t_ac,f); x->t_ac++; diff --git a/source/misc/vexpr/CMakeLists.txt b/source/misc/vexpr/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/vexpr/CMakeLists.txt +++ b/source/misc/vexpr/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/misc/vexpr/vexpr.c b/source/misc/vexpr/vexpr.c index d03d560a..1505296c 100755 --- a/source/misc/vexpr/vexpr.c +++ b/source/misc/vexpr/vexpr.c @@ -5,18 +5,21 @@ void *vexpr_class; -#define MAXLIST 4096 - +#define VEXPR_MINSIZE 1 +#define VEXPR_MAXSIZE 32767 +#define VEXPR_DEFAULTSIZE 4096 +#define VEXPR_ARGVCOUNT 10 typedef struct vexpr { t_object v_ob; t_expr *v_expr; void **v_proxy; void *v_outlet; - t_atom *v_argv[10]; - short v_argc[10]; + t_atom *v_argv[VEXPR_ARGVCOUNT]; + short v_argc[VEXPR_ARGVCOUNT]; short v_numargs; char v_scalarmode; + long v_maxsize; } t_vexpr; C74_EXPORT void ext_main(void *r); @@ -31,6 +34,7 @@ void vexpr_assist(t_vexpr *x, void *b, long m, long a, char *s); void vexpr_inletinfo(t_vexpr *x, void *b, long a, char *t); void vexpr_free (t_vexpr *x); void *vexpr_new (t_symbol *s, short ac, t_atom *av); +t_max_err vexpr_attr_maxsize_set(t_vexpr *x, void *attr, long ac, t_atom *av); C74_EXPORT void ext_main(void *r) @@ -50,12 +54,34 @@ C74_EXPORT void ext_main(void *r) CLASS_ATTR_CATEGORY(c, "scalarmode", 0, "Behavior"); CLASS_ATTR_BASIC(c, "scalarmode", 0); + CLASS_ATTR_LONG(c, "maxsize", 0, t_vexpr, v_maxsize); + CLASS_ATTR_LABEL(c, "maxsize", 0, "Maximum List Length"); + CLASS_ATTR_ACCESSORS(c, "maxsize", (method)NULL, (method)vexpr_attr_maxsize_set) + CLASS_ATTR_CATEGORY(c, "maxsize", 0, "Behavior"); + CLASS_ATTR_BASIC(c, "maxsize", 0); + class_register(CLASS_BOX, c); vexpr_class = c; return; } +t_max_err vexpr_attr_maxsize_set(t_vexpr *x, void *attr, long ac, t_atom *av) +{ + if (ac && av) { + long i; + t_atom_long max = atom_getlong(av); + CLIP_ASSIGN(max, VEXPR_MINSIZE, VEXPR_MAXSIZE); + x->v_maxsize = max; + + for (i = 0; i < VEXPR_ARGVCOUNT; i++) { + x->v_argv[i] = (t_atom *)sysmem_resizeptr(x->v_argv[i], sizeof(t_atom) * x->v_maxsize); + x->v_argc[i] = x->v_maxsize; + } + } + return MAX_ERR_NONE; +} + void vexpr_bang(t_vexpr *x) { if (x->v_scalarmode) @@ -67,61 +93,71 @@ void vexpr_bang(t_vexpr *x) void vexpr_scalarbang(t_vexpr *x) { long i,j,count,index; - t_atom result[MAXLIST],input[10]; - short scalar[10]; + t_atom *result, input[VEXPR_ARGVCOUNT]; + short scalar[VEXPR_ARGVCOUNT]; t_bool hadscalar = false; + long maxlist = x->v_maxsize + 1; - count = MAXLIST+1; // count should be higher than the limit - for (i=0; i <= x->v_numargs; i++) { + result = (t_atom *)sysmem_newptr(sizeof(t_atom) * x->v_maxsize); + count = maxlist; // count should be higher than the limit + for (i = 0; i <= x->v_numargs; i++) { scalar[i] = x->v_argc[i] == 1; if (scalar[i]) hadscalar = true; else - count = MIN(x->v_argc[i],count); + count = MIN(x->v_argc[i], count); } - if (count == (MAXLIST+1)) { + if (count == maxlist) { if (hadscalar) count = 1; - else + else { + sysmem_freeptr(result); return; + } } - if (count > MAXLIST) - count = MAXLIST; + if (count > x->v_maxsize) + count = x->v_maxsize; - for (i=0; i < count; i++) { + for (i = 0; i < count; i++) { for (j = 0; j <= x->v_numargs; j++) { - index = scalar[j]? 0 : i; - input[j] = *(x->v_argv[j]+index); + index = scalar[j] ? 0 : i; + input[j] = *(x->v_argv[j] + index); } - expr_eval(x->v_expr,x->v_numargs+1,input,result+i); + expr_eval(x->v_expr, x->v_numargs + 1, input, result + i); } if (count > 1) - outlet_list(x->v_outlet,0L,count,result); + outlet_list(x->v_outlet, 0L, count, result); else { if (result[0].a_type == A_LONG) - outlet_int(x->v_outlet,result[0].a_w.w_long); + outlet_int(x->v_outlet, result[0].a_w.w_long); else if (result[0].a_type == A_FLOAT) - outlet_float(x->v_outlet,result[0].a_w.w_float); + outlet_float(x->v_outlet, result[0].a_w.w_float); } + sysmem_freeptr(result); } void vexpr_vectorbang(t_vexpr *x) { long i,j,count; - t_atom result[MAXLIST],input[10]; + t_atom *result, input[VEXPR_ARGVCOUNT]; + long maxlist = x->v_maxsize + 1; + + result = (t_atom *)sysmem_newptr(sizeof(t_atom) * x->v_maxsize); - count = MAXLIST+1; // count should be higher than the limit - for (i=0; i <= x->v_numargs; i++) - count = MIN(x->v_argc[i],count); - if (count == (MAXLIST+1)) + count = maxlist; // count should be higher than the limit + for (i = 0; i <= x->v_numargs; i++) + count = MIN(x->v_argc[i], count); + if (count == maxlist) { + sysmem_freeptr(result); return; - if (count > MAXLIST) - count = MAXLIST; + } + if (count > x->v_maxsize) + count = x->v_maxsize; - for (i=0; i < count; i++) { + for (i = 0; i < count; i++) { for (j = 0; j <= x->v_numargs; j++) - input[j] = *(x->v_argv[j]+i); - expr_eval(x->v_expr,x->v_numargs+1,input,result+i); + input[j] = *(x->v_argv[j] + i); + expr_eval(x->v_expr, x->v_numargs + 1, input, result + i); } if (count > 1) outlet_list(x->v_outlet,0L,count,result); @@ -132,6 +168,7 @@ void vexpr_vectorbang(t_vexpr *x) else if (result[0].a_type == A_FLOAT) outlet_float(x->v_outlet,result[0].a_w.w_float); } + sysmem_freeptr(result); } void vexpr_int(t_vexpr *x, long number) @@ -167,8 +204,8 @@ void vexpr_list(t_vexpr *x, t_symbol *s, short argc, t_atom *argv) long i,j; i = proxy_getinlet((t_object *)x); - if (argc > MAXLIST) - argc = MAXLIST; + if (argc > x->v_maxsize) + argc = x->v_maxsize; x->v_argc[i] = argc; switch (x->v_expr->exp_var[i].ex_type) { @@ -217,14 +254,14 @@ void vexpr_free(t_vexpr *x) } if (x->v_expr) freeobject((t_object *)x->v_expr); - for (i=0; i < 10; i++) + for (i=0; i < VEXPR_ARGVCOUNT; i++) sysmem_freeptr(x->v_argv[i]); } void *vexpr_new(t_symbol *s, short argc, t_atom *argv) { t_vexpr *x; - t_atom result[10]; + t_atom result[VEXPR_ARGVCOUNT]; long i; long attroffset = attr_args_offset(argc, argv); @@ -233,9 +270,10 @@ void *vexpr_new(t_symbol *s, short argc, t_atom *argv) x->v_proxy = 0; x->v_numargs = 0; x->v_scalarmode = 0; + x->v_maxsize = VEXPR_DEFAULTSIZE; - for (i=0; i < 10; i++) { - x->v_argv[i] = (t_atom *)sysmem_newptr(MAXLIST * sizeof(t_atom)); + for (i = 0; i < VEXPR_ARGVCOUNT; i++) { + x->v_argv[i] = (t_atom *)sysmem_newptr(x->v_maxsize * sizeof(t_atom)); x->v_argc[i] = 0; } x->v_expr = expr_new(attroffset,argv,result); diff --git a/source/misc/windowwatcher/CMakeLists.txt b/source/misc/windowwatcher/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/misc/windowwatcher/CMakeLists.txt +++ b/source/misc/windowwatcher/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/howbigisyourp/CMakeLists.txt b/source/patcher/howbigisyourp/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/howbigisyourp/CMakeLists.txt +++ b/source/patcher/howbigisyourp/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/iterate2/CMakeLists.txt b/source/patcher/iterate2/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/iterate2/CMakeLists.txt +++ b/source/patcher/iterate2/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/iterator/CMakeLists.txt b/source/patcher/iterator/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/iterator/CMakeLists.txt +++ b/source/patcher/iterator/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/scripto/CMakeLists.txt b/source/patcher/scripto/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/scripto/CMakeLists.txt +++ b/source/patcher/scripto/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/sheep/CMakeLists.txt b/source/patcher/sheep/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/sheep/CMakeLists.txt +++ b/source/patcher/sheep/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/shepherd/CMakeLists.txt b/source/patcher/shepherd/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/shepherd/CMakeLists.txt +++ b/source/patcher/shepherd/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/patcher/whosyourdaddy/CMakeLists.txt b/source/patcher/whosyourdaddy/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/patcher/whosyourdaddy/CMakeLists.txt +++ b/source/patcher/whosyourdaddy/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/script/GetGitRevisionDescription.cmake b/source/script/GetGitRevisionDescription.cmake deleted file mode 100644 index 6924d732..00000000 --- a/source/script/GetGitRevisionDescription.cmake +++ /dev/null @@ -1,126 +0,0 @@ -# - Returns a version string from Git -# -# These functions force a re-configure on each git commit so that you can -# trust the values of the variables in your build system. -# -# get_git_head_revision( [ ...]) -# -# Returns the refspec and sha hash of the current head revision -# -# git_describe( [ ...]) -# -# Returns the results of git describe on the source tree, and adjusting -# the output so that it tests false if an error occurs. -# -# git_get_exact_tag( [ ...]) -# -# Returns the results of git describe --exact-match on the source tree, -# and adjusting the output so that it tests false if there was no exact -# matching tag. -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright Iowa State University 2009-2010. -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -if(__get_git_revision_description) - return() -endif() -set(__get_git_revision_description YES) - -# We must run the following at "include" time, not at function call time, -# to find the path to this module rather than the path to a calling list file -get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) - -function(get_git_head_revision _refspecvar _hashvar) - set(GIT_PARENT_DIR "${CMAKE_CURRENT_SOURCE_DIR}") - set(GIT_DIR "${GIT_PARENT_DIR}/.git") - while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories - set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}") - get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH) - if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT) - # We have reached the root directory, we are not in git - set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - return() - endif() - set(GIT_DIR "${GIT_PARENT_DIR}/.git") - endwhile() - # check if this is a submodule - if(NOT IS_DIRECTORY ${GIT_DIR}) - file(READ ${GIT_DIR} submodule) - string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule}) - get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) - get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) - endif() - set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") - if(NOT EXISTS "${GIT_DATA}") - file(MAKE_DIRECTORY "${GIT_DATA}") - endif() - - if(NOT EXISTS "${GIT_DIR}/HEAD") - return() - endif() - set(HEAD_FILE "${GIT_DATA}/HEAD") - configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) - - configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" - "${GIT_DATA}/grabRef.cmake" - @ONLY) - include("${GIT_DATA}/grabRef.cmake") - - set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) - set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE) -endfunction() - -function(git_describe _var) - if(NOT GIT_FOUND) - find_package(Git QUIET) - endif() - get_git_head_revision(refspec hash) - if(NOT GIT_FOUND) - set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) - return() - endif() - if(NOT hash) - set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE) - return() - endif() - - # TODO sanitize - #if((${ARGN}" MATCHES "&&") OR - # (ARGN MATCHES "||") OR - # (ARGN MATCHES "\\;")) - # message("Please report the following error to the project!") - # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") - #endif() - - #message(STATUS "Arguments to execute_process: ${ARGN}") - - execute_process(COMMAND - "${GIT_EXECUTABLE}" - describe - ${ARGN} - WORKING_DIRECTORY - "${CMAKE_SOURCE_DIR}" - RESULT_VARIABLE - res - OUTPUT_VARIABLE - out - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) - - set(${_var} "${out}" PARENT_SCOPE) -endfunction() - -function(git_get_exact_tag _var) - git_describe(out --exact-match ${ARGN}) - set(${_var} "${out}" PARENT_SCOPE) -endfunction() diff --git a/source/script/GetGitRevisionDescription.cmake.in b/source/script/GetGitRevisionDescription.cmake.in deleted file mode 100644 index 888ce13a..00000000 --- a/source/script/GetGitRevisionDescription.cmake.in +++ /dev/null @@ -1,38 +0,0 @@ -# -# Internal file for GetGitRevisionDescription.cmake -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright Iowa State University 2009-2010. -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -set(HEAD_HASH) - -file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) - -string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) -if(HEAD_CONTENTS MATCHES "ref") - # named branch - string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") - if(EXISTS "@GIT_DIR@/${HEAD_REF}") - configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) - elseif(EXISTS "@GIT_DIR@/logs/${HEAD_REF}") - configure_file("@GIT_DIR@/logs/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) - set(HEAD_HASH "${HEAD_REF}") - endif() -else() - # detached HEAD - configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) -endif() - -if(NOT HEAD_HASH) - file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) - string(STRIP "${HEAD_HASH}" HEAD_HASH) -endif() diff --git a/source/script/Info.plist.in b/source/script/Info.plist.in deleted file mode 100644 index 2b9a1336..00000000 --- a/source/script/Info.plist.in +++ /dev/null @@ -1,41 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${MACOSX_BUNDLE_EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - @AUTHOR_DOMAIN@.@BUNDLE_IDENTIFIER@ - CFBundleInfoDictionaryVersion - 6.0 - - CFBundlePackageType - iLaX - CFBundleSignature - max2 - - C74ObjectProperties - - c74excludefromcollectives - @EXCLUDE_FROM_COLLECTIVES@ - - - CFBundleVersion - @GIT_VERSION_MAJ@.@GIT_VERSION_MIN@.@GIT_VERSION_SUB@ - CFBundleShortVersionString - @GIT_VERSION_MAJ@.@GIT_VERSION_MIN@.@GIT_VERSION_SUB@ - CFBundleLongVersionString - ${MACOSX_BUNDLE_EXECUTABLE_NAME} @GIT_VERSION_MAJ@.@GIT_VERSION_MIN@.@GIT_VERSION_SUB@ - @COPYRIGHT_STRING@ - NSHumanReadableCopyright - @COPYRIGHT_STRING@ - - CSResourcesFileMapped - - LSRequiresCarbon - - - diff --git a/source/script/PkgInfo b/source/script/PkgInfo deleted file mode 100644 index 925ce4a9..00000000 --- a/source/script/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -iLaX???? \ No newline at end of file diff --git a/source/script/excludefromcollectives.json b/source/script/excludefromcollectives.json deleted file mode 100644 index a506b18d..00000000 --- a/source/script/excludefromcollectives.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "c74excludefromcollectives": "yes" -} diff --git a/source/script/git-rev.cmake b/source/script/git-rev.cmake deleted file mode 100644 index 6e465b55..00000000 --- a/source/script/git-rev.cmake +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2018 The Max-API Authors. All rights reserved. -# Use of this source code is governed by the MIT License found in the License.md file. - -include("${CMAKE_CURRENT_LIST_DIR}/GetGitRevisionDescription.cmake") - -set(HASH "error") -get_git_head_revision(REFSPEC HASH --always --tags) -git_describe(GIT_TAG --abbrev=0 --tags) - -if(NOT ${HASH} STREQUAL "error" AND NOT ${HASH} STREQUAL "GIT-NOTFOUND" AND NOT ${GIT_TAG} STREQUAL "HEAD-HASH-NOTFOUND") -string(SUBSTRING ${HASH} 0 7 GIT_SHA_SHORT) -message("building on Git rev : " ${GIT_SHA_SHORT}) -message("Git tag : " ${GIT_TAG}) - -string(REPLACE "v" "" GIT_VERSION_TAG "${GIT_TAG}") - -string(LENGTH "${GIT_VERSION_TAG}" taglen) -#message("Git tag length : " ${taglen}) -if (taglen GREATER 1) - string(REGEX MATCHALL "-.*$|[0-9]+" GIT_TAG_LIST ${GIT_VERSION_TAG}) - list(LENGTH GIT_TAG_LIST len) - if (len GREATER 0) - list(GET GIT_TAG_LIST 0 GIT_VERSION_MAJ) - endif (len GREATER 0) - if (len GREATER 1) - list(GET GIT_TAG_LIST 1 GIT_VERSION_MIN) - endif (len GREATER 1) - if (len GREATER 2) - list(GET GIT_TAG_LIST 2 GIT_VERSION_SUB) - endif (len GREATER 2) - if (len GREATER 3) - list(GET GIT_TAG_LIST 3 GIT_VERSION_MOD_LONG) - endif (len GREATER 3) - list(LENGTH GIT_VERSION_MOD_LONG len2) - if (len2 GREATER 0) - string(REPLACE "-" ";" GIT_VERSION_MOD_LIST ${GIT_VERSION_MOD_LONG}) - list(GET GIT_VERSION_MOD_LIST 0 GIT_VERSION_MOD) - endif (len2 GREATER 0) -endif (taglen GREATER 1) -else() - message("using default version : 1.0.0") - set(GIT_VERSION_MAJ 1) - set(GIT_VERSION_MIN 0) - set(GIT_VERSION_SUB 0) - set(GIT_VERSION_MOD_LONG 0) -endif() - diff --git a/source/script/max-linker-flags.txt b/source/script/max-linker-flags.txt deleted file mode 100644 index 3f9e3f4d..00000000 --- a/source/script/max-linker-flags.txt +++ /dev/null @@ -1 +0,0 @@ -'-Wl,-U,_addbang' '-Wl,-U,_addfloat' '-Wl,-U,_addftx' '-Wl,-U,_addint' '-Wl,-U,_addinx' '-Wl,-U,_addmess' '-Wl,-U,_advise' '-Wl,-U,_advise_explain' '-Wl,-U,_alias' '-Wl,-U,_AnyKeyDown' '-Wl,-U,_appbuilder_keyword' '-Wl,-U,_appbuilder_register' '-Wl,-U,_argpad' '-Wl,-U,_assist_string' '-Wl,-U,_asyncfile_callback_free' '-Wl,-U,_asyncfile_callback_new' '-Wl,-U,_asyncfile_close' '-Wl,-U,_asyncfile_create' '-Wl,-U,_asyncfile_geteof' '-Wl,-U,_asyncfile_params_default' '-Wl,-U,_asyncfile_params_free' '-Wl,-U,_asyncfile_params_new' '-Wl,-U,_asyncfile_read' '-Wl,-U,_asyncfile_seteof' '-Wl,-U,_asyncfile_write' '-Wl,-U,_atom_alloc' '-Wl,-U,_atom_alloc_array' '-Wl,-U,_atom_arg_getdouble' '-Wl,-U,_atom_arg_getfloat' '-Wl,-U,_atom_arg_getlong' '-Wl,-U,_atom_arg_getsym' '-Wl,-U,_atom_dynamic_end' '-Wl,-U,_atom_dynamic_start' '-Wl,-U,_atom_equal' '-Wl,-U,_atom_getatom_array' '-Wl,-U,_atom_getchar_array' '-Wl,-U,_atom_getcharfix' '-Wl,-U,_atom_getdouble_array' '-Wl,-U,_atom_getfloat' '-Wl,-U,_atom_getfloat_array' '-Wl,-U,_atom_getformat' '-Wl,-U,_atom_getlong' '-Wl,-U,_atom_getlong_array' '-Wl,-U,_atom_getobj' '-Wl,-U,_atom_getobj_array' '-Wl,-U,_atom_getsym' '-Wl,-U,_atom_getsym_array' '-Wl,-U,_atom_gettext' '-Wl,-U,_atom_gettext_precision' '-Wl,-U,_atom_gettype' '-Wl,-U,_atom_setatom_array' '-Wl,-U,_atom_setattrval' '-Wl,-U,_atom_setbinbuf' '-Wl,-U,_atom_setchar_array' '-Wl,-U,_atom_setdouble_array' '-Wl,-U,_atom_setfloat' '-Wl,-U,_atom_setfloat_array' '-Wl,-U,_atom_setformat' '-Wl,-U,_atom_setlong' '-Wl,-U,_atom_setlong_array' '-Wl,-U,_atom_setobj' '-Wl,-U,_atom_setobj_array' '-Wl,-U,_atom_setobjval' '-Wl,-U,_atom_setparse' '-Wl,-U,_atom_setsym' '-Wl,-U,_atom_setsym_array' '-Wl,-U,_atom_string' '-Wl,-U,_atombuf_append' '-Wl,-U,_atombuf_count' '-Wl,-U,_atombuf_eval' '-Wl,-U,_atombuf_firstatom' '-Wl,-U,_atombuf_free' '-Wl,-U,_atombuf_misc' '-Wl,-U,_atombuf_new' '-Wl,-U,_atombuf_next' '-Wl,-U,_atombuf_prepend' '-Wl,-U,_atombuf_replace' '-Wl,-U,_atombuf_replacepoundargs' '-Wl,-U,_atombuf_save' '-Wl,-U,_atombuf_set' '-Wl,-U,_atombuf_subst' '-Wl,-U,_atombuf_text' '-Wl,-U,_atombuf_totext' '-Wl,-U,_atomisatomarray' '-Wl,-U,_atomisdictionary' '-Wl,-U,_atomisstring' '-Wl,-U,_atoms_totext' '-Wl,-U,_attr_addfilter_clip' '-Wl,-U,_attr_addfilter_clip_scale' '-Wl,-U,_attr_addfilterget_clip' '-Wl,-U,_attr_addfilterget_clip_scale' '-Wl,-U,_attr_addfilterget_proc' '-Wl,-U,_attr_addfilterset_clip' '-Wl,-U,_attr_addfilterset_clip_scale' '-Wl,-U,_attr_addfilterset_proc' '-Wl,-U,_attr_args_dictionary' '-Wl,-U,_attr_args_offset' '-Wl,-U,_attr_args_process' '-Wl,-U,_attr_dictionary_process' '-Wl,-U,_attr_dictionary_check' '-Wl,-U,_attr_filter_clip_new' '-Wl,-U,_attr_filter_proc_new' '-Wl,-U,_attr_offset_array_new' '-Wl,-U,_attr_offset_new' '-Wl,-U,_attr_typedfun_set' '-Wl,-U,_attribute_new' '-Wl,-U,_attribute_new_atoms' '-Wl,-U,_attribute_new_attrval' '-Wl,-U,_attribute_new_binbuf' '-Wl,-U,_attribute_new_format' '-Wl,-U,_attribute_new_objval' '-Wl,-U,_attribute_new_parse' '-Wl,-U,_auxtable_checksym' '-Wl,-U,_bangout' '-Wl,-U,_bf_singlefast' '-Wl,-U,_binbuf_addtext' '-Wl,-U,_binbuf_append' '-Wl,-U,_binbuf_delete' '-Wl,-U,_binbuf_eval' '-Wl,-U,_binbuf_getatom' '-Wl,-U,_binbuf_gethandle' '-Wl,-U,_binbuf_insert' '-Wl,-U,_binbuf_inshandle' '-Wl,-U,_binbuf_make' '-Wl,-U,_binbuf_new' '-Wl,-U,_binbuf_read' '-Wl,-U,_binbuf_set' '-Wl,-U,_binbuf_text' '-Wl,-U,_binbuf_totext' '-Wl,-U,_binbuf_vinsert' '-Wl,-U,_binbuf_write' '-Wl,-U,_bitwrap_bell_filter' '-Wl,-U,_bitwrap_box_filter' '-Wl,-U,_bitwrap_bspline_filter' '-Wl,-U,_bitwrap_filter_default' '-Wl,-U,_bitwrap_filter_filter' '-Wl,-U,_bitwrap_interp' '-Wl,-U,_bitwrap_lanczos3_filter' '-Wl,-U,_bitwrap_mitchell_filter' '-Wl,-U,_bitwrap_triangle_filter' '-Wl,-U,_bitwrap_wrap_gworld' '-Wl,-U,_box_getcolor' '-Wl,-U,_boxcolor_rgb2index' '-Wl,-U,_call_method_attrval' '-Wl,-U,_call_method_binbuf' '-Wl,-U,_call_method_char' '-Wl,-U,_call_method_char_array' '-Wl,-U,_call_method_double' '-Wl,-U,_call_method_double_array' '-Wl,-U,_call_method_float' '-Wl,-U,_call_method_float_array' '-Wl,-U,_call_method_format' '-Wl,-U,_call_method_long' '-Wl,-U,_call_method_long_array' '-Wl,-U,_call_method_obj' '-Wl,-U,_call_method_obj_array' '-Wl,-U,_call_method_objval' '-Wl,-U,_call_method_parse' '-Wl,-U,_call_method_sym' '-Wl,-U,_call_method_sym_array' '-Wl,-U,_call_method_typed' '-Wl,-U,_charset_convert' '-Wl,-U,_charset_utf8tounicode' '-Wl,-U,_charset_unicodetoutf8' '-Wl,-U,_charset_isvalidutf8' '-Wl,-U,_charset_utf8_count' '-Wl,-U,_charset_utf8_offset' '-Wl,-U,_class_addadornment' '-Wl,-U,_class_addattr' '-Wl,-U,_class_addattr_atoms' '-Wl,-U,_class_addattr_atoms' '-Wl,-U,_class_addattr_format' '-Wl,-U,_class_addattr_format' '-Wl,-U,_class_addattr_parse' '-Wl,-U,_class_addattr_parse' '-Wl,-U,_class_addcommand' '-Wl,-U,_class_addmethod' '-Wl,-U,_class_addtypedwrapper' '-Wl,-U,_class_addtransform' '-Wl,-U,_class_adornment_get' '-Wl,-U,_class_attr_addattr' '-Wl,-U,_class_attr_addattr_atoms' '-Wl,-U,_class_attr_addattr_atoms' '-Wl,-U,_class_attr_addattr_format' '-Wl,-U,_class_attr_addattr_format' '-Wl,-U,_class_attr_addattr_parse' '-Wl,-U,_class_attr_addattr_parse' '-Wl,-U,_class_attr_attr_get' '-Wl,-U,_class_attr_attr_getvalueof' '-Wl,-U,_class_attr_attr_setvalueof' '-Wl,-U,_class_attr_get' '-Wl,-U,_class_attr_method' '-Wl,-U,_class_buildprototype' '-Wl,-U,_class_clonable' '-Wl,-U,_class_cloneprototype' '-Wl,-U,_class_extra_lookup' '-Wl,-U,_class_extra_store' '-Wl,-U,_class_extra_storeflags' '-Wl,-U,_class_findbyname' '-Wl,-U,_class_findbyname_casefree' '-Wl,-U,_class_getifloaded' '-Wl,-U,_class_getifloaded_casefree' '-Wl,-U,_class_free' '-Wl,-U,_class_getmethod_object' '-Wl,-U,_class_getpath' '-Wl,-U,_class_is_ui' '-Wl,-U,_class_is_box' '-Wl,-U,_class_mess' '-Wl,-U,_class_method' '-Wl,-U,_class_nameget' '-Wl,-U,_class_new' '-Wl,-U,_class_noinlet' '-Wl,-U,_class_obexoffset_get' '-Wl,-U,_class_obexoffset_set' '-Wl,-U,_class_register' '-Wl,-U,_class_alias' '-Wl,-U,_class_copy' '-Wl,-U,_class_dumpout_wrap' '-Wl,-U,_class_setname' '-Wl,-U,_class_namespace_fromsym' '-Wl,-U,_class_namespace_getclassnames' '-Wl,-U,_class_setpath' '-Wl,-U,_class_sticky' '-Wl,-U,_class_sticky_clear' '-Wl,-U,_class_typedwrapper_get' '-Wl,-U,_classname_openhelp' '-Wl,-U,_classname_openrefpage' '-Wl,-U,_classname_openquery' '-Wl,-U,_clock_delay' '-Wl,-U,_clock_fdelay' '-Wl,-U,_clock_fdelay2' '-Wl,-U,_clock_fset' '-Wl,-U,_clock_fset2' '-Wl,-U,_clock_getextfmt' '-Wl,-U,_clock_getftime' '-Wl,-U,_clock_getftime_nocache' '-Wl,-U,_clock_new' '-Wl,-U,_clock_new_withscheduler' '-Wl,-U,_clock_set' '-Wl,-U,_clock_unset' '-Wl,-U,_clock_xdelay' '-Wl,-U,_clock_xset' '-Wl,-U,_clock_xunset' '-Wl,-U,_CmdKeyDown' '-Wl,-U,_compression_compressjson_headless' '-Wl,-U,_compression_decompressjson_headless' '-Wl,-U,_connection_client' '-Wl,-U,_connection_delete' '-Wl,-U,_connection_send' '-Wl,-U,_connection_server' '-Wl,-U,_CopyFromGWorld' '-Wl,-U,_cpost' '-Wl,-U,_critical_enter' '-Wl,-U,_critical_exit' '-Wl,-U,_critical_free' '-Wl,-U,_critical_new' '-Wl,-U,_critical_tryenter' '-Wl,-U,_crosshatch' '-Wl,-U,_CtrlKeyDown' '-Wl,-U,_CurrentOptionKeysDown' '-Wl,-U,_debug_printf' '-Wl,-U,_defer' '-Wl,-U,_defer_front' '-Wl,-U,_defer_low' '-Wl,-U,_defer_medium' '-Wl,-U,_defer_sys_low' '-Wl,-U,_defvolume' '-Wl,-U,_dialog_setkey' '-Wl,-U,_dictionary_appendatom' '-Wl,-U,_dictionary_appendatomarray' '-Wl,-U,_dictionary_appendatoms' '-Wl,-U,_dictionary_appendatoms_flags' '-Wl,-U,_dictionary_appendattribute' '-Wl,-U,_dictionary_appendbinbuf' '-Wl,-U,_dictionary_appenddictionary' '-Wl,-U,_dictionary_appendfloat' '-Wl,-U,_dictionary_appendlong' '-Wl,-U,_dictionary_appendobject' '-Wl,-U,_dictionary_appendobject_flags' '-Wl,-U,_dictionary_appendstring' '-Wl,-U,_dictionary_appendsym' '-Wl,-U,_dictionary_chuckentry' '-Wl,-U,_dictionary_clear' '-Wl,-U,_dictionary_copyatoms' '-Wl,-U,_dictionary_copydefatoms' '-Wl,-U,_dictionary_copyentries' '-Wl,-U,_dictionary_copyunique' '-Wl,-U,_dictionary_deleteentry' '-Wl,-U,_dictionary_dump' '-Wl,-U,_dictionary_entry_getkey' '-Wl,-U,_dictionary_entry_getvalue' '-Wl,-U,_dictionary_entry_getvalues' '-Wl,-U,_dictionary_entryisatomarray' '-Wl,-U,_dictionary_entryisdictionary' '-Wl,-U,_dictionary_entryisstring' '-Wl,-U,_dictionary_freekeys' '-Wl,-U,_dictionary_funall' '-Wl,-U,_dictionary_getatom' '-Wl,-U,_dictionary_getatomarray' '-Wl,-U,_dictionary_getatoms' '-Wl,-U,_dictionary_getatoms_ext' '-Wl,-U,_dictionary_getattribute' '-Wl,-U,_dictionary_getdefatom' '-Wl,-U,_dictionary_getdefatoms' '-Wl,-U,_dictionary_getdeffloat' '-Wl,-U,_dictionary_getdeflong' '-Wl,-U,_dictionary_getdefstring' '-Wl,-U,_dictionary_getdefsym' '-Wl,-U,_dictionary_getdictionary' '-Wl,-U,_dictionary_getentrycount' '-Wl,-U,_dictionary_getfloat' '-Wl,-U,_dictionary_getkeys' '-Wl,-U,_dictionary_getkeys_ordered' '-Wl,-U,_dictionary_getlong' '-Wl,-U,_dictionary_getobject' '-Wl,-U,_dictionary_getstring' '-Wl,-U,_dictionary_getsym' '-Wl,-U,_dictionary_get_ex' '-Wl,-U,_dictionary_hasentry' '-Wl,-U,_dictionary_new' '-Wl,-U,_dictionary_prototypefromclass' '-Wl,-U,_dictionary_read' '-Wl,-U,_dictionary_sprintf' '-Wl,-U,_dictionary_write' '-Wl,-U,_dictobj_register' '-Wl,-U,_dictobj_unregister' '-Wl,-U,_dictobj_findregistered_clone' '-Wl,-U,_dictobj_findregistered_retain' '-Wl,-U,_dictobj_release' '-Wl,-U,_dictobj_namefromptr' '-Wl,-U,_dictobj_outlet_atoms' '-Wl,-U,_dictobj_atom_safety' '-Wl,-U,_dictobj_atom_safety_flags' '-Wl,-U,_dictobj_atom_release' '-Wl,-U,_dictobj_validate' '-Wl,-U,_dictobj_jsonfromstring' '-Wl,-U,_dictobj_dictionaryfromstring' '-Wl,-U,_dictobj_dictionaryfromatoms' '-Wl,-U,_dictobj_dictionaryfromatoms_extended' '-Wl,-U,_dictobj_dictionarytoatoms' '-Wl,-U,_dictobj_key_parse' '-Wl,-U,_dictobj_modify' '-Wl,-U,_dictobj_convertatoms' '-Wl,-U,_dictobj_atomtotype' '-Wl,-U,_dictobj_outlet_atoms_prefix' '-Wl,-U,_disposhandle' '-Wl,-U,_drawstr' '-Wl,-U,_ed_new' '-Wl,-U,_ed_settext' '-Wl,-U,_ed_vis' '-Wl,-U,_egetfn' '-Wl,-U,_error' '-Wl,-U,_error_subscribe' '-Wl,-U,_error_sym' '-Wl,-U,_error_unsubscribe' '-Wl,-U,_errorcount_get' '-Wl,-U,_errorcount_set' '-Wl,-U,_evnum_get' '-Wl,-U,_evnum_incr' '-Wl,-U,_expr_eval' '-Wl,-U,_expr_new' '-Wl,-U,_fileformat_filetype' '-Wl,-U,_fileformat_installsniffer' '-Wl,-U,_fileformat_sniff' '-Wl,-U,_fileformat_sniffdata' '-Wl,-U,_fileformat_stripsuffix' '-Wl,-U,_fileformat_typesuffix' '-Wl,-U,_fileformat_suffixtotype' '-Wl,-U,_fileformat_suffix' '-Wl,-U,_fileformat_divide' '-Wl,-U,_filekind_getfiletypes' '-Wl,-U,_filekind_getname' '-Wl,-U,_filekind_nametoicon' '-Wl,-U,_fileload' '-Wl,-U,_fileload_extended' '-Wl,-U,_fileload_type' '-Wl,-U,_fileusage_addfile' '-Wl,-U,_fileusage_addfilename' '-Wl,-U,_fileusage_addpackage' '-Wl,-U,_fileusage_addpathname' '-Wl,-U,_fileusage_copyfolder' '-Wl,-U,_fileusage_makefolder' '-Wl,-U,_fileusage_addfolder' '-Wl,-U,_filewatcher_new' '-Wl,-U,_filewatcher_start' '-Wl,-U,_filewatcher_stop' '-Wl,-U,_finder_addclass' '-Wl,-U,_floatin' '-Wl,-U,_floatout' '-Wl,-U,_fontinfo_getname' '-Wl,-U,_fontinfo_getnumber' '-Wl,-U,_fontinfo_getsize' '-Wl,-U,_fontmap_getmapping' '-Wl,-U,_force_install' '-Wl,-U,_freebytes' '-Wl,-U,_freeobject' '-Wl,-U,_gensym' '-Wl,-U,_gensym_tr' '-Wl,-U,_getbytes' '-Wl,-U,_getexttime' '-Wl,-U,_getfn' '-Wl,-U,_getfolder' '-Wl,-U,_getschedtime' '-Wl,-U,_gettime' '-Wl,-U,_gettime_forobject' '-Wl,-U,_globalmouse_addlistener' '-Wl,-U,_globalmouse_removelistener' '-Wl,-U,_globalsymbol_reference' '-Wl,-U,_globalsymbol_dereference' '-Wl,-U,_globalsymbol_bind' '-Wl,-U,_globalsymbol_unbind' '-Wl,-U,_globalsymbol_notify' '-Wl,-U,_growhandle' '-Wl,-U,_GWorldFromPict' '-Wl,-U,_handle2tempfile' '-Wl,-U,_hashtab_chuck' '-Wl,-U,_hashtab_chuckkey' '-Wl,-U,_hashtab_clear' '-Wl,-U,_hashtab_delete' '-Wl,-U,_hashtab_findfirst' '-Wl,-U,_hashtab_flags' '-Wl,-U,_hashtab_funall' '-Wl,-U,_hashtab_getflags' '-Wl,-U,_hashtab_getkeyflags' '-Wl,-U,_hashtab_getkeys' '-Wl,-U,_hashtab_getsize' '-Wl,-U,_hashtab_keyflags' '-Wl,-U,_hashtab_lookup' '-Wl,-U,_hashtab_lookupentry' '-Wl,-U,_hashtab_lookupflags' '-Wl,-U,_hashtab_lookuplong' '-Wl,-U,_hashtab_lookupsym' '-Wl,-U,_hashtab_methodall' '-Wl,-U,_hashtab_methodall_imp' '-Wl,-U,_hashtab_new' '-Wl,-U,_hashtab_objfunall' '-Wl,-U,_hashtab_print' '-Wl,-U,_hashtab_readonly' '-Wl,-U,_hashtab_store' '-Wl,-U,_hashtab_store_safe' '-Wl,-U,_hashtab_storeflags' '-Wl,-U,_hashtab_storelong' '-Wl,-U,_hashtab_storesym' '-Wl,-U,_helpstring' '-Wl,-U,_inisr_set' '-Wl,-U,_inlet_append' '-Wl,-U,_inlet_insert_after' '-Wl,-U,_inlet_count' '-Wl,-U,_inlet_new' '-Wl,-U,_inlet_nth' '-Wl,-U,_inlet_to' '-Wl,-U,_inlet4' '-Wl,-U,_inspector_open' '-Wl,-U,_intin' '-Wl,-U,_intload' '-Wl,-U,_intout' '-Wl,-U,_IsKeyDown' '-Wl,-U,_isbpatcher' '-Wl,-U,_isnewex' '-Wl,-U,_ispatcher' '-Wl,-U,_isr' '-Wl,-U,_isr_set' '-Wl,-U,_linklist_append' '-Wl,-U,_linklist_chuck' '-Wl,-U,_linklist_chuckindex' '-Wl,-U,_linklist_chuckptr' '-Wl,-U,_linklist_clear' '-Wl,-U,_linklist_deleteindex' '-Wl,-U,_linklist_findall' '-Wl,-U,_linklist_findfirst' '-Wl,-U,_linklist_flags' '-Wl,-U,_linklist_funall' '-Wl,-U,_linklist_funall_break' '-Wl,-U,_linklist_funindex' '-Wl,-U,_linklist_getflags' '-Wl,-U,_linklist_getindex' '-Wl,-U,_linklist_getsize' '-Wl,-U,_linklist_insert_sorted' '-Wl,-U,_linklist_insertafterobjptr' '-Wl,-U,_linklist_insertbeforeobjptr' '-Wl,-U,_linklist_insertindex' '-Wl,-U,_linklist_last' '-Wl,-U,_linklist_makearray' '-Wl,-U,_linklist_methodall' '-Wl,-U,_linklist_methodall_imp' '-Wl,-U,_linklist_methodindex' '-Wl,-U,_linklist_methodindex_imp' '-Wl,-U,_linklist_moveafterobjptr' '-Wl,-U,_linklist_movebeforeobjptr' '-Wl,-U,_linklist_new' '-Wl,-U,_linklist_next' '-Wl,-U,_linklist_objptr2index' '-Wl,-U,_linklist_prev' '-Wl,-U,_linklist_readonly' '-Wl,-U,_linklist_reverse' '-Wl,-U,_linklist_rotate' '-Wl,-U,_linklist_shuffle' '-Wl,-U,_linklist_sort' '-Wl,-U,_linklist_substitute' '-Wl,-U,_linklist_swap' '-Wl,-U,_linklist_match' '-Wl,-U,_linklist_chuckobject' '-Wl,-U,_linklist_deleteobject' '-Wl,-U,_linklist_prune' '-Wl,-U,_listout' '-Wl,-U,_loadbang_dequeue' '-Wl,-U,_loadbang_queueobject' '-Wl,-U,_loadbang_resume' '-Wl,-U,_loadbang_suspend' '-Wl,-U,_loader_setpath' '-Wl,-U,_locatefile' '-Wl,-U,_locatefile_extended' '-Wl,-U,_locatefilelist' '-Wl,-U,_locatefiletype' '-Wl,-U,_lockout_set' '-Wl,-U,_lowload_jpatcher_frombuffer' '-Wl,-U,_lowload_jpatcher_frombuffer_withobexprototype' '-Wl,-U,_lowload_jpatcher_fromamxd_data' '-Wl,-U,_loader_loadamxd_tohandle' '-Wl,-U,_maxversion' '-Wl,-U,_max_unicodekeydown' '-Wl,-U,_max_unicodekeyup' '-Wl,-U,_maxcache_getpath' '-Wl,-U,_maxcache_checkfile' '-Wl,-U,_maxcache_usefile' '-Wl,-U,_maxdb_search' '-Wl,-U,_maxdb_search_sprintf' '-Wl,-U,_maxdb_tag' '-Wl,-U,_maxdb_filter' '-Wl,-U,_maxdb_getstate' '-Wl,-U,_maxdb_query' '-Wl,-U,_maxdb_query_direct' '-Wl,-U,_mayquote' '-Wl,-U,_method_false' '-Wl,-U,_method_object_free' '-Wl,-U,_method_object_getmesslist' '-Wl,-U,_method_object_getmethod' '-Wl,-U,_method_object_getname' '-Wl,-U,_method_object_new' '-Wl,-U,_method_object_new_messlist' '-Wl,-U,_method_object_setmesslist' '-Wl,-U,_method_object_setmethod' '-Wl,-U,_method_object_setname' '-Wl,-U,_method_true' '-Wl,-U,_mfl_idle' '-Wl,-U,_mfl_init' '-Wl,-U,_path_mfl_getapppath' '-Wl,-U,_movecursor' '-Wl,-U,_namedpipeconnection_isconnected' '-Wl,-U,_nameinpath' '-Wl,-U,_nameload' '-Wl,-U,_nameload_unique' '-Wl,-U,_nameload_unique_internal' '-Wl,-U,_nametab_filename' '-Wl,-U,_nametab_getmatches' '-Wl,-U,_newex_knows' '-Wl,-U,_newhandle' '-Wl,-U,_newinstance' '-Wl,-U,_newobject' '-Wl,-U,_newobject_fromdictionary' '-Wl,-U,_newobject_fromboxtext' '-Wl,-U,_newobject_sprintf' '-Wl,-U,_noloadbangdisable_get' '-Wl,-U,_noloadbangdisable_set' '-Wl,-U,_notify_free' '-Wl,-U,_nullfn' '-Wl,-U,_object_addattr' '-Wl,-U,_object_addattr_atoms' '-Wl,-U,_object_addattr_atoms' '-Wl,-U,_object_addattr_format' '-Wl,-U,_object_addattr_format' '-Wl,-U,_object_addattr_parse' '-Wl,-U,_object_addattr_parse' '-Wl,-U,_object_addmethod' '-Wl,-U,_object_alloc' '-Wl,-U,_object_attach' '-Wl,-U,_object_attach_byptr' '-Wl,-U,_object_attach_byptr_register' '-Wl,-U,_object_attr_addattr' '-Wl,-U,_object_attr_addattr_atoms' '-Wl,-U,_object_attr_addattr_atoms' '-Wl,-U,_object_attr_addattr_format' '-Wl,-U,_object_attr_addattr_format' '-Wl,-U,_object_attr_addattr_parse' '-Wl,-U,_object_attr_addattr_parse' '-Wl,-U,_object_attr_attr_get' '-Wl,-U,_object_attr_attr_getvalueof' '-Wl,-U,_object_attr_attr_setvalueof' '-Wl,-U,_object_attr_enforcelocal' '-Wl,-U,_object_attr_get' '-Wl,-U,_object_attr_getchar' '-Wl,-U,_object_attr_getchar_array' '-Wl,-U,_object_attr_getdisabled' '-Wl,-U,_object_attr_getdouble_array' '-Wl,-U,_object_attr_getdump' '-Wl,-U,_object_attr_getfloat' '-Wl,-U,_object_attr_getfloat_array' '-Wl,-U,_object_attr_getlong' '-Wl,-U,_object_attr_getlong_array' '-Wl,-U,_object_attr_getnames' '-Wl,-U,_object_attr_getobj' '-Wl,-U,_object_attr_getsym' '-Wl,-U,_object_attr_getsym_array' '-Wl,-U,_object_attr_getvalueof' '-Wl,-U,_object_attr_method' '-Wl,-U,_object_attr_setattrval' '-Wl,-U,_object_attr_setbinbuf' '-Wl,-U,_object_attr_setchar' '-Wl,-U,_object_attr_setchar_array' '-Wl,-U,_object_attr_setdisabled' '-Wl,-U,_object_attr_setdouble_array' '-Wl,-U,_object_attr_setfloat' '-Wl,-U,_object_attr_setfloat_array' '-Wl,-U,_object_attr_setformat' '-Wl,-U,_object_attr_setlong' '-Wl,-U,_object_attr_setlong_array' '-Wl,-U,_object_attr_setobj' '-Wl,-U,_object_attr_setobjval' '-Wl,-U,_object_attr_setparse' '-Wl,-U,_object_attr_setsym' '-Wl,-U,_object_attr_setsym_array' '-Wl,-U,_object_attr_setvalueof' '-Wl,-U,_object_attr_usercanget' '-Wl,-U,_object_attr_usercanset' '-Wl,-U,_object_attr_getdirty' '-Wl,-U,_object_attrhash_apply' '-Wl,-U,_object_bug' '-Wl,-U,_object_chuckattr' '-Wl,-U,_object_chuckmethod' '-Wl,-U,_object_class' '-Wl,-U,_object_classname' '-Wl,-U,_object_namespace' '-Wl,-U,_class_namespace' '-Wl,-U,_object_classname_compare' '-Wl,-U,_object_clonable' '-Wl,-U,_object_clone' '-Wl,-U,_object_clone_generic' '-Wl,-U,_object_commandenabled' '-Wl,-U,_object_deleteattr' '-Wl,-U,_object_deletemethod' '-Wl,-U,_object_detach' '-Wl,-U,_object_detach_byptr' '-Wl,-U,_object_dictionary_fromnewargs' '-Wl,-U,_object_dictionaryarg' '-Wl,-U,_object_error' '-Wl,-U,_object_error_obtrusive' '-Wl,-U,_jpatcher_error_obtrusive' '-Wl,-U,_object_findregistered' '-Wl,-U,_object_findregisteredbyptr' '-Wl,-U,_object_free' '-Wl,-U,_object_getcommand' '-Wl,-U,_object_getenabler' '-Wl,-U,_object_getmethod' '-Wl,-U,_object_getmethod_object' '-Wl,-U,_object_getvalueof' '-Wl,-U,_object_getvalueof_ext' '-Wl,-U,_object_handlecommand' '-Wl,-U,_object_inspect' '-Wl,-U,_object_mess' '-Wl,-U,_object_method' '-Wl,-U,_object_method_imp' '-Wl,-U,_object_method_attrval' '-Wl,-U,_object_method_binbuf' '-Wl,-U,_object_method_char' '-Wl,-U,_object_method_char_array' '-Wl,-U,_object_method_double' '-Wl,-U,_object_method_double_array' '-Wl,-U,_object_method_float' '-Wl,-U,_object_method_float_array' '-Wl,-U,_object_method_format' '-Wl,-U,_object_method_long' '-Wl,-U,_object_method_long_array' '-Wl,-U,_object_method_obj' '-Wl,-U,_object_method_obj_array' '-Wl,-U,_object_method_objval' '-Wl,-U,_object_method_parse' '-Wl,-U,_object_method_sym' '-Wl,-U,_object_method_sym_array' '-Wl,-U,_object_method_typed' '-Wl,-U,_object_method_typedfun' '-Wl,-U,_object_new' '-Wl,-U,_object_new_imp' '-Wl,-U,_object_new_attrval' '-Wl,-U,_object_new_binbuf' '-Wl,-U,_object_new_format' '-Wl,-U,_object_new_objval' '-Wl,-U,_object_new_parse' '-Wl,-U,_object_new_typed' '-Wl,-U,_object_notify' '-Wl,-U,_object_obex_dumpout' '-Wl,-U,_object_obex_free' '-Wl,-U,_object_obex_get' '-Wl,-U,_object_obex_lookup' '-Wl,-U,_object_obex_lookuplong' '-Wl,-U,_object_obex_lookupsym' '-Wl,-U,_object_obex_quickref' '-Wl,-U,_object_obex_set' '-Wl,-U,_object_obex_store' '-Wl,-U,_object_obex_storelong' '-Wl,-U,_object_obex_storesym' '-Wl,-U,_object_post' '-Wl,-U,_object_poststring' '-Wl,-U,_object_refpage_get_class_info' '-Wl,-U,_object_refpage_get_class_info_fromclassname' '-Wl,-U,_object_refpage_method_is_undocumented' '-Wl,-U,_object_refpage_method_is_groupreference' '-Wl,-U,_object_register' '-Wl,-U,_object_register_unique' '-Wl,-U,_object_replaceargs' '-Wl,-U,_object_reveal' '-Wl,-U,_object_setvalueof' '-Wl,-U,_object_setvalueof_ext' '-Wl,-U,_object_show' '-Wl,-U,_object_sticky' '-Wl,-U,_object_sticky_clear' '-Wl,-U,_object_subpatcher' '-Wl,-U,_object_unregister' '-Wl,-U,_object_warn' '-Wl,-U,_object_zero' '-Wl,-U,_object_isnogood' '-Wl,-U,_onecopy_fileload' '-Wl,-U,_open_dialog' '-Wl,-U,_open_messageset' '-Wl,-U,_open_promptset' '-Wl,-U,_OptionKeyDown' '-Wl,-U,_ouchstring' '-Wl,-U,_outlet_add' '-Wl,-U,_outlet_addmonitor' '-Wl,-U,_outlet_anything' '-Wl,-U,_outlet_append' '-Wl,-U,_outlet_insert_after' '-Wl,-U,_outlet_atoms' '-Wl,-U,_outlet_bang' '-Wl,-U,_outlet_canadd' '-Wl,-U,_outlet_count' '-Wl,-U,_outlet_float' '-Wl,-U,_outlet_int' '-Wl,-U,_outlet_list' '-Wl,-U,_outlet_msg' '-Wl,-U,_outlet_new' '-Wl,-U,_outlet_notify' '-Wl,-U,_outlet_nth' '-Wl,-U,_outlet_removemonitor' '-Wl,-U,_outlet_rm' '-Wl,-U,_packages_getpackagepath' '-Wl,-U,_packages_createsubpathlist' '-Wl,-U,_packages_getsubpathcontents' '-Wl,-U,_palette_getcolor' '-Wl,-U,_patcher_eachdo' '-Wl,-U,_path_addnamed' '-Wl,-U,_path_addpath' '-Wl,-U,_path_build' '-Wl,-U,_path_closefolder' '-Wl,-U,_path_copyfile' '-Wl,-U,_path_copyfolder' '-Wl,-U,_path_copytotempfile' '-Wl,-U,_path_createfolder' '-Wl,-U,_path_createressysfile' '-Wl,-U,_path_createsysfile' '-Wl,-U,_path_deletefile' '-Wl,-U,_path_tempfolder' '-Wl,-U,_path_desktopfolder' '-Wl,-U,_path_userdocfolder' '-Wl,-U,_path_usermaxfolder' '-Wl,-U,_path_extendedfileinfo' '-Wl,-U,_path_fileinfo' '-Wl,-U,_path_fileisresource' '-Wl,-U,_path_foldernextfile' '-Wl,-U,_path_frompathname' '-Wl,-U,_path_fromunicodepathname' '-Wl,-U,_path_toabsolutesystempath' '-Wl,-U,_path_absolutepath' '-Wl,-U,_path_getapppath' '-Wl,-U,_path_getdefault' '-Wl,-U,_path_getfilecreationdate' '-Wl,-U,_path_getfilemoddate' '-Wl,-U,_path_getmoddate' '-Wl,-U,_path_getname' '-Wl,-U,_path_getnext' '-Wl,-U,_path_getpath' '-Wl,-U,_path_getprefstring' '-Wl,-U,_path_getseparator' '-Wl,-U,_path_getstyle' '-Wl,-U,_path_getsupportpath' '-Wl,-U,_path_infoforopensysfile' '-Wl,-U,_path_nameconform' '-Wl,-U,_path_nameinpath' '-Wl,-U,_path_nameisrelative' '-Wl,-U,_path_openfolder' '-Wl,-U,_path_openresfile' '-Wl,-U,_path_openressysfile' '-Wl,-U,_path_opensysfile' '-Wl,-U,_path_removefromlist' '-Wl,-U,_path_removepath' '-Wl,-U,_path_renamefile' '-Wl,-U,_path_resolvefile' '-Wl,-U,_path_setdefault' '-Wl,-U,_path_setfileinfo' '-Wl,-U,_path_setpermanent' '-Wl,-U,_path_setprefstring' '-Wl,-U,_path_sysnameinpath' '-Wl,-U,_path_collpathnamefrompath' '-Wl,-U,_path_topathname' '-Wl,-U,_path_topotentialname' '-Wl,-U,_path_topotentialunicodename' '-Wl,-U,_path_frompotentialpathname' '-Wl,-U,_path_splitnames' '-Wl,-U,_path_usermaxfolder' '-Wl,-U,_path_addfiles' '-Wl,-U,_path_addfolders' '-Wl,-U,_path_removefiles' '-Wl,-U,_path_exists' '-Wl,-U,_path_inpath' '-Wl,-U,_plug_free' '-Wl,-U,_plug_init' '-Wl,-U,_plug_setloopfun' '-Wl,-U,_popup_free' '-Wl,-U,_popup_new' '-Wl,-U,_popup_show' '-Wl,-U,_post' '-Wl,-U,_post_displayrecent' '-Wl,-U,_post_getpos' '-Wl,-U,_post_sym' '-Wl,-U,_postatom' '-Wl,-U,_postdictionary' '-Wl,-U,_poststring' '-Wl,-U,_preferences_class_define' '-Wl,-U,_preferences_class_defineoption' '-Wl,-U,_preferences_define' '-Wl,-U,_preferences_defineoption' '-Wl,-U,_preferences_getatomforkey' '-Wl,-U,_preferences_getatoms' '-Wl,-U,_preferences_getchar' '-Wl,-U,_preferences_getlong' '-Wl,-U,_preferences_getsym' '-Wl,-U,_preferences_path' '-Wl,-U,_preferences_readdictionary' '-Wl,-U,_preferences_setatoms' '-Wl,-U,_preferences_setchar' '-Wl,-U,_preferences_setlong' '-Wl,-U,_preferences_setsym' '-Wl,-U,_preferences_subpath' '-Wl,-U,_preferences_writedictionary' '-Wl,-U,_preset_int' '-Wl,-U,_preset_set' '-Wl,-U,_preset_store' '-Wl,-U,_proxy_getinlet' '-Wl,-U,_proxy_new' '-Wl,-U,_qelem_free' '-Wl,-U,_qelem_front' '-Wl,-U,_qelem_idlefree' '-Wl,-U,_qelem_idlefront' '-Wl,-U,_qelem_idleset' '-Wl,-U,_qelem_idleunset' '-Wl,-U,_qelem_new' '-Wl,-U,_qelem_set' '-Wl,-U,_qelem_unset' '-Wl,-U,_quotestring' '-Wl,-U,_versioncmp' '-Wl,-U,_versioncanparse' '-Wl,-U,_qti_extra_flags_get' '-Wl,-U,_qti_extra_flags_set' '-Wl,-U,_qti_extra_free' '-Wl,-U,_qti_extra_matrix_get' '-Wl,-U,_qti_extra_matrix_set' '-Wl,-U,_qti_extra_new' '-Wl,-U,_qti_extra_pixelformat_get' '-Wl,-U,_qti_extra_pixelformat_set' '-Wl,-U,_qti_extra_rect_get' '-Wl,-U,_qti_extra_rect_set' '-Wl,-U,_qti_extra_scalemode_get' '-Wl,-U,_qti_extra_scalemode_set' '-Wl,-U,_qti_extra_time_get' '-Wl,-U,_qti_extra_time_set' '-Wl,-U,_qtimage_getrect' '-Wl,-U,_qtimage_open' '-Wl,-U,_quickmap_add' '-Wl,-U,_quickmap_drop' '-Wl,-U,_quickmap_lookup_key1' '-Wl,-U,_quickmap_lookup_key2' '-Wl,-U,_quickmap_readonly' '-Wl,-U,_quickmap_new' '-Wl,-U,_quittask_install' '-Wl,-U,_quittask_remove' '-Wl,-U,_quittask_remove2' '-Wl,-U,_readatom' '-Wl,-U,_readatom_flags' '-Wl,-U,_readtohandle' '-Wl,-U,_recent_add' '-Wl,-U,_recent_getlist' '-Wl,-U,_recent_project_getlist' '-Wl,-U,_reg_object_namespace_lookup' '-Wl,-U,_rerand' '-Wl,-U,_saveas_autoextension' '-Wl,-U,_saveas_dialog' '-Wl,-U,_saveas_messageset' '-Wl,-U,_saveas_promptset' '-Wl,-U,_saveas_setselectedtype' '-Wl,-U,_saveasdialog_extended' '-Wl,-U,_saveasdialog_pathset' '-Wl,-U,_sched_idledequeue' '-Wl,-U,_sched_isinpoll' '-Wl,-U,_sched_isinqueue' '-Wl,-U,_sched_resume' '-Wl,-U,_sched_set_takeover' '-Wl,-U,_sched_setpollthrottle' '-Wl,-U,_sched_setqueuethrottle' '-Wl,-U,_sched_suspend' '-Wl,-U,_schedule' '-Wl,-U,_schedule_defer' '-Wl,-U,_schedule_delay' '-Wl,-U,_schedule_fdefer' '-Wl,-U,_schedule_fdelay' '-Wl,-U,_schedulef' '-Wl,-U,_scheduler_gettime' '-Wl,-U,_scheduler_new' '-Wl,-U,_scheduler_run' '-Wl,-U,_scheduler_get' '-Wl,-U,_scheduler_set' '-Wl,-U,_scheduler_settime' '-Wl,-U,_scheduler_setaudioschedulertime' '-Wl,-U,_scheduler_getaudioschedulertime' '-Wl,-U,_scheduler_fromobject' '-Wl,-U,_scheduler_shift' '-Wl,-U,_serialno' '-Wl,-U,_setclock_delay' '-Wl,-U,_setclock_fdelay' '-Wl,-U,_setclock_fgettime' '-Wl,-U,_setclock_getftime' '-Wl,-U,_setclock_gettime' '-Wl,-U,_setclock_unset' '-Wl,-U,_setup' '-Wl,-U,_ShiftKeyDown' '-Wl,-U,_simpleprefs_dictionary' '-Wl,-U,_sndfile_info' '-Wl,-U,_sndfile_writeheader' '-Wl,-U,_sprintf' '-Wl,-U,_sscanf' '-Wl,-U,_sprintf_tr' '-Wl,-U,_stdinletinfo' '-Wl,-U,_stdlist' '-Wl,-U,_str_tr' '-Wl,-U,_string_getptr' '-Wl,-U,_string_new' '-Wl,-U,_string_reserve' '-Wl,-U,_string_append' '-Wl,-U,_string_chop' '-Wl,-U,_stringload' '-Wl,-U,_strncpy_zero' '-Wl,-U,_snprintf_zero' '-Wl,-U,_strncat_zero' '-Wl,-U,_symbol_tr' '-Wl,-U,_symbol_unique' '-Wl,-U,_symbolarray_sort' '-Wl,-U,_symobject_new' '-Wl,-U,_symobject_linklist_match' '-Wl,-U,_sysdateformat_strftimetodatetime' '-Wl,-U,_sysdateformat_formatdatetime' '-Wl,-U,_sysfile_close' '-Wl,-U,_sysfile_geteof' '-Wl,-U,_sysfile_getpos' '-Wl,-U,_sysfile_openhandle' '-Wl,-U,_sysfile_openptrsize' '-Wl,-U,_sysfile_read' '-Wl,-U,_sysfile_readtextfile' '-Wl,-U,_sysfile_readtohandle' '-Wl,-U,_sysfile_readtoptr' '-Wl,-U,_sysfile_seteof' '-Wl,-U,_sysfile_setobject' '-Wl,-U,_sysfile_setpos' '-Wl,-U,_sysfile_spoolcopy' '-Wl,-U,_sysfile_write' '-Wl,-U,_sysfile_writetextfile' '-Wl,-U,_sysmem_copyptr' '-Wl,-U,_sysmem_freehandle' '-Wl,-U,_sysmem_freeptr' '-Wl,-U,_sysmem_handlesize' '-Wl,-U,_sysmem_lockhandle' '-Wl,-U,_sysmem_newhandle' '-Wl,-U,_sysmem_newhandleclear' '-Wl,-U,_sysmem_newptr' '-Wl,-U,_sysmem_newptrclear' '-Wl,-U,_sysmem_nullterminatehandle' '-Wl,-U,_sysmem_ptrandhand' '-Wl,-U,_sysmem_ptrbeforehand' '-Wl,-U,_sysmem_ptrsize' '-Wl,-U,_sysmem_resizehandle' '-Wl,-U,_sysmem_resizeptr' '-Wl,-U,_sysmem_resizeptrclear' '-Wl,-U,_sysmenu_appenditem' '-Wl,-U,_sysmenu_appendrawitem' '-Wl,-U,_sysmenu_appendseparator' '-Wl,-U,_sysmenu_assignsubmenu' '-Wl,-U,_sysmenu_checkitem' '-Wl,-U,_sysmenu_cmdid_popup' '-Wl,-U,_sysmenu_cmdid_set' '-Wl,-U,_sysmenu_copyitems' '-Wl,-U,_sysmenu_deleteallitems' '-Wl,-U,_sysmenu_deleteitem' '-Wl,-U,_sysmenu_dispose' '-Wl,-U,_sysmenu_getcheck' '-Wl,-U,_sysmenu_gethelp' '-Wl,-U,_sysmenu_getid' '-Wl,-U,_sysmenu_gettext' '-Wl,-U,_sysmenu_gettitle' '-Wl,-U,_sysmenu_insert' '-Wl,-U,_sysmenu_insertsubmenu' '-Wl,-U,_sysmenu_itemcount' '-Wl,-U,_sysmenu_new' '-Wl,-U,_sysmenu_setitem' '-Wl,-U,_sysmenu_setreference' '-Wl,-U,_sysmenu_setshortcut' '-Wl,-U,_sysmenu_settext' '-Wl,-U,_sysmidi_createport' '-Wl,-U,_sysmidi_deletemarked' '-Wl,-U,_sysmidi_enqbigpacket' '-Wl,-U,_sysmidi_getinstance' '-Wl,-U,_sysmidi_idtoport' '-Wl,-U,_sysmidi_indextoname' '-Wl,-U,_sysmidi_iterate' '-Wl,-U,_sysmidi_numinports' '-Wl,-U,_sysmidi_numoutports' '-Wl,-U,_sysmidi_uniqueid' '-Wl,-U,_sysmidi_data1toport' '-Wl,-U,_sysmidi_nametoport' '-Wl,-U,_sysparallel_processorcount' '-Wl,-U,_sysparallel_physical_processorcount' '-Wl,-U,_sysparallel_task_benchprint' '-Wl,-U,_sysparallel_task_cancel' '-Wl,-U,_sysparallel_task_data' '-Wl,-U,_sysparallel_task_execute' '-Wl,-U,_sysparallel_task_free' '-Wl,-U,_sysparallel_task_new' '-Wl,-U,_sysparallel_task_workerproc' '-Wl,-U,_sysparallel_worker_execute' '-Wl,-U,_sysparallel_worker_free' '-Wl,-U,_sysparallel_worker_new' '-Wl,-U,_systhread_cond_broadcast' '-Wl,-U,_systhread_cond_free' '-Wl,-U,_systhread_cond_new' '-Wl,-U,_systhread_cond_signal' '-Wl,-U,_systhread_cond_wait' '-Wl,-U,_systhread_create' '-Wl,-U,_systhread_exit' '-Wl,-U,_systhread_getspecific' '-Wl,-U,_systhread_ismainthread' '-Wl,-U,_systhread_istimerthread' '-Wl,-U,_systhread_isaudiothread' '-Wl,-U,_systhread_set_name' '-Wl,-U,_systhread_markasaudiothread_begin' '-Wl,-U,_systhread_markasaudiothread_end' '-Wl,-U,_systhread_join' '-Wl,-U,_systhread_detach' '-Wl,-U,_systhread_mutex_free' '-Wl,-U,_systhread_mutex_lock' '-Wl,-U,_systhread_mutex_new' '-Wl,-U,_systhread_mutex_newlock' '-Wl,-U,_systhread_mutex_trylock' '-Wl,-U,_systhread_mutex_unlock' '-Wl,-U,_systhread_rwlock_new' '-Wl,-U,_systhread_rwlock_free' '-Wl,-U,_systhread_rwlock_rdlock' '-Wl,-U,_systhread_rwlock_tryrdlock' '-Wl,-U,_systhread_rwlock_rdunlock' '-Wl,-U,_systhread_rwlock_wrlock' '-Wl,-U,_systhread_rwlock_trywrlock' '-Wl,-U,_systhread_rwlock_wrunlock' '-Wl,-U,_systhread_rwlock_setspintime' '-Wl,-U,_systhread_rwlock_getspintime' '-Wl,-U,_systhread_key_create' '-Wl,-U,_systhread_key_delete' '-Wl,-U,_systhread_self' '-Wl,-U,_systhread_equal' '-Wl,-U,_systhread_setpriority' '-Wl,-U,_systhread_getpriority' '-Wl,-U,_systhread_setspecific' '-Wl,-U,_systhread_eliminatedenormals' '-Wl,-U,_systhread_sleep' '-Wl,-U,_systhread_terminate' '-Wl,-U,_systime_datetime' '-Wl,-U,_systime_datetoseconds' '-Wl,-U,_systime_datetime_milliseconds' '-Wl,-U,_systime_ms' '-Wl,-U,_systime_seconds' '-Wl,-U,_systime_secondstodate' '-Wl,-U,_systime_ticks' '-Wl,-U,_systimer_gettime' '-Wl,-U,_tabfromhandle' '-Wl,-U,_table_dirty' '-Wl,-U,_table_get' '-Wl,-U,_textpreferences_add' '-Wl,-U,_textpreferences_addoption' '-Wl,-U,_textpreferences_addraw' '-Wl,-U,_textpreferences_addrect' '-Wl,-U,_textpreferences_close' '-Wl,-U,_textpreferences_default' '-Wl,-U,_textpreferences_open' '-Wl,-U,_textpreferences_read' '-Wl,-U,_time_stop' '-Wl,-U,_time_tick' '-Wl,-U,_time_getms' '-Wl,-U,_time_getticks' '-Wl,-U,_time_listen' '-Wl,-U,_time_getphase' '-Wl,-U,_time_setvalue' '-Wl,-U,_class_time_addattr' '-Wl,-U,_time_new' '-Wl,-U,_time_new_custom' '-Wl,-U,_time_getnamed' '-Wl,-U,_time_enable_attributes' '-Wl,-U,_time_isfixedunit' '-Wl,-U,_time_schedule' '-Wl,-U,_time_schedule_limit' '-Wl,-U,_time_now' '-Wl,-U,_time_getitm' '-Wl,-U,_time_calcquantize' '-Wl,-U,_time_setclock' '-Wl,-U,_toolfile_fread' '-Wl,-U,_toolfile_fwrite' '-Wl,-U,_toolfile_getc' '-Wl,-U,_toolfile_new' '-Wl,-U,_translation_getinterfacepath' '-Wl,-U,_typedmess' '-Wl,-U,_typelist_make' '-Wl,-U,_typelist_make' '-Wl,-U,_utils_setcontext' '-Wl,-U,_utils_usecontext' '-Wl,-U,_utils_getcontextnumber' '-Wl,-U,_utils_contextinuse' '-Wl,-U,_wind_advise' '-Wl,-U,_wind_advise_explain' '-Wl,-U,_wind_nocancel' '-Wl,-U,_wind_setcursor' '-Wl,-U,_xmltree_attr_symcompare' '-Wl,-U,_xmltree_attribute_free' '-Wl,-U,_xmltree_attribute_new' '-Wl,-U,_xmltree_cdata_free' '-Wl,-U,_xmltree_cdata_new' '-Wl,-U,_xmltree_cdata_splittext' '-Wl,-U,_xmltree_charnode_addinterface' '-Wl,-U,_xmltree_charnode_appenddata' '-Wl,-U,_xmltree_charnode_deletedata' '-Wl,-U,_xmltree_charnode_free' '-Wl,-U,_xmltree_charnode_insertdata' '-Wl,-U,_xmltree_charnode_new' '-Wl,-U,_xmltree_charnode_replacedata' '-Wl,-U,_xmltree_charnode_substringdata' '-Wl,-U,_xmltree_comment_free' '-Wl,-U,_xmltree_comment_new' '-Wl,-U,_xmltree_document_createattribute' '-Wl,-U,_xmltree_document_createcdatasection' '-Wl,-U,_xmltree_document_createcomment' '-Wl,-U,_xmltree_document_createelement' '-Wl,-U,_xmltree_document_createheader' '-Wl,-U,_xmltree_document_createtextnode' '-Wl,-U,_xmltree_document_filename' '-Wl,-U,_xmltree_document_free' '-Wl,-U,_xmltree_document_getelementsbytagname' '-Wl,-U,_xmltree_document_new' '-Wl,-U,_xmltree_document_print' '-Wl,-U,_xmltree_document_read' '-Wl,-U,_xmltree_document_write' '-Wl,-U,_xmltree_document_xmlparse_cdata_end' '-Wl,-U,_xmltree_document_xmlparse_cdata_start' '-Wl,-U,_xmltree_document_xmlparse_characterdata' '-Wl,-U,_xmltree_document_xmlparse_comment' '-Wl,-U,_xmltree_document_xmlparse_default' '-Wl,-U,_xmltree_document_xmlparse_doctype_end' '-Wl,-U,_xmltree_document_xmlparse_doctype_start' '-Wl,-U,_xmltree_document_xmlparse_element_end' '-Wl,-U,_xmltree_document_xmlparse_element_start' '-Wl,-U,_xmltree_element_free' '-Wl,-U,_xmltree_element_getattribute' '-Wl,-U,_xmltree_element_getattribute_float' '-Wl,-U,_xmltree_element_getattribute_float_array' '-Wl,-U,_xmltree_element_getattribute_long' '-Wl,-U,_xmltree_element_getattribute_long_array' '-Wl,-U,_xmltree_element_getattribute_sym' '-Wl,-U,_xmltree_element_getattribute_sym_array' '-Wl,-U,_xmltree_element_getattributenode' '-Wl,-U,_xmltree_element_getelementsbytagname' '-Wl,-U,_xmltree_element_new' '-Wl,-U,_xmltree_element_removeattribute' '-Wl,-U,_xmltree_element_removeattributenode' '-Wl,-U,_xmltree_element_setattribute' '-Wl,-U,_xmltree_element_setattribute_float' '-Wl,-U,_xmltree_element_setattribute_float_array' '-Wl,-U,_xmltree_element_setattribute_long' '-Wl,-U,_xmltree_element_setattribute_long_array' '-Wl,-U,_xmltree_element_setattribute_sym' '-Wl,-U,_xmltree_element_setattribute_sym_array' '-Wl,-U,_xmltree_element_setattributenode' '-Wl,-U,_xmltree_element_symcompare' '-Wl,-U,_xmltree_init' '-Wl,-U,_xmltree_node_addinterface' '-Wl,-U,_xmltree_node_appendchild' '-Wl,-U,_xmltree_node_clonenode' '-Wl,-U,_xmltree_node_free' '-Wl,-U,_xmltree_node_getnodevalasstring' '-Wl,-U,_xmltree_node_getnodevalue' '-Wl,-U,_xmltree_node_getnodevalue_float' '-Wl,-U,_xmltree_node_getnodevalue_float_array' '-Wl,-U,_xmltree_node_getnodevalue_long' '-Wl,-U,_xmltree_node_getnodevalue_long_array' '-Wl,-U,_xmltree_node_getnodevalue_sym' '-Wl,-U,_xmltree_node_getnodevalue_sym_array' '-Wl,-U,_xmltree_node_haschildnodes' '-Wl,-U,_xmltree_node_insertbefore' '-Wl,-U,_xmltree_node_new' '-Wl,-U,_xmltree_node_nodevalue' '-Wl,-U,_xmltree_node_nodevalue_float' '-Wl,-U,_xmltree_node_nodevalue_float_array' '-Wl,-U,_xmltree_node_nodevalue_long' '-Wl,-U,_xmltree_node_nodevalue_long_array' '-Wl,-U,_xmltree_node_nodevalue_sym' '-Wl,-U,_xmltree_node_nodevalue_sym_array' '-Wl,-U,_xmltree_node_removeallchildren' '-Wl,-U,_xmltree_node_removechild' '-Wl,-U,_xmltree_node_replacechild' '-Wl,-U,_xmltree_node_setnodevalasstring' '-Wl,-U,_xmltree_node_write' '-Wl,-U,_xmltree_text_free' '-Wl,-U,_xmltree_text_new' '-Wl,-U,_xmltree_text_splittext' '-Wl,-U,_xpcoll_dereference' '-Wl,-U,_xpcoll_load' '-Wl,-U,_xpcoll_open' '-Wl,-U,_xpcoll_opensysfile' '-Wl,-U,_xpcoll_reference' '-Wl,-U,_xpcoll_setclientcallback' '-Wl,-U,_xpcoll_getvol' '-Wl,-U,_xpcoll_openfile' '-Wl,-U,_xpcoll_fromnameddata' '-Wl,-U,_xpcoll_unfreezedevice' '-Wl,-U,_xsetpost' '-Wl,-U,_zgetfn' '-Wl,-U,_jbox_initclass' '-Wl,-U,_jbox_new' '-Wl,-U,_jbox_free' '-Wl,-U,_jbox_ready' '-Wl,-U,_jbox_redraw' '-Wl,-U,_jbox_redrawcontents' '-Wl,-U,_jbox_getoutlet' '-Wl,-U,_jbox_getinlet' '-Wl,-U,_jbox_updatetextfield' '-Wl,-U,_jbox_updatetextfield_safe' '-Wl,-U,_jbox_updatetextfield_lockmutex' '-Wl,-U,_jbox_grabfocus' '-Wl,-U,_jbox_show_caption' '-Wl,-U,_jbox_hide_caption' '-Wl,-U,_jbox_invalidate_layer' '-Wl,-U,_jbox_remove_layer' '-Wl,-U,_jbox_start_layer' '-Wl,-U,_jbox_end_layer' '-Wl,-U,_jbox_paint_layer' '-Wl,-U,_jbox_get_boxpath' '-Wl,-U,_jbox_validaterects' '-Wl,-U,_jbox_processlegacydefaults' '-Wl,-U,_jbox_isdefaultattribute' '-Wl,-U,_jpatcher_deleteobj' '-Wl,-U,_jpatcher_is_patcher' '-Wl,-U,_jpatcher_get_box' '-Wl,-U,_jpatcher_get_count' '-Wl,-U,_jpatcher_get_firstobject' '-Wl,-U,_jpatcher_get_lastobject' '-Wl,-U,_jpatcher_get_firstline' '-Wl,-U,_jpatcher_get_firstview' '-Wl,-U,_jpatcher_set_locked' '-Wl,-U,_jpatcher_get_title' '-Wl,-U,_jpatcher_set_title' '-Wl,-U,_jpatcher_get_name' '-Wl,-U,_jpatcher_get_filename' '-Wl,-U,_jpatcher_get_filepath' '-Wl,-U,_jpatcher_get_dirty' '-Wl,-U,_jpatcher_set_dirty' '-Wl,-U,_jpatcher_get_bgcolor' '-Wl,-U,_jpatcher_set_bgcolor' '-Wl,-U,_jpatcher_get_gridsize' '-Wl,-U,_jpatcher_set_gridsize' '-Wl,-U,_jpatcher_get_parentpatcher' '-Wl,-U,_jpatcher_get_toppatcher' '-Wl,-U,_jpatcher_get_hubholder' '-Wl,-U,_jpatcher_get_maxclass' '-Wl,-U,_jpatcher_get_parentclass' '-Wl,-U,_jpatcher_get_rect' '-Wl,-U,_jpatcher_set_rect' '-Wl,-U,_jpatcher_get_noedit' '-Wl,-U,_jpatcher_uniqueboxname' '-Wl,-U,_jpatcher_getboxfont' '-Wl,-U,_jpatcher_get_controller' '-Wl,-U,_jpatcher_addboxlistener' '-Wl,-U,_jpatcher_removeboxlistener' '-Wl,-U,_jpatcher_get_fileversion' '-Wl,-U,_jpatcher_get_currentfileversion' '-Wl,-U,_jpatcher_get_bglocked' '-Wl,-U,_jpatcher_get_presentation' '-Wl,-U,_jpatcher_inc_maxsendcontext' '-Wl,-U,_jpatcher_dictionary_modernui' '-Wl,-U,_jpatcher_dictionary_version' '-Wl,-U,_jpatcher_sortdictionary' '-Wl,-U,_jpatcher_getboxfromid' '-Wl,-U,_jpatcher_endlognewobjects' '-Wl,-U,_jpatcher_swapboxlist' '-Wl,-U,_jpatcher_swaplinelist' '-Wl,-U,_systemfontname' '-Wl,-U,_systemfontsym' '-Wl,-U,_jpatchercontroller_createobject' '-Wl,-U,_jpatchercontroller_setpatcherview' '-Wl,-U,_jpatchercontroller_pastefileintoobject' '-Wl,-U,_jpatchercontroller_pastefileat' '-Wl,-U,_jpatchercontroller_connectobjects' '-Wl,-U,_jpatchercontroller_begintransaction' '-Wl,-U,_jpatchercontroller_endtransaction' '-Wl,-U,_jpatchercontroller_setattr' '-Wl,-U,_jpatchercontroller_dictionary_setattr' '-Wl,-U,_object_attr_get_rect' '-Wl,-U,_object_attr_set_rect' '-Wl,-U,_object_attr_getcolor' '-Wl,-U,_object_attr_setcolor' '-Wl,-U,_object_attr_getpt' '-Wl,-U,_object_attr_setpt' '-Wl,-U,_object_attr_getsize' '-Wl,-U,_object_attr_setsize' '-Wl,-U,_jbox_get_maxclass' '-Wl,-U,_jbox_get_patcher' '-Wl,-U,_jbox_get_object' '-Wl,-U,_jbox_get_rect_for_view' '-Wl,-U,_jbox_set_rect_for_view' '-Wl,-U,_jbox_get_rect_for_sym' '-Wl,-U,_jbox_set_rect_for_sym' '-Wl,-U,_jbox_set_rect' '-Wl,-U,_jbox_get_patching_rect' '-Wl,-U,_jbox_set_patching_rect' '-Wl,-U,_jbox_get_presentation_rect' '-Wl,-U,_jbox_set_presentation_rect' '-Wl,-U,_jbox_set_position' '-Wl,-U,_jbox_get_patching_position' '-Wl,-U,_jbox_set_patching_position' '-Wl,-U,_jbox_get_presentation_position' '-Wl,-U,_jbox_set_presentation_position' '-Wl,-U,_jbox_set_size' '-Wl,-U,_jbox_get_patching_size' '-Wl,-U,_jbox_set_patching_size' '-Wl,-U,_jbox_get_presentation_size' '-Wl,-U,_jbox_set_presentation_size' '-Wl,-U,_jbox_get_hidden' '-Wl,-U,_jbox_set_hidden' '-Wl,-U,_jbox_get_fontname' '-Wl,-U,_jbox_set_fontname' '-Wl,-U,_jbox_get_fontsize' '-Wl,-U,_jbox_createfont' '-Wl,-U,_jbox_set_fontsize' '-Wl,-U,_jbox_fontface_to_weight_slant' '-Wl,-U,_jbox_get_font_slant' '-Wl,-U,_jbox_get_font_weight' '-Wl,-U,_jbox_get_color' '-Wl,-U,_jbox_set_color' '-Wl,-U,_jbox_get_nextobject' '-Wl,-U,_jbox_get_prevobject' '-Wl,-U,_jbox_get_varname' '-Wl,-U,_jbox_set_varname' '-Wl,-U,_jbox_get_id' '-Wl,-U,_jbox_get_canhilite' '-Wl,-U,_jbox_get_background' '-Wl,-U,_jbox_set_background' '-Wl,-U,_jbox_get_ignoreclick' '-Wl,-U,_jbox_set_ignoreclick' '-Wl,-U,_jbox_get_drawfirstin' '-Wl,-U,_jbox_get_outline' '-Wl,-U,_jbox_set_outline' '-Wl,-U,_jbox_get_growy' '-Wl,-U,_jbox_get_growboth' '-Wl,-U,_jbox_get_nogrow' '-Wl,-U,_jbox_get_drawinlast' '-Wl,-U,_jbox_get_mousedragdelta' '-Wl,-U,_jbox_set_mousedragdelta' '-Wl,-U,_jbox_get_textfield' '-Wl,-U,_jbox_set_hinttrack' '-Wl,-U,_jbox_get_hinttrack' '-Wl,-U,_jbox_set_hintstring' '-Wl,-U,_jpatchline_get_startpoint' '-Wl,-U,_jpatchline_get_endpoint' '-Wl,-U,_jpatchline_get_nummidpoints' '-Wl,-U,_jpatchline_get_pending' '-Wl,-U,_jpatchline_get_box1' '-Wl,-U,_jpatchline_get_outletnum' '-Wl,-U,_jpatchline_get_box2' '-Wl,-U,_jpatchline_get_inletnum' '-Wl,-U,_jpatchline_get_straightthresh' '-Wl,-U,_jpatchline_set_straightthresh' '-Wl,-U,_jpatchline_get_straightstart' '-Wl,-U,_jpatchline_get_straightend' '-Wl,-U,_jpatchline_set_straightstart' '-Wl,-U,_jpatchline_set_straightend' '-Wl,-U,_jpatchline_get_nextline' '-Wl,-U,_jpatchline_get_hidden' '-Wl,-U,_jpatchline_set_hidden' '-Wl,-U,_jpatchline_get_color' '-Wl,-U,_jpatchline_set_color' '-Wl,-U,_jpatchline_addpaintmethod' '-Wl,-U,_patcherview_get_visible' '-Wl,-U,_patcherview_set_visible' '-Wl,-U,_patcherview_get_locked' '-Wl,-U,_patcherview_set_locked' '-Wl,-U,_patcherview_get_zoomfactor' '-Wl,-U,_patcherview_set_zoomfactor' '-Wl,-U,_patcherview_get_nextview' '-Wl,-U,_patcherview_get_topview' '-Wl,-U,_patcherview_get_jgraphics' '-Wl,-U,_patcherview_set_jgraphics' '-Wl,-U,_patcherview_get_patcher' '-Wl,-U,_patcherview_get_rect' '-Wl,-U,_patcherview_set_rect' '-Wl,-U,_patcherview_canvas_to_screen' '-Wl,-U,_patcherview_screen_to_canvas' '-Wl,-U,_patcherview_get_presentation' '-Wl,-U,_textfield_get_owner' '-Wl,-U,_textfield_get_textcolor' '-Wl,-U,_textfield_set_textcolor' '-Wl,-U,_textfield_get_bgcolor' '-Wl,-U,_textfield_set_bgcolor' '-Wl,-U,_textfield_get_textmargins' '-Wl,-U,_textfield_set_textmargins' '-Wl,-U,_textfield_get_editonclick' '-Wl,-U,_textfield_set_editonclick' '-Wl,-U,_textfield_get_selectallonedit' '-Wl,-U,_textfield_set_selectallonedit' '-Wl,-U,_textfield_get_noactivate' '-Wl,-U,_textfield_set_noactivate' '-Wl,-U,_textfield_get_readonly' '-Wl,-U,_textfield_set_readonly' '-Wl,-U,_textfield_get_wordwrap' '-Wl,-U,_textfield_set_wordwrap' '-Wl,-U,_textfield_get_useellipsis' '-Wl,-U,_textfield_set_useellipsis' '-Wl,-U,_textfield_get_autoscroll' '-Wl,-U,_textfield_set_autoscroll' '-Wl,-U,_textfield_get_wantsreturn' '-Wl,-U,_textfield_set_wantsreturn' '-Wl,-U,_textfield_get_wantstab' '-Wl,-U,_textfield_set_wantstab' '-Wl,-U,_textfield_get_autofixwidth' '-Wl,-U,_textfield_set_autofixwidth' '-Wl,-U,_textfield_set_emptytext' '-Wl,-U,_textfield_get_emptytext' '-Wl,-U,_textfield_set_underline' '-Wl,-U,_textfield_get_underline' '-Wl,-U,_textfield_set_justification' '-Wl,-U,_textfield_get_justification' '-Wl,-U,_jdrag_getitemstring' '-Wl,-U,_jdrag_getobject' '-Wl,-U,_jdrag_getlocation' '-Wl,-U,_jdrag_createobject' '-Wl,-U,_jdrag_createnewobj' '-Wl,-U,_jdrag_createmessage' '-Wl,-U,_jdrag_add' '-Wl,-U,_jdrag_process_drop' '-Wl,-U,_jdrag_matchdragrole' '-Wl,-U,_jdrag_setboxlocation' '-Wl,-U,_jdrag_box_add' '-Wl,-U,_jdrag_object_add' '-Wl,-U,_jdrag_itemcount' '-Wl,-U,_jgraphics_getfiletypes' '-Wl,-U,_jgraphics_round' '-Wl,-U,_jgraphics_image_surface_clear' '-Wl,-U,_jgraphics_image_surface_create' '-Wl,-U,_jgraphics_image_surface_create_referenced' '-Wl,-U,_jgraphics_image_surface_create_from_file' '-Wl,-U,_jgraphics_image_surface_create_for_data' '-Wl,-U,_jgraphics_image_surface_create_from_filedata' '-Wl,-U,_jgraphics_image_surface_create_from_resource' '-Wl,-U,_jgraphics_image_surface_writepng' '-Wl,-U,_jgraphics_image_surface_writejpeg' '-Wl,-U,_jgraphics_surface_reference' '-Wl,-U,_jgraphics_surface_destroy' '-Wl,-U,_jgraphics_surface_set_device_offset' '-Wl,-U,_jgraphics_surface_get_device_offset' '-Wl,-U,_jgraphics_image_surface_get_width' '-Wl,-U,_jgraphics_image_surface_get_height' '-Wl,-U,_jgraphics_image_surface_set_pixel' '-Wl,-U,_jgraphics_image_surface_get_pixel' '-Wl,-U,_jgraphics_image_surface_scroll' '-Wl,-U,_jgraphics_image_surface_lockpixels_readonly' '-Wl,-U,_jgraphics_image_surface_unlockpixels_readonly' '-Wl,-U,_jgraphics_image_surface_lockpixels' '-Wl,-U,_jgraphics_image_surface_unlockpixels' '-Wl,-U,_jgraphics_image_surface_draw' '-Wl,-U,_jgraphics_image_surface_draw_fast' '-Wl,-U,_jgraphics_getfontscale' '-Wl,-U,_jgraphics_get_resource_data' '-Wl,-U,_jsvg_create_from_file' '-Wl,-U,_jsvg_create_from_resource' '-Wl,-U,_jsvg_create_from_xmlstring' '-Wl,-U,_jsvg_get_size' '-Wl,-U,_jsvg_destroy' '-Wl,-U,_jsvg_render' '-Wl,-U,_jgraphics_create' '-Wl,-U,_jgraphics_reference' '-Wl,-U,_jgraphics_destroy' '-Wl,-U,_jgraphics_new_path' '-Wl,-U,_jgraphics_copy_path' '-Wl,-U,_jgraphics_path_destroy' '-Wl,-U,_jgraphics_append_path' '-Wl,-U,_jgraphics_close_path' '-Wl,-U,_jgraphics_path_roundcorners' '-Wl,-U,_jgraphics_get_current_point' '-Wl,-U,_jgraphics_diagonal_line_fill' '-Wl,-U,_jgraphics_arc' '-Wl,-U,_jgraphics_arc_negative' '-Wl,-U,_jgraphics_piesegment' '-Wl,-U,_jgraphics_curve_to' '-Wl,-U,_jgraphics_rel_curve_to' '-Wl,-U,_jgraphics_line_to' '-Wl,-U,_jgraphics_rel_line_to' '-Wl,-U,_jgraphics_move_to' '-Wl,-U,_jgraphics_rel_move_to' '-Wl,-U,_jgraphics_rectangle' '-Wl,-U,_jgraphics_rectangle_rounded' '-Wl,-U,_jgraphics_ellipse' '-Wl,-U,_jgraphics_oval' '-Wl,-U,_jgraphics_ovalarc' '-Wl,-U,_jgraphics_in_fill' '-Wl,-U,_jgraphics_line_intersects_rect' '-Wl,-U,_jgraphics_path_intersects_line' '-Wl,-U,_jgraphics_path_getpathelems' '-Wl,-U,_jgraphics_rectintersectsrect' '-Wl,-U,_jgraphics_rectcontainsrect' '-Wl,-U,_jgraphics_ptinrect' '-Wl,-U,_jgraphics_ptinroundedrect' '-Wl,-U,_jgraphics_fill_extents' '-Wl,-U,_jgraphics_select_font_face' '-Wl,-U,_jgraphics_select_jfont' '-Wl,-U,_jgraphics_set_font_size' '-Wl,-U,_jgraphics_set_underline' '-Wl,-U,_jgraphics_show_text' '-Wl,-U,_jgraphics_font_extents' '-Wl,-U,_jgraphics_text_measure' '-Wl,-U,_jgraphics_text_measuretext_wrapped' '-Wl,-U,_jgraphics_text_path' '-Wl,-U,_jgraphics_jrgba_contrasting' '-Wl,-U,_jgraphics_jrgba_contrastwith' '-Wl,-U,_jgraphics_jrgba_darker' '-Wl,-U,_jgraphics_jrgba_brighter' '-Wl,-U,_jgraphics_jrgba_overlay' '-Wl,-U,_jgraphics_jrgba_interpolate' '-Wl,-U,_jgraphics_jrgba_gethsb' '-Wl,-U,_jgraphics_jrgba_fromhsb' '-Wl,-U,_jgraphics_clip' '-Wl,-U,_jfont_create_from_maxfont' '-Wl,-U,_jfont_create' '-Wl,-U,_jfont_reference' '-Wl,-U,_jfont_destroy' '-Wl,-U,_jfont_ellipsifytext' '-Wl,-U,_jfont_isequalto' '-Wl,-U,_jfont_set_family' '-Wl,-U,_jfont_get_family' '-Wl,-U,_jfont_set_slant' '-Wl,-U,_jfont_get_slant' '-Wl,-U,_jfont_set_weight' '-Wl,-U,_jfont_get_weight' '-Wl,-U,_jfont_set_font_size' '-Wl,-U,_jfont_get_font_size' '-Wl,-U,_jfont_set_underline' '-Wl,-U,_jfont_get_underline' '-Wl,-U,_jfont_get_heighttocharheightratio' '-Wl,-U,_jfont_extents' '-Wl,-U,_jfont_text_measure' '-Wl,-U,_jfont_text_measuretext_wrapped' '-Wl,-U,_jfont_getfontlist' '-Wl,-U,_jfont_get_em_dimensions' '-Wl,-U,_jgraphics_system_canantialiastexttotransparentbg' '-Wl,-U,_jtextlayout_create' '-Wl,-U,_jtextlayout_withbgcolor' '-Wl,-U,_jtextlayout_destroy' '-Wl,-U,_jtextlayout_set' '-Wl,-U,_jtextlayout_settext' '-Wl,-U,_jtextlayout_settextcolor' '-Wl,-U,_jtextlayout_measuretext' '-Wl,-U,_jtextlayout_draw' '-Wl,-U,_jtextlayout_getnumchars' '-Wl,-U,_jtextlayout_getcharbox' '-Wl,-U,_jtextlayout_getchar' '-Wl,-U,_jtextlayout_createpath' '-Wl,-U,_jgraphics_matrix_init' '-Wl,-U,_jgraphics_matrix_init_identity' '-Wl,-U,_jgraphics_matrix_init_translate' '-Wl,-U,_jgraphics_matrix_init_scale' '-Wl,-U,_jgraphics_matrix_init_rotate' '-Wl,-U,_jgraphics_matrix_translate' '-Wl,-U,_jgraphics_matrix_scale' '-Wl,-U,_jgraphics_matrix_rotate' '-Wl,-U,_jgraphics_matrix_invert' '-Wl,-U,_jgraphics_matrix_multiply' '-Wl,-U,_jgraphics_matrix_transform_point' '-Wl,-U,_jgraphics_pattern_create_rgba' '-Wl,-U,_jgraphics_pattern_create_for_surface' '-Wl,-U,_jgraphics_pattern_create_linear' '-Wl,-U,_jgraphics_pattern_create_radial' '-Wl,-U,_jgraphics_pattern_add_color_stop_rgba' '-Wl,-U,_jgraphics_pattern_reference' '-Wl,-U,_jgraphics_pattern_destroy' '-Wl,-U,_jgraphics_pattern_get_type' '-Wl,-U,_jgraphics_pattern_set_extend' '-Wl,-U,_jgraphics_pattern_get_extend' '-Wl,-U,_jgraphics_pattern_set_matrix' '-Wl,-U,_jgraphics_pattern_get_matrix' '-Wl,-U,_jgraphics_pattern_get_surface' '-Wl,-U,_jgraphics_pattern_translate' '-Wl,-U,_jgraphics_pattern_scale' '-Wl,-U,_jgraphics_pattern_rotate' '-Wl,-U,_jgraphics_translate' '-Wl,-U,_jgraphics_scale' '-Wl,-U,_jgraphics_rotate' '-Wl,-U,_jgraphics_transform' '-Wl,-U,_jgraphics_set_matrix' '-Wl,-U,_jgraphics_get_matrix' '-Wl,-U,_jgraphics_identity_matrix' '-Wl,-U,_jgraphics_user_to_device' '-Wl,-U,_jgraphics_device_to_user' '-Wl,-U,_jgraphics_save' '-Wl,-U,_jgraphics_restore' '-Wl,-U,_jgraphics_set_source_rgba' '-Wl,-U,_jgraphics_set_source_jrgba' '-Wl,-U,_jgraphics_set_source_rgb' '-Wl,-U,_jgraphics_set_source' '-Wl,-U,_jgraphics_set_source_surface' '-Wl,-U,_jgraphics_set_source_shared' '-Wl,-U,_jgraphics_scale_source_rgba' '-Wl,-U,_jgraphics_translate_source_rgba' '-Wl,-U,_jgraphics_set_dash' '-Wl,-U,_jgraphics_set_fill_rule' '-Wl,-U,_jgraphics_get_fill_rule' '-Wl,-U,_jgraphics_set_line_cap' '-Wl,-U,_jgraphics_get_line_cap' '-Wl,-U,_jgraphics_set_line_join' '-Wl,-U,_jgraphics_get_line_join' '-Wl,-U,_jgraphics_set_line_width' '-Wl,-U,_jgraphics_get_line_width' '-Wl,-U,_jgraphics_paint' '-Wl,-U,_jgraphics_paint_with_alpha' '-Wl,-U,_jgraphics_fill' '-Wl,-U,_jgraphics_fill_preserve' '-Wl,-U,_jgraphics_fill_preserve_with_alpha' '-Wl,-U,_jgraphics_fill_with_alpha' '-Wl,-U,_jgraphics_stroke' '-Wl,-U,_jgraphics_stroke_preserve' '-Wl,-U,_jgraphics_stroke_preserve_with_alpha' '-Wl,-U,_jgraphics_stroke_with_alpha' '-Wl,-U,_get_boxcolor_index_from_jrgba' '-Wl,-U,_set_jrgba_from_palette_index' '-Wl,-U,_set_jrgba_from_boxcolor_index' '-Wl,-U,_jgraphics_clip_rgba' '-Wl,-U,_jpopupmenu_create' '-Wl,-U,_jpopupmenu_destroy' '-Wl,-U,_jpopupmenu_clear' '-Wl,-U,_jpopupmenu_default_options' '-Wl,-U,_jpopupmenu_setcolors' '-Wl,-U,_jpopupmenu_setfont' '-Wl,-U,_jpopupmenu_additem' '-Wl,-U,_jpopupmenu_additemwithshortcut' '-Wl,-U,_jpopupmenu_addsubmenu' '-Wl,-U,_jpopupmenu_addseparator' '-Wl,-U,_jpopupmenu_addseperator' '-Wl,-U,_jpopupmenu_addownerdrawitem' '-Wl,-U,_jpopupmenu_popup' '-Wl,-U,_jpopupmenu_popup_nearbox' '-Wl,-U,_jpopupmenu_popup_nearbox_with_options' '-Wl,-U,_jpopupmenu_popup_abovebox' '-Wl,-U,_jpopupmenu_popup_belowrect' '-Wl,-U,_jpopupmenu_popup_leftofpt' '-Wl,-U,_jpopupmenu_closeall' '-Wl,-U,_jpopupmenu_setstandardstyle' '-Wl,-U,_jpopupmenu_setfixedwidth' '-Wl,-U,_jmouse_getposition_global' '-Wl,-U,_jmouse_setposition_global' '-Wl,-U,_jmouse_setposition_view' '-Wl,-U,_jmouse_setposition_box' '-Wl,-U,_jmouse_setcursor' '-Wl,-U,_jmouse_setcursor_surface' '-Wl,-U,_dictionary_appendjrgba' '-Wl,-U,_dictionary_getdefjrgba' '-Wl,-U,_dictionary_gettrect' '-Wl,-U,_dictionary_appendtrect' '-Wl,-U,_dictionary_gettpt' '-Wl,-U,_dictionary_appendtpt' '-Wl,-U,_atomstojrgba' '-Wl,-U,_jrgbatoatoms' '-Wl,-U,_qd_new' '-Wl,-U,_qd_initialize' '-Wl,-U,_qd_copystate' '-Wl,-U,_qd_PenNormal' '-Wl,-U,_qd_RGBForeColor' '-Wl,-U,_qd_RGBBackColor' '-Wl,-U,_qd_BoxcolorIndexForeColor' '-Wl,-U,_qd_InsetTRect' '-Wl,-U,_qd_OffsetTRect' '-Wl,-U,_qd_EqualTRect' '-Wl,-U,_qd_JRGBAToRGBColor' '-Wl,-U,_qd_GetForeColor' '-Wl,-U,_qd_GetBackColor' '-Wl,-U,_qd_GetForeJColor' '-Wl,-U,_qd_GetBackJColor' '-Wl,-U,_qd_Black' '-Wl,-U,_qd_White' '-Wl,-U,_qd_MoveTo' '-Wl,-U,_qd_LineTo' '-Wl,-U,_qd_Line' '-Wl,-U,_qd_EraseRect' '-Wl,-U,_qd_TRectToRect' '-Wl,-U,_qd_RectToTRect' '-Wl,-U,_qd_RGBColorToJRGBA' '-Wl,-U,_qd_TRectToRectZero' '-Wl,-U,_qd_InsetRect' '-Wl,-U,_qd_OffsetRect' '-Wl,-U,_qd_PaintTRect' '-Wl,-U,_qd_PaintRect' '-Wl,-U,_qd_FrameRect' '-Wl,-U,_qd_PenSize' '-Wl,-U,_qd_Move' '-Wl,-U,_qd_SetBackJColor' '-Wl,-U,_qd_SetRect' '-Wl,-U,_qd_PaintOval' '-Wl,-U,_qd_FrameOval' '-Wl,-U,_qd_PaintRoundRect' '-Wl,-U,_qd_FrameRoundRect' '-Wl,-U,_qd_GetPenLoc' '-Wl,-U,_qd_GetCPixel' '-Wl,-U,_qd_SetCPixel' '-Wl,-U,_qd_PaintArc' '-Wl,-U,_qd_FrameArc' '-Wl,-U,_qd_SetForeJColor' '-Wl,-U,_qd_KillPoly' '-Wl,-U,_qd_PaintPoly' '-Wl,-U,_qd_ClosePoly' '-Wl,-U,_qd_OpenPoly' '-Wl,-U,_qd_LineSegment' '-Wl,-U,_qd_TPtInTRect' '-Wl,-U,_qd_FramePoly' '-Wl,-U,_qd_CloseRgn' '-Wl,-U,_qd_DisposeRgn' '-Wl,-U,_qd_FrameRgn' '-Wl,-U,_qd_OpenRgn' '-Wl,-U,_qd_PaintRgn' '-Wl,-U,_jmenu_init' '-Wl,-U,_jmenu_command_setstate' '-Wl,-U,_jmenu_process' '-Wl,-U,_jmenu_command_enable' '-Wl,-U,_jmenu_command_getstate' '-Wl,-U,_jmenu_command_invert' '-Wl,-U,_jmenu_command_invalidate' '-Wl,-U,_jmenu_command_settext' '-Wl,-U,_jmenu_new' '-Wl,-U,_jmenu_addsubmenu' '-Wl,-U,_jmenu_addseparator' '-Wl,-U,_jmenu_appenditem' '-Wl,-U,_jmenu_interface_fromfile' '-Wl,-U,_jmenu_clearenums' '-Wl,-U,_jmenu_command_setid' '-Wl,-U,_jmenu_enumerate_getfile' '-Wl,-U,_jmenu_enumerate_path' '-Wl,-U,_jmenu_enumerate_data' '-Wl,-U,_jmenu_lookup' '-Wl,-U,_jcolor_getcolor' '-Wl,-U,_jcolor_linkcolor' '-Wl,-U,_jcommand_lookup' '-Wl,-U,_jmenu_update' '-Wl,-U,_jmenu_command_enableall_fortarget' '-Wl,-U,_jmenu_proxy_popup' '-Wl,-U,_jmonitor_getnumdisplays' '-Wl,-U,_jmonitor_getdisplayrect_foralldisplays' '-Wl,-U,_jmonitor_getdisplayrect' '-Wl,-U,_jmonitor_getdisplayrect_forpoint' '-Wl,-U,_jmonitor_getdisplayscalefactor' '-Wl,-U,_jmonitor_getdisplayscalefactor_forpoint' '-Wl,-U,_jmonitor_scale_pt' '-Wl,-U,_jmonitor_unscale_pt' '-Wl,-U,_jkeyboard_getcurrentmodifiers' '-Wl,-U,_jbox_notify' '-Wl,-U,_jgraphics_attr_setrgba' '-Wl,-U,_jgraphics_attr_getrgba' '-Wl,-U,_jgraphics_attr_setrgb_alias' '-Wl,-U,_jcolumn_setcheckbox' '-Wl,-U,_jcolumn_setvaluemsg' '-Wl,-U,_jcolumn_setrowcomponentmsg' '-Wl,-U,_jcolumn_setmaxwidth' '-Wl,-U,_jcolumn_setminwidth' '-Wl,-U,_jcolumn_setwidth' '-Wl,-U,_jcolumn_setlabel' '-Wl,-U,_jcolumn_sethideable' '-Wl,-U,_jcolumn_setvisible' '-Wl,-U,_jcolumn_getvisible' '-Wl,-U,_jcolumn_setinitiallysorted' '-Wl,-U,_jcolumn_setnumeric' '-Wl,-U,_jcolumn_setoverridesort' '-Wl,-U,_jcolumn_setcustomsort' '-Wl,-U,_jcolumn_getid' '-Wl,-U,_jcolumn_update' '-Wl,-U,_jcolumn_getname' '-Wl,-U,_jcolumn_getreference' '-Wl,-U,_jcolumn_setdraggable' '-Wl,-U,_jcolumn_setindentspacing' '-Wl,-U,_jcolumn_setreference' '-Wl,-U,_jcolumn_setsortable' '-Wl,-U,_jcolumn_setcustompaint' '-Wl,-U,_jcolumn_setcellcluemsg' '-Wl,-U,_jcolumn_setcelltextcolormsg' '-Wl,-U,_jcolumn_setcelltextstylemsg' '-Wl,-U,_jdataview_addcolumn' '-Wl,-U,_jdataview_addcolumn_hidden' '-Wl,-U,_jdataview_addrows' '-Wl,-U,_jdataview_addrow' '-Wl,-U,_jdataview_clear' '-Wl,-U,_jdataview_containersizechange' '-Wl,-U,_jdataview_deletecolumn' '-Wl,-U,_jdataview_deleterows' '-Wl,-U,_jdataview_deleterow' '-Wl,-U,_jdataview_editcell' '-Wl,-U,_jdataview_forcecellvisible' '-Wl,-U,_jdataview_getfontname' '-Wl,-U,_jdataview_getfontsize' '-Wl,-U,_jdataview_gethorizscrollvalues' '-Wl,-U,_jdataview_getnamedcolumn' '-Wl,-U,_jdataview_getnthcolumn' '-Wl,-U,_jdataview_getnumcolumns' '-Wl,-U,_jdataview_getnumrows' '-Wl,-U,_jdataview_getvertscrollvalues' '-Wl,-U,_jdataview_resort' '-Wl,-U,_jdataview_restorecolumnwidths' '-Wl,-U,_jdataview_savecolumnwidths' '-Wl,-U,_jdataview_setautosizeright' '-Wl,-U,_jdataview_setautosizebottom' '-Wl,-U,_jdataview_setautosizerightcolumn' '-Wl,-U,_jdataview_setbordercolor' '-Wl,-U,_jdataview_setborderthickness' '-Wl,-U,_jdataview_setcolumnheadercluemsg' '-Wl,-U,_jdataview_setcolumnheaderheight' '-Wl,-U,_jdataview_setcustomselectcolor' '-Wl,-U,_jdataview_setdragenabled' '-Wl,-U,_jdataview_setdrawgrid' '-Wl,-U,_jdataview_setfontname' '-Wl,-U,_jdataview_setfontsize' '-Wl,-U,_jdataview_setheight' '-Wl,-U,_jdataview_sethorizscrollvalues' '-Wl,-U,_jdataview_setkeyfocusable' '-Wl,-U,_jdataview_setscrollvisible' '-Wl,-U,_jdataview_setselectcolor' '-Wl,-U,_jdataview_setrowcolor2' '-Wl,-U,_jdataview_setrowcolor1' '-Wl,-U,_jdataview_setusegradient' '-Wl,-U,_jdataview_setusesystemfont' '-Wl,-U,_jdataview_setvertscrollvalues' '-Wl,-U,_jdataview_setclient' '-Wl,-U,_jdataview_new' '-Wl,-U,_jdataview_newsection' '-Wl,-U,_jdataview_numsections' '-Wl,-U,_jdataview_getnthsection' '-Wl,-U,_jdataview_section_getnumrows' '-Wl,-U,_jdataview_section_getallrows' '-Wl,-U,_jdataview_section_isopen' '-Wl,-U,_jdataview_section_setopen' '-Wl,-U,_jdataview_getsectionopenness' '-Wl,-U,_jdataview_setsectionopenness' '-Wl,-U,_jdataview_section_headervisible' '-Wl,-U,_jdataview_section_setheadervisible' '-Wl,-U,_jdataview_section_getname' '-Wl,-U,_jdataview_section_geticon' '-Wl,-U,_jdataview_scrolltosection' '-Wl,-U,_jdataview_scrolltotop' '-Wl,-U,_jdataview_addrowtosection' '-Wl,-U,_jdataview_addrowstosection' '-Wl,-U,_jdataview_deleterowfromsection' '-Wl,-U,_jdataview_deleterowsfromsection' '-Wl,-U,_jdataview_deleteselectedrows' '-Wl,-U,_jdataview_deleteselectedrowsforview' '-Wl,-U,_jdataview_gettextinrows' '-Wl,-U,_jdataview_iscelltextselected' '-Wl,-U,_jdataview_selectedrowcountforview' '-Wl,-U,_jdataview_selectedrowcount' '-Wl,-U,_jdataview_getselectedrowsforview' '-Wl,-U,_jdataview_applytoselectedrows' '-Wl,-U,_jdataview_applytorows' '-Wl,-U,_jdataview_cellcut' '-Wl,-U,_jdataview_cellcopy' '-Wl,-U,_jdataview_cellpaste' '-Wl,-U,_jdataview_setcancopy' '-Wl,-U,_jdataview_getcancopy' '-Wl,-U,_jdataview_setcanpaste' '-Wl,-U,_jdataview_getcanpaste' '-Wl,-U,_jdataview_getsortcolumn' '-Wl,-U,_jdataview_sortcolumn' '-Wl,-U,_jdataview_redrawcolumn' '-Wl,-U,_jdataview_repaintforview' '-Wl,-U,_jdataview_obscuring' '-Wl,-U,_jdataview_id2colname' '-Wl,-U,_jdataview_colname2id' '-Wl,-U,_jdataview_enablecell' '-Wl,-U,_jdataview_enablerow' '-Wl,-U,_jdataview_colname_setvisible' '-Wl,-U,_jdataview_colname_getvisible' '-Wl,-U,_jdataview_colname_delete' '-Wl,-U,_jdataview_patchervis' '-Wl,-U,_jdataview_patcherinvis' '-Wl,-U,_jdataview_showrow' '-Wl,-U,_jdataview_redrawcell' '-Wl,-U,_jdataview_redrawrow' '-Wl,-U,_jdataview_row2id' '-Wl,-U,_jdataview_selectcell' '-Wl,-U,_jdataview_selectcellinview' '-Wl,-U,_jdataview_sort' '-Wl,-U,_jdataview_setusecharheightfont' '-Wl,-U,_jdialog_showtext' '-Wl,-U,_newobject_sprintf' '-Wl,-U,_itm_initclass' '-Wl,-U,_itm_new' '-Wl,-U,_itm_getglobal' '-Wl,-U,_itm_getnamed' '-Wl,-U,_itm_clocksource_getnamed' '-Wl,-U,_itm_getclocksources' '-Wl,-U,_itmclock_new' '-Wl,-U,_itm_poke' '-Wl,-U,_itm_gettime' '-Wl,-U,_itm_getticks' '-Wl,-U,_itmclock_delay' '-Wl,-U,_itmclock_set' '-Wl,-U,_itmclock_unset' '-Wl,-U,_itm_sync' '-Wl,-U,_itm_settimesignature' '-Wl,-U,_itm_seek' '-Wl,-U,_itm_pause' '-Wl,-U,_itm_resume' '-Wl,-U,_itm_setresolution' '-Wl,-U,_itm_reference' '-Wl,-U,_itm_dereference' '-Wl,-U,_itm_tickstobarbeatunits_timesig' '-Wl,-U,_itm_barbeatunitstoticks_timesig' '-Wl,-U,_itm_barbeatunitstoticks' '-Wl,-U,_itm_tickstobarbeatunits' '-Wl,-U,_itm_nextbeat' '-Wl,-U,_itm_nextunit' '-Wl,-U,_itm_parse' '-Wl,-U,_itm_deleteeventlist' '-Wl,-U,_itm_geteventlistnames' '-Wl,-U,_itm_switcheventlist' '-Wl,-U,_itm_gettimesignature' '-Wl,-U,_itm_getstate' '-Wl,-U,_itm_getresolution' '-Wl,-U,_itm_dump' '-Wl,-U,_itm_getfromarg' '-Wl,-U,_itm_getglobal' '-Wl,-U,_itm_getnamed' '-Wl,-U,_itm_getfromarg' '-Wl,-U,_itm_reference' '-Wl,-U,_itm_dereference' '-Wl,-U,_itm_deleteeventlist' '-Wl,-U,_itm_eventlistseek' '-Wl,-U,_itm_geteventlistnames' '-Wl,-U,_itm_switcheventlist' '-Wl,-U,_itm_gettime' '-Wl,-U,_itm_getticks' '-Wl,-U,_itm_dump' '-Wl,-U,_itm_sync' '-Wl,-U,_itm_settimesignature' '-Wl,-U,_itm_gettimesignature' '-Wl,-U,_itm_seek' '-Wl,-U,_itm_pause' '-Wl,-U,_itm_resume' '-Wl,-U,_itm_getstate' '-Wl,-U,_itm_setresolution' '-Wl,-U,_itm_getresolution' '-Wl,-U,_itm_getname' '-Wl,-U,_itm_parse' '-Wl,-U,_itm_tickstoms' '-Wl,-U,_itm_mstoticks' '-Wl,-U,_itm_mstosamps' '-Wl,-U,_itm_sampstoms' '-Wl,-U,_itm_barbeatunitstoticks' '-Wl,-U,_itm_tickstobarbeatunits' '-Wl,-U,_itm_format' '-Wl,-U,_itm_isunitfixed' '-Wl,-U,_itm_gettempo' '-Wl,-U,_itm_getsr' '-Wl,-U,_itmclock_new' '-Wl,-U,_itmclock_delay' '-Wl,-U,_itmclock_set' '-Wl,-U,_itmclock_unset' '-Wl,-U,_patcher_removedefault' '-Wl,-U,_patcher_setdefault' '-Wl,-U,_patcher_getdefault' '-Wl,-U,_patcher_removedefault' '-Wl,-U,_patcher_setdefault' '-Wl,-U,_patcher_boxname' '-Wl,-U,_atom_alloc_array' '-Wl,-U,_atomarray_decodebinarydata' '-Wl,-U,_jgraphics_write_image_surface_to_filedata' '-Wl,-U,_binarydata_appendtodictionary' '-Wl,-U,_patcherview_findpatcherview' '-Wl,-U,_jpatcher_resolvepatcher' '-Wl,-U,_jpatcher_resolvebox' '-Wl,-U,_jpatcher_resolvebox_ex' '-Wl,-U,_jpatcher_resolveobj' '-Wl,-U,_jpatcher_resolvebox_boxpath' '-Wl,-U,_jpatcher_resolveobj_boxpath' '-Wl,-U,_jwind_canfullscreen' '-Wl,-U,_jwind_getactive' '-Wl,-U,_jwind_getcount' '-Wl,-U,_jwind_getat' '-Wl,-U,_jwind_nextuntitled' '-Wl,-U,_jgraphics_rectangle_fill_fast' '-Wl,-U,_jgraphics_rectangle_draw_fast' '-Wl,-U,_jgraphics_line_draw_fast' '-Wl,-U,_atomarray_new' '-Wl,-U,_atomarray_flags' '-Wl,-U,_atomarray_getflags' '-Wl,-U,_atomarray_setatoms' '-Wl,-U,_atomarray_getatoms' '-Wl,-U,_atomarray_copyatoms' '-Wl,-U,_atomarray_getsize' '-Wl,-U,_atomarray_getindex' '-Wl,-U,_atomarray_duplicate' '-Wl,-U,_atomarray_clone' '-Wl,-U,_atomarray_appendatom' '-Wl,-U,_atomarray_appendatoms' '-Wl,-U,_atomarray_chuckindex' '-Wl,-U,_atomarray_clear' '-Wl,-U,_atomarray_funall' '-Wl,-U,_common_symbols_gettable' '-Wl,-U,_object_obex_storeflags' '-Wl,-U,_object_obex_enforce' '-Wl,-U,_object_attr_getjrgba' '-Wl,-U,_object_attr_setjrgba' '-Wl,-U,_jrgba_to_atoms' '-Wl,-U,_atoms_to_jrgba' '-Wl,-U,_jrgba_set' '-Wl,-U,_jrgba_copy' '-Wl,-U,_jrgba_compare' '-Wl,-U,_jrgba_attr_set' '-Wl,-U,_class_parameter_init' '-Wl,-U,_class_parameter_mappable' '-Wl,-U,_class_parameter_setinfo' '-Wl,-U,_class_parameter_getinfo' '-Wl,-U,_class_parameter_register_default_color' '-Wl,-U,_object_parameter_init' '-Wl,-U,_object_parameter_init_flags' '-Wl,-U,_object_parameter_dictionary_process' '-Wl,-U,_object_parameter_hasminmax_true' '-Wl,-U,_object_parameter_hasminmax_false' '-Wl,-U,_class_parameter_addmethod' '-Wl,-U,_parameter_default_int' '-Wl,-U,_parameter_default_float' '-Wl,-U,_parameter_default_anything' '-Wl,-U,_object_parameter_free' '-Wl,-U,_object_parameter_notify' '-Wl,-U,_object_parameter_getinfo' '-Wl,-U,_object_parameter_setinfo' '-Wl,-U,_object_parameter_string_get' '-Wl,-U,_object_parameter_stringtovalue' '-Wl,-U,_object_parameter_value_set' '-Wl,-U,_object_parameter_value_get' '-Wl,-U,_object_parameter_color_get' '-Wl,-U,_object_parameter_value_getvalueof' '-Wl,-U,_object_parameter_value_setvalueof' '-Wl,-U,_object_parameter_value_setvalueof_nonotify' '-Wl,-U,_object_parameter_value_changed' '-Wl,-U,_object_parameter_value_changed_nonotify' '-Wl,-U,_object_parameter_current_to_initial' '-Wl,-U,_object_parameter_is_initialized' '-Wl,-U,_object_parameter_is_in_Live' '-Wl,-U,_object_parameter_is_automated' '-Wl,-U,_object_parameter_wants_focus' '-Wl,-U,_object_parameter_is_parameter' '-Wl,-U,_object_parameter_get_order' '-Wl,-U,_object_parameter_is_in_maxtilde' '-Wl,-U,_object_parameter_getenable_savestate' '-Wl,-U,_live_default_color_count' '-Wl,-U,_live_default_color_string' '-Wl,-U,_live_default_dynamic_color_string' '-Wl,-U,_live_default_color_symbol' '-Wl,-U,_live_default_color_rgbastring' '-Wl,-U,_live_default_color_rgba' '-Wl,-U,_live_default_color_rgba_from_symbol' '-Wl,-U,_param_global_initializecolors' '-Wl,-U,_project_newfromdevicepatcher' '-Wl,-U,_remote_object_new_typed' '-Wl,-U,_remote_object_new_typed_flags' '-Wl,-U,_remote_object_get' '-Wl,-U,_remote_object_get_flags' '-Wl,-U,_remote_object_method_typed' '-Wl,-U,_remote_object_method_typed_flags' '-Wl,-U,_remote_object_attr_setvalueof' '-Wl,-U,_remote_object_attr_setvalueof_flags' '-Wl,-U,_remote_object_attr_getvalueof' '-Wl,-U,_remote_object_attr_getvalueof_flags' '-Wl,-U,_maxserver_getremoteurl' '-Wl,-U,_maxserver_getcontent' '-Wl,-U,_sysshmem_alloc' '-Wl,-U,_sysshmem_open' '-Wl,-U,_sysshmem_close' '-Wl,-U,_sysshmem_getsize' '-Wl,-U,_sysshmem_getptr' '-Wl,-U,_syssem_create' '-Wl,-U,_syssem_open' '-Wl,-U,_syssem_close' '-Wl,-U,_syssem_wait' '-Wl,-U,_syssem_trywait' '-Wl,-U,_syssem_post' '-Wl,-U,_sysprocess_isrunning' '-Wl,-U,_sysprocess_isrunning_with_returnvalue' '-Wl,-U,_sysprocess_kill' '-Wl,-U,_sysprocess_launch' '-Wl,-U,_sysprocess_launch_withflags' '-Wl,-U,_sysprocess_activate' '-Wl,-U,_sysprocess_getid' '-Wl,-U,_sysprocess_getcurrentid' '-Wl,-U,_sysprocess_getpath' '-Wl,-U,_sysprocesswatcher_new' '-Wl,-U,_sysprocess_fitsarch' '-Wl,-U,_object_retain' '-Wl,-U,_object_release' '-Wl,-U,_multigraph_add' '-Wl,-U,_multigraph_remove' '-Wl,-U,_multinode_resizeio' '-Wl,-U,_multinode_hasdescendant' '-Wl,-U,_multigraph_connect' '-Wl,-U,_multigraph_connect_relaxed' '-Wl,-U,_multigraph_disconnect' '-Wl,-U,_multigraph_disconnectnode' '-Wl,-U,_multigraph_dependency_chain' '-Wl,-U,_multigraph_new' '-Wl,-U,_multinode_new' '-Wl,-U,_multinode_connect' '-Wl,-U,_multinode_disconnect' '-Wl,-U,_multinode_iterfun' '-Wl,-U,_multinode_dependency_chain' '-Wl,-U,_multiedge_disconnect' '-Wl,-U,_multiedge_new' '-Wl,-U,_multigraph_scheduler_new' '-Wl,-U,_multigraph_scheduler_acquire' '-Wl,-U,_multigraph_scheduler_release' '-Wl,-U,_multigraph_scheduler_complete' '-Wl,-U,_multigraph_parallel_iterator_new' '-Wl,-U,_multigraph_parallel_iterator_free' '-Wl,-U,_multigraph_parallel_iterator_scheduler' '-Wl,-U,_multigraph_parallel_iterator_data' '-Wl,-U,_multigraph_parallel_iterator_execute' '-Wl,-U,_multigraph_parallel_iterator_workerproc' '-Wl,-U,_jpatcher_bulk_load_begin' '-Wl,-U,_jpatcher_bulk_load_end' '-Wl,-U,_jpatcher_load' '-Wl,-U,_jpatcher_load_frombuffer' '-Wl,-U,_jpatcher_load_fromdictionary' '-Wl,-U,_jpatcher_load_namespace' '-Wl,-U,_jpatcher_load_frombuffer_namespace' '-Wl,-U,_jpatcher_load_fromdictionary_namespace' '-Wl,-U,_jdesktopui_new' '-Wl,-U,_jdesktopui_destroy' '-Wl,-U,_jdesktopui_setvisible' '-Wl,-U,_jdesktopui_setalwaysontop' '-Wl,-U,_jdesktopui_setrect' '-Wl,-U,_jdesktopui_getrect' '-Wl,-U,_jdesktopui_setposition' '-Wl,-U,_jdesktopui_setfadetimes' '-Wl,-U,_jdesktopui_get_jgraphics' '-Wl,-U,_jdesktopui_redraw' '-Wl,-U,_jdesktopui_redrawrect' '-Wl,-U,_object_subscribe' '-Wl,-U,_object_unsubscribe' '-Wl,-U,_sysparallel_task_workercount' '-Wl,-U,_backgroundtask_execute' '-Wl,-U,_backgroundtask_execute_method' '-Wl,-U,_backgroundtask_purge_object' '-Wl,-U,_backgroundtask_join_object' '-Wl,-U,_backgroundtask_cancel' '-Wl,-U,_backgroundtask_join' '-Wl,-U,_jgraphics_image_surface_create_for_data_premult' '-Wl,-U,_jgraphics_create_zoomed' '-Wl,-U,_jgraphics_get_target' '-Wl,-U,_jgraphics_pop_group' '-Wl,-U,_jgraphics_get_group_target' '-Wl,-U,_jgraphics_pop_group_surface' '-Wl,-U,_syntax_addtoken' '-Wl,-U,_object_register_getnames' '-Wl,-U,_dictionary_clone_to_existing' '-Wl,-U,_dictionary_clone' '-Wl,-U,_dictionary_merge_to_existing' '-Wl,-U,_dictionary_copy_nonunique_to_existing' '-Wl,-U,_patcherdomain_namespace_init' '-Wl,-U,_patcherdomain_node_new' '-Wl,-U,_patcherdomain_node_free' '-Wl,-U,_patcherdomain_makeinlets' '-Wl,-U,_patcherdomain_makeoutlets' '-Wl,-U,_patcherdomain_inlets_resize' '-Wl,-U,_patcherdomain_outlets_resize' '-Wl,-U,_patcherdomain_freeinlets' '-Wl,-U,_patcherdomain_freeoutlets' '-Wl,-U,_patcherdomain_class_register' '-Wl,-U,_patcherdomain_simple_connectionaccept' '-Wl,-U,_patcherdomain_simple_patchlineupdate' '-Wl,-U,_inlet_delete' '-Wl,-U,_outlet_delete' '-Wl,-U,_proxy_append' '-Wl,-U,_proxy_insert' '-Wl,-U,_proxy_new_forinlet' '-Wl,-U,_proxy_delete' '-Wl,-U,_proxy_setinletptr' '-Wl,-U,_proxy_getinletptr' '-Wl,-U,_jgraphics_bubble' '-Wl,-U,_class_subclass' '-Wl,-U,_class_super_construct' '-Wl,-U,_class_super_construct_imp' '-Wl,-U,_object_super_method' '-Wl,-U,_object_super_method_imp' '-Wl,-U,_object_this_method' '-Wl,-U,_object_this_method_imp' '-Wl,-U,_object_obex_chuck' '-Wl,-U,_object_attr_touch' '-Wl,-U,_object_attr_touch_parse' '-Wl,-U,_object_method_direct_getmethod' '-Wl,-U,_object_method_direct_getobject' '-Wl,-U,_object_typedwrapper_get' '-Wl,-U,_usergesture_begin' '-Wl,-U,_usergesture_end' '-Wl,-U,_usergesture_add_live_undo_subscriber' '-Wl,-U,_db_open' '-Wl,-U,_db_close' '-Wl,-U,_db_query' '-Wl,-U,_db_query_direct' '-Wl,-U,_db_query_silent' '-Wl,-U,_db_query_getlastinsertid' '-Wl,-U,_db_query_table_new' '-Wl,-U,_db_query_table_addcolumn' '-Wl,-U,_db_transaction_start' '-Wl,-U,_db_transaction_end' '-Wl,-U,_db_transaction_flush' '-Wl,-U,_db_view_create' '-Wl,-U,_db_view_remove' '-Wl,-U,_db_view_getresult' '-Wl,-U,_db_view_setquery' '-Wl,-U,_db_result_nextrecord' '-Wl,-U,_db_result_reset' '-Wl,-U,_db_result_clear' '-Wl,-U,_db_result_numrecords' '-Wl,-U,_db_result_numfields' '-Wl,-U,_db_result_fieldname' '-Wl,-U,_db_result_string' '-Wl,-U,_db_result_long' '-Wl,-U,_db_result_float' '-Wl,-U,_db_result_datetimeinseconds' '-Wl,-U,_db_util_stringtodate' '-Wl,-U,_db_util_datetostring' '-Wl,-U,_eventcontext_begin' '-Wl,-U,_eventcontext_end' '-Wl,-U,_eventcontext_get' '-Wl,-U,_eventcontext_set' '-Wl,-U,_collectionlist_read' '-Wl,-U,_collection_updatefromdictionary' '-Wl,-U,_collection_deletenamed' '-Wl,-U,_collection_renamenamed' '-Wl,-U,_collection_getallnames' '-Wl,-U,_schedule_queue_new' '-Wl,-U,_schedule_queue' '-Wl,-U,_lockfreequeue_free' '-Wl,-U,_lockfreequeue_new' '-Wl,-U,_lockfreequeue_pop' '-Wl,-U,_lockfreequeue_push' '-Wl,-U,_lockfreequeue_isempty' '-Wl,-U,_class_attr_setstyle' '-Wl,-U,_class_attr_style_alias' '-Wl,-U,_class_attr_setfill' '-Wl,-U,_class_addstyleattr' '-Wl,-U,_style_getmenu' '-Wl,-U,_style_handlemenu' '-Wl,-U,_dynamiccolor_getmenu' '-Wl,-U,_dynamiccolor_handlemenu' '-Wl,-U,_object_attr_getinherited' '-Wl,-U,_object_attr_setinherited' '-Wl,-U,_object_style_setfillattribute' '-Wl,-U,_class_attr_stylemap' '-Wl,-U,_object_attr_attrname_forstylemap' '-Wl,-U,_object_attr_stylemapname' '-Wl,-U,_jgraphics_triangle' '-Wl,-U,_jgraphics_jrgba_set_brightness' '-Wl,-U,_jpopupmenu_setstandardstyle' '-Wl,-U,_jgraphics_attr_setfill' '-Wl,-U,_jgraphics_attr_setfill_transformed' '-Wl,-U,_jgraphics_attr_fillrect' '-Wl,-U,_object_attr_getfillcolor_atposition' '-Wl,-U,_object_attr_getfill' '-Wl,-U,_jitdebugcallback' '-Wl,-U,_jsvg_remap_create' '-Wl,-U,_jsvg_remap_destroy' '-Wl,-U,_jsvg_remap_addcolor' '-Wl,-U,_jsvg_remap_addsinglecolor' '-Wl,-U,_jsvg_remap_perform' '-Wl,-U,_jsvg_load_cached' '-Wl,-U,_jgraphics_draw_jsvg' '-Wl,-U,_objectcollection_addobject' '-Wl,-U,_objectcollection_addtext' '-Wl,-U,_machoglue_init' '-Wl,-U,_ctopcpy' '-Wl,-U,_ptoccpy' '-Wl,-U,_pstrcpy' '-Wl,-U,_plug_getoptions' '-Wl,-U,_path_fromfsref' '-Wl,-U,_path_tofsref' '-Wl,-U,_fontinfo_prefcheckencoding' '-Wl,-U,_fontinfo_getencoding' '-Wl,-U,_fontinfo_reconverthandle' '-Wl,-U,_fontinfo_convert' '-Wl,-U,_rescopy' '-Wl,-U,_max_debug_is_debugger_attached' '-Wl,-U,_unibrowser_search_dosearch' '-Wl,-U,_unibrowser_search_autocomplete_dosearch' '-Wl,-U,_unibrowser_search_collection_getall' '-Wl,-U,_unibrowser_search_snippets_dosearch' '-Wl,-U,_unibrowser_search_getsnippetdictionary' '-Wl,-U,_snapshotwriter_addpayload' '-Wl,-U,_snapshotwriter_addlist' '-Wl,-U,_snapshotreader_from_dictionary' '-Wl,-U,_snapshotreader_from_userpath' '-Wl,-U,_snapshotreader_fitstype' '-Wl,-U,_snapshotreader_getpayload' '-Wl,-U,_snapshotreader_getlist' '-Wl,-U,_snapshotreader_haspayload' '-Wl,-U,_snapshotreader_haslist' '-Wl,-U,_snapshotreader_getname' '-Wl,-U,_snapshotreader_getorigin' '-Wl,-U,_snapshotlist_setup' '-Wl,-U,_snapshotlist_will_restore' '-Wl,-U,_snapshotlist_initial_restore' '-Wl,-U,_snapshotlist_momentary_snapshot' '-Wl,-U,_snapshotlist_devalidate_snapshot' '-Wl,-U,_snapshotlist_forceupdatefilesnapshots' '-Wl,-U,_snapshotlist_appendtodictionary' '-Wl,-U,_snapshotlist_getvalueof' '-Wl,-U,_snapshotlist_setvalueof' '-Wl,-U,_snapshotlist_fileusage' '-Wl,-U,_object_attr_obsolete_getter' '-Wl,-U,_object_attr_obsolete_setter' '-Wl,-U,_object_method_obsolete' '-Wl,-U,_updatepath_pathhaschanged' '-Wl,-U,_sysinfo_getosversion' '-Wl,-U,_object_attr_lock' '-Wl,-U,_object_attr_unlock' '-Wl,-U,_dictionary_transaction_lock' '-Wl,-U,_dictionary_transaction_unlock' '-Wl,-U,_charset_urlencode' '-Wl,-U,_jpatcher_setnextobexprototype' '-Wl,-U,_jpatcher_getnextobexprototype' '-Wl,-U,_sysinfo_gestalt_get_sysv' '-Wl,-U,_sysinfo_gestalt_get_sysvers' '-Wl,-U,_sysinfo_gestalt_get_systemversion' '-Wl,-U,_sysinfo_gestalt_get_pid' '-Wl,-U,_sysinfo_gestalt_get_processname' '-Wl,-U,_sysinfo_gestalt_get_processorcount' '-Wl,-U,_sysinfo_gestalt_get_physicalmemory' '-Wl,-U,_sysinfo_gestalt_get_hostname' '-Wl,-U,_sysinfo_gestalt_get_arguments' '-Wl,-U,_sysinfo_gestalt_get_environment' '-Wl,-U,_jgraphics_path_getpointalongpath' '-Wl,-U,_class_attr_dynamiccolor_init' '-Wl,-U,_object_attr_dynamiccolor_supported' '-Wl,-U,_object_attr_dynamiccolor_setsym_setup' '-Wl,-U,_object_attr_dynamiccolor_getname' '-Wl,-U,_object_attr_dynamiccolor_setname' '-Wl,-U,_object_attr_dynamiccolor_geton' '-Wl,-U,_object_attr_dynamiccolor_seton' '-Wl,-U,_object_attr_dynamiccolor_getregular' '-Wl,-U,_object_attr_dynamiccolor_setregular' '-Wl,-U,_object_attr_dynamiccolor_getregularrgba' '-Wl,-U,_object_attr_dynamiccolor_setregularrgba' '-Wl,-U,_object_attr_dynamiccolor_gethumanname' '-Wl,-U,_object_attr_dynamiccolor_apply' \ No newline at end of file diff --git a/source/script/max-package.cmake b/source/script/max-package.cmake deleted file mode 100644 index b4b5d4a7..00000000 --- a/source/script/max-package.cmake +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 2018 The Max-API Authors. All rights reserved. -# Use of this source code is governed by the MIT License found in the License.md file. - -cmake_minimum_required(VERSION 3.19) - -string(REGEX REPLACE "(.*)/" "" THIS_FOLDER_NAME "${CMAKE_CURRENT_SOURCE_DIR}") -project(${THIS_FOLDER_NAME}) - - -# Set version variables based on the current Git tag -include("${CMAKE_CURRENT_LIST_DIR}/git-rev.cmake") - -set(ADD_VERINFO YES) - -# Update package-info.json, if present -if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/package-info.json.in") - message("Building _____ ${GIT_TAG} _____") - set(C74_PACKAGE_NAME "${THIS_FOLDER_NAME}") - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/package-info.json.in" "${CMAKE_CURRENT_SOURCE_DIR}/package-info.json" @ONLY) - - message("Reading ${CMAKE_CURRENT_SOURCE_DIR}/package-info.json") - - file(READ "${CMAKE_CURRENT_SOURCE_DIR}/package-info.json" PKGINFOFILE) - - string(JSON AUTHOR GET ${PKGINFOFILE} "author") - - string(JSON PKG_EXTRA_STR ERROR_VARIABLE PKG_ERROR GET ${PKGINFOFILE} "package_extra") - - string(JSON AUTHOR_DOMAIN ERROR_VARIABLE PKG_ERROR GET ${PKG_EXTRA_STR} "reverse_domain") - if (AUTHOR_DOMAIN MATCHES "-NOTFOUND") - set(AUTHOR_DOMAIN "com.acme") - endif () - - string(JSON COPYRIGHT_STRING ERROR_VARIABLE PKG_ERROR GET ${PKG_EXTRA_STR} "copyright") - if (COPYRIGHT_STRING MATCHES "-NOTFOUND") - set(COPYRIGHT_STRING "Copyright (c) 1974 Acme Inc") - endif () - - string(JSON ADD_VERINFO_STR ERROR_VARIABLE PKG_ERROR GET ${PKG_EXTRA_STR} "add_verinfo") - if (NOT ADD_VERINFO_STR MATCHES "-NOTFOUND" AND NOT ADD_VERINFO_STR STREQUAL true) - set(ADD_VERINFO NO) - endif () - - string(JSON EXCLUDE_FROM_COLLECTIVES ERROR_VARIABLE PKG_ERROR GET ${PKG_EXTRA_STR} "exclude_from_collectives") - if (EXCLUDE_FROM_COLLECTIVES MATCHES "-NOTFOUND") - set(EXCLUDE_FROM_COLLECTIVES "no") - endif () -endif () - - -# Copy PkgInfo and update Info.plist files on the Mac -if (APPLE) - message("Generating Info.plist") - - set(BUNDLE_IDENTIFIER "\${PRODUCT_NAME:rfc1034identifier}") - configure_file("${CMAKE_CURRENT_LIST_DIR}/Info.plist.in" "${CMAKE_CURRENT_LIST_DIR}/Info.plist" @ONLY) -endif () - -if (WIN32 AND ADD_VERINFO) - message("Generating verinfo.rc") - - configure_file("${CMAKE_CURRENT_LIST_DIR}/verinfo.rc.in" "${CMAKE_CURRENT_LIST_DIR}/verinfo.rc" @ONLY) -endif() - -# Macro from http://stackoverflow.com/questions/7787823/cmake-how-to-get-the-name-of-all-subdirectories-of-a-directory -MACRO(SUBDIRLIST result curdir) - FILE(GLOB children RELATIVE ${curdir} ${curdir}/*) - SET(dirlist "") - FOREACH(child ${children}) - IF(IS_DIRECTORY ${curdir}/${child}) - LIST(APPEND dirlist ${child}) - ENDIF() - ENDFOREACH() - SET(${result} ${dirlist}) -ENDMACRO() - diff --git a/source/script/max-posttarget.cmake b/source/script/max-posttarget.cmake deleted file mode 100644 index 6d5491d2..00000000 --- a/source/script/max-posttarget.cmake +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 2018 The Max-API Authors. All rights reserved. -# Use of this source code is governed by the MIT License found in the License.md file. - -if (${C74_CXX_STANDARD} EQUAL 98) - if (APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++98 -stdlib=libstdc++") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -stdlib=libstdc++") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -stdlib=libstdc++") - endif () -else () - set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 17) - set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) -endif () - -if ("${PROJECT_NAME}" MATCHES ".*_tilde") - string(REGEX REPLACE "_tilde" "~" EXTERN_OUTPUT_NAME "${PROJECT_NAME}") -else () - set(EXTERN_OUTPUT_NAME "${PROJECT_NAME}") -endif () - -set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${EXTERN_OUTPUT_NAME}") - -#add_library("${MAX_SDK_INCLUDES}/common/commonsyms.c") - -### Output ### -if (APPLE) - find_library(MSP_LIBRARY "MaxAudioAPI" HINTS "${MAX_SDK_MSP_INCLUDES}") - target_link_libraries(${PROJECT_NAME} PUBLIC ${MSP_LIBRARY}) - - if ("${PROJECT_NAME}" MATCHES "jit.*") - find_library(JITTER_LIBRARY "JitterAPI" HINTS "${MAX_SDK_JIT_INCLUDES}") - target_link_libraries(${PROJECT_NAME} PUBLIC ${JITTER_LIBRARY}) - if ("${PROJECT_NAME}" MATCHES "jit.gl.*") - target_link_libraries(${PROJECT_NAME} PUBLIC "-framework OpenGL") - endif() - endif() - - set_property(TARGET ${PROJECT_NAME} - PROPERTY BUNDLE True) - set_property(TARGET ${PROJECT_NAME} - PROPERTY BUNDLE_EXTENSION "mxo") - set_target_properties(${PROJECT_NAME} PROPERTIES XCODE_ATTRIBUTE_WRAPPER_EXTENSION "mxo") - set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE_BUNDLE_VERSION "${GIT_VERSION_TAG}") - set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/Info.plist.in) -elseif (WIN32) - target_link_libraries(${PROJECT_NAME} PUBLIC ${MaxAPI_LIB}) - target_link_libraries(${PROJECT_NAME} PUBLIC ${MaxAudio_LIB}) - if ("${PROJECT_NAME}" MATCHES "jit.*") - target_link_libraries(${PROJECT_NAME} PUBLIC ${Jitter_LIB}) - if ("${PROJECT_NAME}" MATCHES "jit.gl.*") - target_link_libraries(${PROJECT_NAME} PUBLIC opengl32 glu32) - endif() - endif() - - set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX ".mxe64") - - # warning about constexpr not being const in c++14 - set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/wd4814") - - # allow parallel builds - set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "/MP") - - # do not generate ILK files - set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/INCREMENTAL:NO") - - if (EXCLUDE_FROM_COLLECTIVES STREQUAL "yes") - target_compile_definitions(${PROJECT_NAME} PRIVATE "-DEXCLUDE_FROM_COLLECTIVES") - endif() - - if (ADD_VERINFO) - target_sources(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/verinfo.rc) - endif() -endif () - - -### Post Build ### -if (APPLE) - add_custom_command( - TARGET ${PROJECT_NAME} - POST_BUILD - COMMAND cp "${CMAKE_CURRENT_LIST_DIR}/PkgInfo" "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${EXTERN_OUTPUT_NAME}.mxo/Contents/PkgInfo" - COMMENT "Copy PkgInfo" - ) -endif () diff --git a/source/script/max-pretarget.cmake b/source/script/max-pretarget.cmake deleted file mode 100644 index cac2caed..00000000 --- a/source/script/max-pretarget.cmake +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2018 The Max-API Authors. All rights reserved. -# Use of this source code is governed by the MIT License found in the License.md file. - -string(REGEX REPLACE "(.*)/" "" THIS_FOLDER_NAME "${CMAKE_CURRENT_SOURCE_DIR}") - -string(REPLACE "~" "_tilde" THIS_FOLDER_NAME "${THIS_FOLDER_NAME}") - -if (WIN32) - # These must be prior to the "project" command - # https://stackoverflow.com/questions/14172856/compile-with-mt-instead-of-md-using-cmake - - set(CMAKE_C_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1") - set(CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG") - set(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG") - - set(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1") - set(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG") - set(CMAKE_CXX_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG") -endif () - -project(${THIS_FOLDER_NAME}) - -if (NOT DEFINED C74_SUPPORT_DIR) - set(C74_SUPPORT_DIR ${CMAKE_CURRENT_LIST_DIR}/../c74support) -endif () - -set(MAX_SDK_INCLUDES "${C74_SUPPORT_DIR}/max-includes") -set(MAX_SDK_MSP_INCLUDES "${C74_SUPPORT_DIR}/msp-includes") -set(MAX_SDK_JIT_INCLUDES "${C74_SUPPORT_DIR}/jit-includes") - -set(C74_CXX_STANDARD 0) - -if (APPLE) - if (CMAKE_OSX_ARCHITECTURES STREQUAL "") - set(CMAKE_OSX_ARCHITECTURES x86_64) - endif() - set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11" CACHE STRING "Minimum OS X deployment version" FORCE) -endif () - -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../externals") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}") - -if (WIN32) - set(CMAKE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/pdb/$") - - SET(MaxAPI_LIB ${MAX_SDK_INCLUDES}/x64/MaxAPI.lib) - SET(MaxAudio_LIB ${MAX_SDK_MSP_INCLUDES}/x64/MaxAudio.lib) - SET(Jitter_LIB ${MAX_SDK_JIT_INCLUDES}/x64/jitlib.lib) - - MARK_AS_ADVANCED (MaxAPI_LIB) - MARK_AS_ADVANCED (MaxAudio_LIB) - MARK_AS_ADVANCED (Jitter_LIB) - - add_definitions( - -DMAXAPI_USE_MSCRT - -DWIN_VERSION - -D_USE_MATH_DEFINES - ) -else () - file (STRINGS "${CMAKE_CURRENT_LIST_DIR}/max-linker-flags.txt" C74_SYM_MAX_LINKER_FLAGS) - - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${C74_SYM_MAX_LINKER_FLAGS}") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${C74_SYM_MAX_LINKER_FLAGS}") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${C74_SYM_MAX_LINKER_FLAGS}") -endif () diff --git a/source/script/verinfo.rc.in b/source/script/verinfo.rc.in deleted file mode 100644 index ed4ceb23..00000000 --- a/source/script/verinfo.rc.in +++ /dev/null @@ -1,29 +0,0 @@ -#include "winver.h" - -VS_VERSION_INFO VERSIONINFO -FILEVERSION @GIT_VERSION_MAJ@,@GIT_VERSION_MIN@,@GIT_VERSION_SUB@,0 -PRODUCTVERSION @GIT_VERSION_MAJ@,@GIT_VERSION_MIN@,@GIT_VERSION_SUB@,0 -FILEFLAGSMASK 0 -FILEFLAGS 0 -FILEOS VOS_NT_WINDOWS32 -FILETYPE VFT_DLL -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "CompanyName", "@AUTHOR@" - VALUE "LegalCopyright", "@COPYRIGHT_STRING@" - VALUE "ProductVersion", "@GIT_VERSION_MAJ@,@GIT_VERSION_MIN@,@GIT_VERSION_SUB@,0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x0409, 1252 - END -END - -#ifdef EXCLUDE_FROM_COLLECTIVES -C74OBJECTPROPERTIES C74OBJECTPROPERTIES "excludefromcollectives.json" -#endif diff --git a/source/ui/jslider/CMakeLists.txt b/source/ui/jslider/CMakeLists.txt index 63372829..c52bdf66 100755 --- a/source/ui/jslider/CMakeLists.txt +++ b/source/ui/jslider/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -22,4 +22,4 @@ add_library( ${MAX_SDK_INCLUDES}/common/commonsyms.c ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/ui/uioptimized/CMakeLists.txt b/source/ui/uioptimized/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/ui/uioptimized/CMakeLists.txt +++ b/source/ui/uioptimized/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/ui/uires/CMakeLists.txt b/source/ui/uires/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/ui/uires/CMakeLists.txt +++ b/source/ui/uires/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/ui/uisimp/CMakeLists.txt b/source/ui/uisimp/CMakeLists.txt index a1eaab31..f8588338 100755 --- a/source/ui/uisimp/CMakeLists.txt +++ b/source/ui/uisimp/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( uisimp.c ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/ui/uitester/CMakeLists.txt b/source/ui/uitester/CMakeLists.txt index 8ef415ad..898230b3 100755 --- a/source/ui/uitester/CMakeLists.txt +++ b/source/ui/uitester/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -21,4 +21,4 @@ add_library( ${PROJECT_SRC} ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake) diff --git a/source/ui/uitextfield/CMakeLists.txt b/source/ui/uitextfield/CMakeLists.txt index 497c16ed..d910dd4e 100755 --- a/source/ui/uitextfield/CMakeLists.txt +++ b/source/ui/uitextfield/CMakeLists.txt @@ -1,4 +1,4 @@ -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-pretarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-pretarget.cmake) ############################################################# # MAX EXTERNAL @@ -22,4 +22,4 @@ add_library( ${MAX_SDK_INCLUDES}/common/jpatcher_syms.c ) -include(${CMAKE_CURRENT_SOURCE_DIR}/../../script/max-posttarget.cmake) +include(${CMAKE_CURRENT_SOURCE_DIR}/../../max-sdk-base/script/max-posttarget.cmake)