mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-03 02:15:43 -04:00
Merge branch 'master' into local/cmake-merge
This commit is contained in:
commit
ed2b3017d4
@ -27,7 +27,9 @@
|
||||
|
||||
#include "iesDataset.h"
|
||||
|
||||
#ifndef _USE_MATH_DEFINES
|
||||
#define _USE_MATH_DEFINES
|
||||
#endif
|
||||
#include <math.h>
|
||||
|
||||
NotifyCategoryDef(iesdataset, "")
|
||||
|
@ -27,7 +27,9 @@
|
||||
|
||||
#include "pssmCameraRig.h"
|
||||
|
||||
#ifndef _USE_MATH_DEFINES
|
||||
#define _USE_MATH_DEFINES
|
||||
#endif
|
||||
#include <math.h>
|
||||
#include "orthographicLens.h"
|
||||
|
||||
|
@ -27,7 +27,9 @@
|
||||
|
||||
#include "rpSpotLight.h"
|
||||
|
||||
#ifndef _USE_MATH_DEFINES
|
||||
#define _USE_MATH_DEFINES
|
||||
#endif
|
||||
#include <math.h>
|
||||
|
||||
|
||||
|
@ -103,11 +103,6 @@ RenameSet methodRenameDictionary[] = {
|
||||
{ nullptr, nullptr, -1 }
|
||||
};
|
||||
|
||||
RenameSet classRenameDictionary[] = {
|
||||
// No longer used, now empty.
|
||||
{ nullptr, nullptr, -1 }
|
||||
};
|
||||
|
||||
const char *pythonKeywords[] = {
|
||||
"and",
|
||||
"as",
|
||||
@ -193,12 +188,6 @@ classNameFromCppName(const std::string &cppName, bool mangle) {
|
||||
}
|
||||
}
|
||||
|
||||
for (int x = 0; classRenameDictionary[x]._from != nullptr; x++) {
|
||||
if (cppName == classRenameDictionary[x]._from) {
|
||||
className = classRenameDictionary[x]._to;
|
||||
}
|
||||
}
|
||||
|
||||
if (className.empty()) {
|
||||
std::string text = "** ERROR ** Renaming class: " + cppName + " to empty string";
|
||||
printf("%s", text.c_str());
|
||||
@ -253,15 +242,6 @@ methodNameFromCppName(const std::string &cppName, const std::string &className,
|
||||
}
|
||||
}
|
||||
|
||||
if (className.size() > 0) {
|
||||
string lookup_name = className + '.' + cppName;
|
||||
for (int x = 0; classRenameDictionary[x]._from != nullptr; x++) {
|
||||
if (lookup_name == methodRenameDictionary[x]._from) {
|
||||
methodName = methodRenameDictionary[x]._to;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// # Mangle names that happen to be python keywords so they are not anymore
|
||||
methodName = checkKeyword(methodName);
|
||||
return methodName;
|
||||
@ -1459,7 +1439,7 @@ write_module_support(ostream &out, ostream *out_h, InterrogateModuleDef *def) {
|
||||
if (force_base_functions) {
|
||||
out << " // Support Function For Dtool_types ... for now in each module ??\n";
|
||||
out << " {\"Dtool_BorrowThisReference\", &Dtool_BorrowThisReference, METH_VARARGS, \"Used to borrow 'this' pointer (to, from)\\nAssumes no ownership.\"},\n";
|
||||
out << " {\"Dtool_AddToDictionary\", &Dtool_AddToDictionary, METH_VARARGS, \"Used to add items into a tp_dict\"},\n";
|
||||
//out << " {\"Dtool_AddToDictionary\", &Dtool_AddToDictionary, METH_VARARGS, \"Used to add items into a tp_dict\"},\n";
|
||||
}
|
||||
|
||||
out << " {nullptr, nullptr, 0, nullptr}\n" << "};\n\n";
|
||||
@ -2536,7 +2516,7 @@ write_module_class(ostream &out, Object *obj) {
|
||||
}
|
||||
}
|
||||
|
||||
if (NeedsARichCompareFunction(obj->_itype)) {
|
||||
if (NeedsARichCompareFunction(obj->_itype) || slots.count("tp_compare")) {
|
||||
out << "//////////////////\n";
|
||||
out << "// A rich comparison function\n";
|
||||
out << "// " << ClassName << "\n";
|
||||
@ -2547,7 +2527,6 @@ write_module_class(ostream &out, Object *obj) {
|
||||
out << " return nullptr;\n";
|
||||
out << " }\n\n";
|
||||
|
||||
out << " switch (op) {\n";
|
||||
for (fi = obj->_methods.begin(); fi != obj->_methods.end(); ++fi) {
|
||||
std::set<FunctionRemap*> remaps;
|
||||
Function *func = (*fi);
|
||||
@ -2564,21 +2543,28 @@ write_module_class(ostream &out, Object *obj) {
|
||||
}
|
||||
}
|
||||
const string &fname = func->_ifunc.get_name();
|
||||
const char *op_type;
|
||||
if (fname == "operator <") {
|
||||
out << " case Py_LT:\n";
|
||||
op_type = "Py_LT";
|
||||
} else if (fname == "operator <=") {
|
||||
out << " case Py_LE:\n";
|
||||
op_type = "Py_LE";
|
||||
} else if (fname == "operator ==") {
|
||||
out << " case Py_EQ:\n";
|
||||
op_type = "Py_EQ";
|
||||
} else if (fname == "operator !=") {
|
||||
out << " case Py_NE:\n";
|
||||
op_type = "Py_NE";
|
||||
} else if (fname == "operator >") {
|
||||
out << " case Py_GT:\n";
|
||||
op_type = "Py_GT";
|
||||
} else if (fname == "operator >=") {
|
||||
out << " case Py_GE:\n";
|
||||
op_type = "Py_GE";
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
if (!has_local_richcompare) {
|
||||
out << " switch (op) {\n";
|
||||
has_local_richcompare = true;
|
||||
}
|
||||
out << " case " << op_type << ":\n";
|
||||
|
||||
out << " {\n";
|
||||
|
||||
string expected_params;
|
||||
@ -2587,14 +2573,15 @@ write_module_class(ostream &out, Object *obj) {
|
||||
|
||||
out << " break;\n";
|
||||
out << " }\n";
|
||||
has_local_richcompare = true;
|
||||
}
|
||||
|
||||
out << " }\n\n";
|
||||
|
||||
out << " if (_PyErr_OCCURRED()) {\n";
|
||||
out << " PyErr_Clear();\n";
|
||||
out << " }\n\n";
|
||||
if (has_local_richcompare) {
|
||||
// End of switch block
|
||||
out << " }\n\n";
|
||||
out << " if (_PyErr_OCCURRED()) {\n";
|
||||
out << " PyErr_Clear();\n";
|
||||
out << " }\n\n";
|
||||
}
|
||||
|
||||
if (slots.count("tp_compare")) {
|
||||
// A lot of Panda code depends on comparisons being done via the
|
||||
@ -2624,6 +2611,7 @@ write_module_class(ostream &out, Object *obj) {
|
||||
out << " case Py_GE:\n";
|
||||
out << " return PyBool_FromLong(cmpval >= 0);\n";
|
||||
out << " }\n";
|
||||
has_local_richcompare = true;
|
||||
}
|
||||
|
||||
out << " Py_INCREF(Py_NotImplemented);\n";
|
||||
@ -2850,7 +2838,7 @@ write_module_class(ostream &out, Object *obj) {
|
||||
out << "#else\n";
|
||||
if (has_hash_compare) {
|
||||
write_function_slot(out, 4, slots, "tp_compare",
|
||||
"&DTOOL_PyObject_ComparePointers");
|
||||
"&DtoolInstance_ComparePointers");
|
||||
} else {
|
||||
out << " nullptr, // tp_compare\n";
|
||||
}
|
||||
@ -2880,7 +2868,7 @@ write_module_class(ostream &out, Object *obj) {
|
||||
|
||||
// hashfunc tp_hash;
|
||||
if (has_hash_compare) {
|
||||
write_function_slot(out, 4, slots, "tp_hash", "&DTOOL_PyObject_HashPointer");
|
||||
write_function_slot(out, 4, slots, "tp_hash", "&DtoolInstance_HashPointer");
|
||||
} else {
|
||||
out << " nullptr, // tp_hash\n";
|
||||
}
|
||||
@ -2951,7 +2939,7 @@ write_module_class(ostream &out, Object *obj) {
|
||||
} else if (has_hash_compare) {
|
||||
// All hashable types need to be comparable.
|
||||
out << "#if PY_MAJOR_VERSION >= 3\n";
|
||||
out << " &DTOOL_PyObject_RichCompare,\n";
|
||||
out << " &DtoolInstance_RichComparePointers,\n";
|
||||
out << "#else\n";
|
||||
out << " nullptr, // tp_richcompare\n";
|
||||
out << "#endif\n";
|
||||
@ -5038,7 +5026,7 @@ write_function_instance(ostream &out, FunctionRemap *remap,
|
||||
"value %ld out of range for unsigned byte",
|
||||
param_name);
|
||||
} else {
|
||||
extra_convert << "if (" << param_name << " < CHAR_MIN || " << param_name << " > CHAR_MAX) {\n";
|
||||
extra_convert << "if (" << param_name << " < SCHAR_MIN || " << param_name << " > SCHAR_MAX) {\n";
|
||||
error_raise_return(extra_convert, 2, return_flags, "OverflowError",
|
||||
"value %ld out of range for signed byte",
|
||||
param_name);
|
||||
|
@ -79,13 +79,13 @@ EXPORT_THIS Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE = {
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
nullptr, // tp_compare
|
||||
#else
|
||||
&DTOOL_PyObject_ComparePointers,
|
||||
&DtoolInstance_ComparePointers,
|
||||
#endif
|
||||
nullptr, // tp_repr
|
||||
nullptr, // tp_as_number
|
||||
nullptr, // tp_as_sequence
|
||||
nullptr, // tp_as_mapping
|
||||
&DTOOL_PyObject_HashPointer,
|
||||
&DtoolInstance_HashPointer,
|
||||
nullptr, // tp_call
|
||||
nullptr, // tp_str
|
||||
PyObject_GenericGetAttr,
|
||||
@ -96,7 +96,7 @@ EXPORT_THIS Dtool_PyTypedObject Dtool_DTOOL_SUPER_BASE = {
|
||||
nullptr, // tp_traverse
|
||||
nullptr, // tp_clear
|
||||
#if PY_MAJOR_VERSION >= 3
|
||||
&DTOOL_PyObject_RichCompare,
|
||||
&DtoolInstance_RichComparePointers,
|
||||
#else
|
||||
nullptr, // tp_richcompare
|
||||
#endif
|
||||
|
@ -16,8 +16,6 @@
|
||||
|
||||
#ifdef HAVE_PYTHON
|
||||
|
||||
PyTupleObject Dtool_EmptyTuple = {PyVarObject_HEAD_INIT(nullptr, 0)};
|
||||
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
/**
|
||||
* Given a long or int, returns a size_t, or raises an OverflowError if it is
|
||||
|
@ -138,11 +138,29 @@ typedef long Py_hash_t;
|
||||
|
||||
/* Python 3.6 */
|
||||
|
||||
// Used to implement _PyObject_CallNoArg
|
||||
extern EXPCL_INTERROGATEDB PyTupleObject Dtool_EmptyTuple;
|
||||
|
||||
#ifndef _PyObject_CallNoArg
|
||||
# define _PyObject_CallNoArg(func) PyObject_Call((func), (PyObject *)&Dtool_EmptyTuple, nullptr)
|
||||
INLINE PyObject *_PyObject_CallNoArg(PyObject *func) {
|
||||
static PyTupleObject empty_tuple = {PyVarObject_HEAD_INIT(nullptr, 0)};
|
||||
#ifdef Py_TRACE_REFS
|
||||
_Py_AddToAllObjects((PyObject *)&empty_tuple, 0);
|
||||
#endif
|
||||
return PyObject_Call(func, (PyObject *)&empty_tuple, nullptr);
|
||||
}
|
||||
# define _PyObject_CallNoArg _PyObject_CallNoArg
|
||||
#endif
|
||||
|
||||
#ifndef _PyObject_FastCall
|
||||
INLINE PyObject *_PyObject_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs) {
|
||||
PyObject *tuple = PyTuple_New(nargs);
|
||||
for (Py_ssize_t i = 0; i < nargs; ++i) {
|
||||
PyTuple_SET_ITEM(tuple, i, args[i]);
|
||||
Py_INCREF(args[i]);
|
||||
}
|
||||
PyObject *result = PyObject_Call(func, tuple, nullptr);
|
||||
Py_DECREF(tuple);
|
||||
return result;
|
||||
}
|
||||
# define _PyObject_FastCall _PyObject_FastCall
|
||||
#endif
|
||||
|
||||
// Python versions before 3.6 didn't require longlong support to be enabled.
|
||||
@ -161,6 +179,21 @@ extern EXPCL_INTERROGATEDB PyTupleObject Dtool_EmptyTuple;
|
||||
# define PyDict_GET_SIZE(mp) (((PyDictObject *)mp)->ma_used)
|
||||
#endif
|
||||
|
||||
#ifndef Py_RETURN_RICHCOMPARE
|
||||
# define Py_RETURN_RICHCOMPARE(val1, val2, op) \
|
||||
do { \
|
||||
switch (op) { \
|
||||
NODEFAULT \
|
||||
case Py_EQ: if ((val1) == (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
case Py_NE: if ((val1) != (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
case Py_LT: if ((val1) < (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
case Py_GT: if ((val1) > (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
case Py_LE: if ((val1) <= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
case Py_GE: if ((val1) >= (val2)) Py_RETURN_TRUE; Py_RETURN_FALSE; \
|
||||
} \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* Other Python implementations */
|
||||
|
||||
// _PyErr_OCCURRED is an undocumented macro version of PyErr_Occurred.
|
||||
|
@ -62,6 +62,37 @@ DtoolInstance_GetPointer(PyObject *self, T *&into, Dtool_PyTypedObject &target_c
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to create a hash from a wrapped Python object.
|
||||
*/
|
||||
INLINE Py_hash_t DtoolInstance_HashPointer(PyObject *self) {
|
||||
if (self != nullptr && DtoolInstance_Check(self)) {
|
||||
return (Py_hash_t)(intptr_t)DtoolInstance_VOID_PTR(self);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Python 2-style comparison function that compares objects by pointer.
|
||||
*/
|
||||
INLINE int DtoolInstance_ComparePointers(PyObject *v1, PyObject *v2) {
|
||||
void *v1_this = DtoolInstance_Check(v1) ? DtoolInstance_VOID_PTR(v1) : nullptr;
|
||||
void *v2_this = DtoolInstance_Check(v2) ? DtoolInstance_VOID_PTR(v2) : nullptr;
|
||||
if (v1_this != nullptr && v2_this != nullptr) {
|
||||
return (v1_this > v2_this) - (v1_this < v2_this);
|
||||
} else {
|
||||
return (v1 > v2) - (v1 < v2);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rich comparison function that compares objects by pointer.
|
||||
*/
|
||||
INLINE PyObject *DtoolInstance_RichComparePointers(PyObject *v1, PyObject *v2, int op) {
|
||||
int cmpval = DtoolInstance_ComparePointers(v1, v2);
|
||||
Py_RETURN_RICHCOMPARE(cmpval, 0, op);
|
||||
}
|
||||
|
||||
/**
|
||||
* These functions wrap a pointer for a class that defines get_type_handle().
|
||||
*/
|
||||
|
@ -143,13 +143,6 @@ DTOOL_Call_GetPointerThisClass(PyObject *self, Dtool_PyTypedObject *classdef,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void *DTOOL_Call_GetPointerThis(PyObject *self) {
|
||||
if (self != nullptr && DtoolInstance_Check(self)) {
|
||||
return DtoolInstance_VOID_PTR(self);
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is similar to a PyErr_Occurred() check, except that it also checks
|
||||
* Notify to see if an assertion has occurred. If that is the case, then it
|
||||
@ -588,10 +581,6 @@ PyObject *Dtool_PyModuleInitHelper(LibraryDef *defs[], const char *modulename) {
|
||||
return Dtool_Raise_TypeError("PyType_Ready(Dtool_StaticProperty_Type)");
|
||||
}
|
||||
|
||||
#ifdef Py_TRACE_REFS
|
||||
_Py_AddToAllObjects((PyObject *)&Dtool_EmptyTuple, 0);
|
||||
#endif
|
||||
|
||||
// Initialize the base class of everything.
|
||||
Dtool_PyModuleClassInit_DTOOL_SUPER_BASE(nullptr);
|
||||
}
|
||||
@ -715,7 +704,7 @@ PyObject *Dtool_BorrowThisReference(PyObject *self, PyObject *args) {
|
||||
|
||||
// We do expose a dictionay for dtool classes .. this should be removed at
|
||||
// some point..
|
||||
PyObject *Dtool_AddToDictionary(PyObject *self1, PyObject *args) {
|
||||
EXPCL_INTERROGATEDB PyObject *Dtool_AddToDictionary(PyObject *self1, PyObject *args) {
|
||||
PyObject *self;
|
||||
PyObject *subject;
|
||||
PyObject *key;
|
||||
@ -734,127 +723,6 @@ PyObject *Dtool_AddToDictionary(PyObject *self1, PyObject *args) {
|
||||
return Py_None;
|
||||
}
|
||||
|
||||
Py_hash_t DTOOL_PyObject_HashPointer(PyObject *self) {
|
||||
if (self != nullptr && DtoolInstance_Check(self)) {
|
||||
return (Py_hash_t)(intptr_t)DtoolInstance_VOID_PTR(self);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Compare v to w. Return
|
||||
-1 if v < w or exception (PyErr_Occurred() true in latter case).
|
||||
0 if v == w.
|
||||
1 if v > w.
|
||||
XXX The docs (C API manual) say the return value is undefined in case
|
||||
XXX of error.
|
||||
*/
|
||||
|
||||
int DTOOL_PyObject_ComparePointers(PyObject *v1, PyObject *v2) {
|
||||
// try this compare
|
||||
void *v1_this = DTOOL_Call_GetPointerThis(v1);
|
||||
void *v2_this = DTOOL_Call_GetPointerThis(v2);
|
||||
if (v1_this != nullptr && v2_this != nullptr) { // both are our types...
|
||||
if (v1_this < v2_this) {
|
||||
return -1;
|
||||
}
|
||||
if (v1_this > v2_this) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// ok self compare...
|
||||
if (v1 < v2) {
|
||||
return -1;
|
||||
}
|
||||
if (v1 > v2) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int DTOOL_PyObject_Compare(PyObject *v1, PyObject *v2) {
|
||||
// First try compareTo function..
|
||||
PyObject * func = PyObject_GetAttrString(v1, "compare_to");
|
||||
if (func == nullptr) {
|
||||
PyErr_Clear();
|
||||
} else {
|
||||
#if PY_VERSION_HEX >= 0x03060000
|
||||
PyObject *res = _PyObject_FastCall(func, &v2, 1);
|
||||
#else
|
||||
PyObject *res = nullptr;
|
||||
PyObject *args = PyTuple_Pack(1, v2);
|
||||
if (args != nullptr) {
|
||||
res = PyObject_Call(func, args, nullptr);
|
||||
Py_DECREF(args);
|
||||
}
|
||||
#endif
|
||||
Py_DECREF(func);
|
||||
PyErr_Clear(); // just in case the function threw an error
|
||||
// only use if the function returns an INT... hmm
|
||||
if (res != nullptr) {
|
||||
if (PyLong_Check(res)) {
|
||||
long answer = PyLong_AsLong(res);
|
||||
Py_DECREF(res);
|
||||
|
||||
// Python really wants us to return strictly -1, 0, or 1.
|
||||
if (answer < 0) {
|
||||
return -1;
|
||||
} else if (answer > 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
else if (PyInt_Check(res)) {
|
||||
long answer = PyInt_AsLong(res);
|
||||
Py_DECREF(res);
|
||||
|
||||
// Python really wants us to return strictly -1, 0, or 1.
|
||||
if (answer < 0) {
|
||||
return -1;
|
||||
} else if (answer > 0) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Py_DECREF(res);
|
||||
}
|
||||
}
|
||||
|
||||
return DTOOL_PyObject_ComparePointers(v1, v2);
|
||||
}
|
||||
|
||||
PyObject *DTOOL_PyObject_RichCompare(PyObject *v1, PyObject *v2, int op) {
|
||||
int cmpval = DTOOL_PyObject_Compare(v1, v2);
|
||||
bool result;
|
||||
switch (op) {
|
||||
NODEFAULT
|
||||
case Py_LT:
|
||||
result = (cmpval < 0);
|
||||
break;
|
||||
case Py_LE:
|
||||
result = (cmpval <= 0);
|
||||
break;
|
||||
case Py_EQ:
|
||||
result = (cmpval == 0);
|
||||
break;
|
||||
case Py_NE:
|
||||
result = (cmpval != 0);
|
||||
break;
|
||||
case Py_GT:
|
||||
result = (cmpval > 0);
|
||||
break;
|
||||
case Py_GE:
|
||||
result = (cmpval >= 0);
|
||||
break;
|
||||
}
|
||||
return PyBool_FromLong(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a support function for a synthesized __copy__() method from a C++
|
||||
* make_copy() method.
|
||||
@ -875,15 +743,7 @@ PyObject *copy_from_make_copy(PyObject *self, PyObject *noargs) {
|
||||
*/
|
||||
PyObject *copy_from_copy_constructor(PyObject *self, PyObject *noargs) {
|
||||
PyObject *callable = (PyObject *)Py_TYPE(self);
|
||||
|
||||
#if PY_VERSION_HEX >= 0x03060000
|
||||
PyObject *result = _PyObject_FastCall(callable, &self, 1);
|
||||
#else
|
||||
PyObject *args = PyTuple_Pack(1, self);
|
||||
PyObject *result = PyObject_Call(callable, args, nullptr);
|
||||
Py_DECREF(args);
|
||||
#endif
|
||||
return result;
|
||||
return _PyObject_FastCall(callable, &self, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -195,8 +195,6 @@ EXPCL_INTERROGATEDB void DTOOL_Call_ExtractThisPointerForType(PyObject *self, Dt
|
||||
|
||||
EXPCL_INTERROGATEDB void *DTOOL_Call_GetPointerThisClass(PyObject *self, Dtool_PyTypedObject *classdef, int param, const std::string &function_name, bool const_ok, bool report_errors);
|
||||
|
||||
EXPCL_INTERROGATEDB void *DTOOL_Call_GetPointerThis(PyObject *self);
|
||||
|
||||
EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer(PyObject *self, Dtool_PyTypedObject &classdef, void **answer);
|
||||
|
||||
EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self, Dtool_PyTypedObject &classdef,
|
||||
@ -205,6 +203,10 @@ EXPCL_INTERROGATEDB bool Dtool_Call_ExtractThisPointer_NonConst(PyObject *self,
|
||||
template<class T> INLINE bool DtoolInstance_GetPointer(PyObject *self, T *&into);
|
||||
template<class T> INLINE bool DtoolInstance_GetPointer(PyObject *self, T *&into, Dtool_PyTypedObject &classdef);
|
||||
|
||||
INLINE Py_hash_t DtoolInstance_HashPointer(PyObject *self);
|
||||
INLINE int DtoolInstance_ComparePointers(PyObject *v1, PyObject *v2);
|
||||
INLINE PyObject *DtoolInstance_RichComparePointers(PyObject *v1, PyObject *v2, int op);
|
||||
|
||||
// Functions related to error reporting.
|
||||
EXPCL_INTERROGATEDB bool _Dtool_CheckErrorOccurred();
|
||||
|
||||
@ -327,25 +329,8 @@ EXPCL_INTERROGATEDB PyObject *Dtool_PyModuleInitHelper(LibraryDef *defs[], const
|
||||
// historical inharatence in the for of "is this instance of"..
|
||||
EXPCL_INTERROGATEDB PyObject *Dtool_BorrowThisReference(PyObject *self, PyObject *args);
|
||||
|
||||
// We do expose a dictionay for dtool classes .. this should be removed at
|
||||
// some point..
|
||||
EXPCL_INTERROGATEDB PyObject *Dtool_AddToDictionary(PyObject *self1, PyObject *args);
|
||||
|
||||
|
||||
EXPCL_INTERROGATEDB Py_hash_t DTOOL_PyObject_HashPointer(PyObject *obj);
|
||||
|
||||
/* Compare v to w. Return
|
||||
-1 if v < w or exception (PyErr_Occurred() true in latter case).
|
||||
0 if v == w.
|
||||
1 if v > w.
|
||||
XXX The docs (C API manual) say the return value is undefined in case
|
||||
XXX of error.
|
||||
*/
|
||||
|
||||
EXPCL_INTERROGATEDB int DTOOL_PyObject_ComparePointers(PyObject *v1, PyObject *v2);
|
||||
EXPCL_INTERROGATEDB int DTOOL_PyObject_Compare(PyObject *v1, PyObject *v2);
|
||||
|
||||
EXPCL_INTERROGATEDB PyObject *DTOOL_PyObject_RichCompare(PyObject *v1, PyObject *v2, int op);
|
||||
#define DTOOL_PyObject_HashPointer DtoolInstance_HashPointer
|
||||
#define DTOOL_PyObject_ComparePointers DtoolInstance_ComparePointers
|
||||
|
||||
EXPCL_INTERROGATEDB PyObject *
|
||||
copy_from_make_copy(PyObject *self, PyObject *noargs);
|
||||
|
@ -1,3 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdtypedefs.h>
|
||||
|
||||
#define EXIT_SUCCESS 0
|
||||
|
@ -192,6 +192,7 @@ extern "C" {
|
||||
EXPCL_PYSTUB int _PyArg_Parse_SizeT(...);
|
||||
EXPCL_PYSTUB int _PyErr_BadInternalCall(...);
|
||||
EXPCL_PYSTUB int _PyLong_AsByteArray(...);
|
||||
EXPCL_PYSTUB int _PyLong_Sign(...);
|
||||
EXPCL_PYSTUB int _PyObject_CallFunction_SizeT(...);
|
||||
EXPCL_PYSTUB int _PyObject_CallMethod_SizeT(...);
|
||||
EXPCL_PYSTUB int _PyObject_DebugFree(...);
|
||||
@ -421,6 +422,7 @@ int _PyArg_ParseTupleAndKeywords_SizeT(...) { return 0; };
|
||||
int _PyArg_Parse_SizeT(...) { return 0; };
|
||||
int _PyErr_BadInternalCall(...) { return 0; };
|
||||
int _PyLong_AsByteArray(...) { return 0; };
|
||||
int _PyLong_Sign(...) { return 0; };
|
||||
int _PyObject_CallFunction_SizeT(...) { return 0; };
|
||||
int _PyObject_CallMethod_SizeT(...) { return 0; };
|
||||
int _PyObject_DebugFree(...) { return 0; };
|
||||
|
@ -15,9 +15,11 @@ try:
|
||||
import queue
|
||||
else:
|
||||
import Queue as queue
|
||||
except KeyboardInterrupt:
|
||||
raise
|
||||
except:
|
||||
print("You are either using an incomplete or an old version of Python!")
|
||||
print("Please install the development package of Python 2.x and try again.")
|
||||
print("Please install the development package of Python and try again.")
|
||||
exit(1)
|
||||
|
||||
from makepandacore import *
|
||||
|
@ -34,6 +34,7 @@ PUBLISHED:
|
||||
explicit CharacterSlider(PartGroup *parent, const std::string &name);
|
||||
virtual ~CharacterSlider();
|
||||
|
||||
public:
|
||||
virtual PartGroup *make_copy() const;
|
||||
|
||||
virtual bool update_internals(PartBundle *root, PartGroup *parent,
|
||||
|
@ -18,8 +18,8 @@
|
||||
#include "notifyCategoryProxy.h"
|
||||
#include "configVariableBool.h"
|
||||
|
||||
NotifyCategoryDecl(cocoadisplay, EXPCL_PANDAGL, EXPTP_PANDAGL);
|
||||
NotifyCategoryDecl(cocoadisplay, EXPCL_PANDA_COCOADISPLAY, EXPTP_PANDA_COCOADISPLAY);
|
||||
|
||||
extern EXPCL_PANDAGL void init_libcocoadisplay();
|
||||
extern EXPCL_PANDA_COCOADISPLAY void init_libcocoadisplay();
|
||||
|
||||
#endif
|
||||
|
@ -20,8 +20,8 @@
|
||||
#include "dconfig.h"
|
||||
#include "pandaSystem.h"
|
||||
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDAGL)
|
||||
#error Buildsystem error: BUILDING_PANDAGL not defined
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDA_COCOADISPLAY)
|
||||
#error Buildsystem error: BUILDING_PANDA_COCOADISPLAY not defined
|
||||
#endif
|
||||
|
||||
Configure(config_cocoadisplay);
|
||||
|
@ -33,7 +33,7 @@
|
||||
* This class exists for name scoping only. Don't use the constructor
|
||||
* directly; use one of the make_* methods.
|
||||
*/
|
||||
class EXPCL_PANDA_DISPLAY NativeWindowHandle : public WindowHandle {
|
||||
class EXPCL_PANDA_DISPLAY NativeWindowHandle final : public WindowHandle {
|
||||
private:
|
||||
INLINE NativeWindowHandle();
|
||||
INLINE NativeWindowHandle(const NativeWindowHandle ©);
|
||||
|
@ -58,8 +58,8 @@
|
||||
|
||||
#include "dconfig.h"
|
||||
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDAEGG)
|
||||
#error Buildsystem error: BUILDING_PANDAEGG not defined
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDA_EGG)
|
||||
#error Buildsystem error: BUILDING_PANDA_EGG not defined
|
||||
#endif
|
||||
|
||||
Configure(config_egg);
|
||||
|
@ -22,26 +22,26 @@
|
||||
#include "configVariableDouble.h"
|
||||
#include "configVariableInt.h"
|
||||
|
||||
NotifyCategoryDecl(egg, EXPCL_PANDAEGG, EXPTP_PANDAEGG);
|
||||
NotifyCategoryDecl(egg, EXPCL_PANDA_EGG, EXPTP_PANDA_EGG);
|
||||
|
||||
extern ConfigVariableBool egg_support_old_anims;
|
||||
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_mesh;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_retesselate_coplanar;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_unroll_fans;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_show_tstrips;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_show_qsheets;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_show_quads;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_mesh;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_retesselate_coplanar;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_unroll_fans;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_show_tstrips;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_show_qsheets;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_show_quads;
|
||||
#define egg_false_color (egg_show_tstrips | egg_show_qsheets | egg_show_quads)
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_subdivide_polys;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_consider_fans;
|
||||
extern EXPCL_PANDAEGG ConfigVariableDouble egg_max_tfan_angle;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_min_tfan_tris;
|
||||
extern EXPCL_PANDAEGG ConfigVariableDouble egg_coplanar_threshold;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_test_vref_integrity;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_recursion_limit;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_precision;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_subdivide_polys;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableBool egg_consider_fans;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableDouble egg_max_tfan_angle;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableInt egg_min_tfan_tris;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableDouble egg_coplanar_threshold;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableInt egg_test_vref_integrity;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableInt egg_recursion_limit;
|
||||
extern EXPCL_PANDA_EGG ConfigVariableInt egg_precision;
|
||||
|
||||
extern EXPCL_PANDAEGG void init_libegg();
|
||||
extern EXPCL_PANDA_EGG void init_libegg();
|
||||
|
||||
#endif
|
||||
|
@ -27,7 +27,7 @@
|
||||
* A base class for EggSAnimData and EggXfmAnimData, which contain rows and
|
||||
* columns of numbers.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggAnimData : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggAnimData : public EggNode {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggAnimData(const std::string &name = "");
|
||||
INLINE EggAnimData(const EggAnimData ©);
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* This corresponds to an <AnimPreload> entry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggAnimPreload : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggAnimPreload : public EggNode {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggAnimPreload(const std::string &name = "");
|
||||
INLINE EggAnimPreload(const EggAnimPreload ©);
|
||||
|
@ -30,7 +30,7 @@
|
||||
* EggPolygon level with multiple appearances of the EggObject base class.
|
||||
* And making EggObject a virtual base class is just no fun.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggAttributes : public MemoryBase {
|
||||
class EXPCL_PANDA_EGG EggAttributes : public MemoryBase {
|
||||
PUBLISHED:
|
||||
EggAttributes();
|
||||
EggAttributes(const EggAttributes ©);
|
||||
|
@ -23,7 +23,7 @@
|
||||
* of node that will never be read in from an egg file, but can only exist in
|
||||
* the egg scene graph if it is created via the use of an EggBinMaker.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggBin : public EggGroup {
|
||||
class EXPCL_PANDA_EGG EggBin : public EggGroup {
|
||||
PUBLISHED:
|
||||
explicit EggBin(const std::string &name = "");
|
||||
EggBin(const EggGroup ©);
|
||||
|
@ -139,7 +139,7 @@ class EggBinMaker;
|
||||
* This is just an STL function object, used to sort nodes within EggBinMaker.
|
||||
* It's part of the private interface; ignore it.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggBinMakerCompareNodes {
|
||||
class EXPCL_PANDA_EGG EggBinMakerCompareNodes {
|
||||
public:
|
||||
EggBinMakerCompareNodes() {
|
||||
// We need to have a default constructor to compile, but it should never
|
||||
@ -158,7 +158,7 @@ public:
|
||||
* abstract class; to use it you must subclass off of it. See the somewhat
|
||||
* lengthy comment above.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggBinMaker : public EggObject {
|
||||
class EXPCL_PANDA_EGG EggBinMaker : public EggObject {
|
||||
PUBLISHED:
|
||||
EggBinMaker();
|
||||
~EggBinMaker();
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* A comment that appears in an egg file within a <Comment> entry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggComment : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggComment : public EggNode {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggComment(const std::string &node_name, const std::string &comment);
|
||||
INLINE EggComment(const EggComment ©);
|
||||
|
@ -57,7 +57,7 @@ get_shading() const {
|
||||
if (!first_component->has_normal()) {
|
||||
first_component = this;
|
||||
}
|
||||
for (int i = 1; i < get_num_components(); i++) {
|
||||
for (size_t i = 1; i < get_num_components(); ++i) {
|
||||
const EggAttributes *component = get_component(i);
|
||||
if (!component->has_normal()) {
|
||||
component = this;
|
||||
@ -74,7 +74,7 @@ get_shading() const {
|
||||
if (!first_component->has_color()) {
|
||||
first_component = this;
|
||||
}
|
||||
for (int i = 1; i < get_num_components(); i++) {
|
||||
for (size_t i = 1; i < get_num_components(); ++i) {
|
||||
const EggAttributes *component = get_component(i);
|
||||
if (!component->has_color()) {
|
||||
component = this;
|
||||
@ -295,7 +295,7 @@ apply_last_attribute() {
|
||||
// The first component gets applied to the third vertex, and so on from
|
||||
// there.
|
||||
int num_lead_vertices = get_num_lead_vertices();
|
||||
for (int i = 0; i < get_num_components(); i++) {
|
||||
for (size_t i = 0; i < get_num_components(); ++i) {
|
||||
EggAttributes *component = get_component(i);
|
||||
do_apply_flat_attribute(i + num_lead_vertices, component);
|
||||
}
|
||||
@ -313,7 +313,7 @@ void EggCompositePrimitive::
|
||||
apply_first_attribute() {
|
||||
// The first component gets applied to the first vertex, and so on from
|
||||
// there.
|
||||
for (int i = 0; i < get_num_components(); i++) {
|
||||
for (size_t i = 0; i < get_num_components(); ++i) {
|
||||
EggAttributes *component = get_component(i);
|
||||
do_apply_flat_attribute(i, component);
|
||||
}
|
||||
|
@ -23,7 +23,7 @@
|
||||
* which include several component triangles, each of which might have its own
|
||||
* color and/or normal.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggCompositePrimitive : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggCompositePrimitive : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggCompositePrimitive(const std::string &name = "");
|
||||
INLINE EggCompositePrimitive(const EggCompositePrimitive ©);
|
||||
|
@ -26,7 +26,7 @@
|
||||
* with the enum EggData::CoordinateSystem, which is the value contained by
|
||||
* this entry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggCoordinateSystem : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggCoordinateSystem : public EggNode {
|
||||
PUBLISHED:
|
||||
INLINE EggCoordinateSystem(CoordinateSystem value = CS_default);
|
||||
INLINE EggCoordinateSystem(const EggCoordinateSystem ©);
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* A parametric curve of some kind. See EggNurbsCurve.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggCurve : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggCurve : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggCurve(const std::string &name = "");
|
||||
INLINE EggCurve(const EggCurve ©);
|
||||
|
@ -34,7 +34,7 @@ class BamCacheRecord;
|
||||
* begin() and end() calls. The children of the EggData class are the
|
||||
* toplevel nodes in the egg file.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggData : public EggGroupNode {
|
||||
class EXPCL_PANDA_EGG EggData : public EggGroupNode {
|
||||
PUBLISHED:
|
||||
INLINE EggData();
|
||||
INLINE EggData(const EggData ©);
|
||||
|
@ -22,7 +22,7 @@
|
||||
* Defines a reference to another egg file which should be inserted at this
|
||||
* point.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggExternalReference : public EggFilenameNode {
|
||||
class EXPCL_PANDA_EGG EggExternalReference : public EggFilenameNode {
|
||||
PUBLISHED:
|
||||
explicit EggExternalReference(const std::string &node_name, const std::string &filename);
|
||||
EggExternalReference(const EggExternalReference ©);
|
||||
|
@ -24,7 +24,7 @@
|
||||
* file relative to the directory the egg file was loaded in. It is a base
|
||||
* class for EggTexture and EggExternalReference.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggFilenameNode : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggFilenameNode : public EggNode {
|
||||
PUBLISHED:
|
||||
INLINE EggFilenameNode();
|
||||
INLINE explicit EggFilenameNode(const std::string &node_name, const Filename &filename);
|
||||
|
@ -31,7 +31,7 @@
|
||||
* The main glue of the egg hierarchy, this corresponds to the <Group>,
|
||||
* <Instance>, and <Joint> type nodes.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggGroup : public EggGroupNode, public EggRenderMode, public EggTransform {
|
||||
class EXPCL_PANDA_EGG EggGroup : public EggGroupNode, public EggRenderMode, public EggTransform {
|
||||
PUBLISHED:
|
||||
typedef pmap<PT_EggVertex, double> VertexRef;
|
||||
typedef pmap<std::string, std::string> TagData;
|
||||
|
@ -43,7 +43,7 @@ class DSearchPath;
|
||||
* to manipulate the list. The list may also be operated on (read-only) via
|
||||
* iterators and begin()/end().
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggGroupNode : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggGroupNode : public EggNode {
|
||||
|
||||
// This is a bit of private interface stuff that must be here as a forward
|
||||
// reference. This allows us to define the EggGroupNode as an STL
|
||||
|
@ -23,7 +23,7 @@
|
||||
* EggGroup nodes. It's not called automatically; you must invoke it yourself
|
||||
* if you want it.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggGroupUniquifier : public EggNameUniquifier {
|
||||
class EXPCL_PANDA_EGG EggGroupUniquifier : public EggNameUniquifier {
|
||||
PUBLISHED:
|
||||
explicit EggGroupUniquifier(bool filter_names = true);
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
* A line segment, or a series of connected line segments, defined by a <Line>
|
||||
* entry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggLine : public EggCompositePrimitive {
|
||||
class EXPCL_PANDA_EGG EggLine : public EggCompositePrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggLine(const std::string &name = "");
|
||||
INLINE EggLine(const EggLine ©);
|
||||
|
@ -23,7 +23,7 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggMaterial : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggMaterial : public EggNode {
|
||||
PUBLISHED:
|
||||
explicit EggMaterial(const std::string &mref_name);
|
||||
EggMaterial(const EggMaterial ©);
|
||||
@ -151,7 +151,7 @@ private:
|
||||
* Returns true if the two referenced EggMaterial pointers are in sorted
|
||||
* order, false otherwise.
|
||||
*/
|
||||
class EXPCL_PANDAEGG UniqueEggMaterials {
|
||||
class EXPCL_PANDA_EGG UniqueEggMaterials {
|
||||
public:
|
||||
INLINE UniqueEggMaterials(int eq = ~0);
|
||||
INLINE bool operator ()(const EggMaterial *t1, const EggMaterial *t2) const;
|
||||
|
@ -27,7 +27,7 @@
|
||||
* materials from an egg file and sort them all together; it can also manage
|
||||
* the creation of unique materials and the assignment of unique MRef names.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggMaterialCollection {
|
||||
class EXPCL_PANDA_EGG EggMaterialCollection {
|
||||
|
||||
// This is a bit of private interface stuff that must be here as a forward
|
||||
// reference. This allows us to define the EggMaterialCollection as an STL
|
||||
|
@ -49,8 +49,8 @@ private:
|
||||
// I'd love to export these, but it produces a strange linker issue with Mac
|
||||
// OS X's version of GCC. We'll do it only on Windows, then.
|
||||
#ifdef _MSC_VER
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, EggMorph<LVector3d>);
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, EggMorph<LVector4>);
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, EggMorph<LVector3d>);
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, EggMorph<LVector4>);
|
||||
#endif
|
||||
|
||||
typedef EggMorph<LVector3d> EggMorphVertex;
|
||||
|
@ -15,20 +15,20 @@
|
||||
|
||||
// Continue all of the vector import definitions.
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE LVector3d
|
||||
#define NAME vector_LVector3d
|
||||
#include "vector_src.cxx"
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE LVector2d
|
||||
#define NAME vector_LVector2d
|
||||
#include "vector_src.cxx"
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE LVector4
|
||||
#define NAME vector_LVector4
|
||||
#include "vector_src.cxx"
|
||||
|
@ -56,7 +56,7 @@ class EggNode;
|
||||
* hierarchy. It is an abstract class; to use it you must subclass off of it.
|
||||
* See the comment above.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggNameUniquifier : public EggObject {
|
||||
class EXPCL_PANDA_EGG EggNameUniquifier : public EggObject {
|
||||
PUBLISHED:
|
||||
EggNameUniquifier();
|
||||
~EggNameUniquifier();
|
||||
|
@ -23,7 +23,7 @@
|
||||
/**
|
||||
* This is a fairly low-level base class--any egg object that has a name.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggNamedObject : public EggObject, public Namable {
|
||||
class EXPCL_PANDA_EGG EggNamedObject : public EggObject, public Namable {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggNamedObject(const std::string &name = "");
|
||||
INLINE EggNamedObject(const EggNamedObject ©);
|
||||
|
@ -32,7 +32,7 @@ class EggTextureCollection;
|
||||
* This includes groups, joints, polygons, vertex pools, etc., but does not
|
||||
* include things like vertices.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggNode : public EggNamedObject {
|
||||
class EXPCL_PANDA_EGG EggNode : public EggNamedObject {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggNode(const std::string &name = "");
|
||||
INLINE EggNode(const EggNode ©);
|
||||
|
@ -23,7 +23,7 @@
|
||||
/**
|
||||
* A parametric NURBS curve.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggNurbsCurve : public EggCurve {
|
||||
class EXPCL_PANDA_EGG EggNurbsCurve : public EggCurve {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggNurbsCurve(const std::string &name = "");
|
||||
INLINE EggNurbsCurve(const EggNurbsCurve ©);
|
||||
|
@ -24,7 +24,7 @@
|
||||
/**
|
||||
* A parametric NURBS surface.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggNurbsSurface : public EggSurface {
|
||||
class EXPCL_PANDA_EGG EggNurbsSurface : public EggSurface {
|
||||
PUBLISHED:
|
||||
typedef plist< PT(EggNurbsCurve) > Curves;
|
||||
typedef Curves Loop;
|
||||
|
@ -26,7 +26,7 @@ class EggTransform;
|
||||
* The highest-level base class in the egg directory. (Almost) all things egg
|
||||
* inherit from this.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggObject : public TypedReferenceCount {
|
||||
class EXPCL_PANDA_EGG EggObject : public TypedReferenceCount {
|
||||
PUBLISHED:
|
||||
EggObject();
|
||||
EggObject(const EggObject ©);
|
||||
|
@ -29,7 +29,7 @@
|
||||
* process it, and write the egg file out again before resetting the
|
||||
* parameters again.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggParameters {
|
||||
class EXPCL_PANDA_EGG EggParameters {
|
||||
public:
|
||||
constexpr EggParameters() = default;
|
||||
|
||||
@ -54,6 +54,6 @@ public:
|
||||
double _table_threshold = 0.0001;
|
||||
};
|
||||
|
||||
extern EXPCL_PANDAEGG EggParameters *egg_parameters;
|
||||
extern EXPCL_PANDA_EGG EggParameters *egg_parameters;
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,7 @@
|
||||
* A single "patch", a special primitive to be rendered only with a
|
||||
* tessellation shader.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPatch : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggPatch : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggPatch(const std::string &name = "");
|
||||
INLINE EggPatch(const EggPatch ©);
|
||||
|
@ -22,7 +22,7 @@
|
||||
* A single point, or a collection of points as defined by a single
|
||||
* <PointLight> entry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPoint : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggPoint : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggPoint(const std::string &name = "");
|
||||
INLINE EggPoint(const EggPoint ©);
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* A single polygon.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPolygon : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggPolygon : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggPolygon(const std::string &name = "");
|
||||
INLINE EggPolygon(const EggPolygon ©);
|
||||
|
@ -29,7 +29,7 @@
|
||||
* these are not sufficient, you can always rederive your own further
|
||||
* specialization of this class.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPolysetMaker : public EggBinMaker {
|
||||
class EXPCL_PANDA_EGG EggPolysetMaker : public EggBinMaker {
|
||||
PUBLISHED:
|
||||
// The BinNumber serves to identify why a particular EggBin was created.
|
||||
enum BinNumber {
|
||||
|
@ -23,7 +23,7 @@
|
||||
* textures, materials, and vertex pools prior to writing out an egg file.
|
||||
* It's automatically called by EggData prior to writing out an egg file.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPoolUniquifier : public EggNameUniquifier {
|
||||
class EXPCL_PANDA_EGG EggPoolUniquifier : public EggNameUniquifier {
|
||||
PUBLISHED:
|
||||
EggPoolUniquifier();
|
||||
|
||||
|
@ -227,7 +227,7 @@ get_shading() const {
|
||||
if (!first_vertex->has_normal()) {
|
||||
first_vertex = this;
|
||||
}
|
||||
for (int i = 1; i < get_num_vertices(); i++) {
|
||||
for (size_t i = 1; i < get_num_vertices(); ++i) {
|
||||
const EggAttributes *vertex = get_vertex(i);
|
||||
if (!vertex->has_normal()) {
|
||||
vertex = this;
|
||||
@ -244,7 +244,7 @@ get_shading() const {
|
||||
if (!first_vertex->has_color()) {
|
||||
first_vertex = this;
|
||||
}
|
||||
for (int i = 1; i < get_num_vertices(); i++) {
|
||||
for (size_t i = 1; i < get_num_vertices(); ++i) {
|
||||
const EggAttributes *vertex = get_vertex(i);
|
||||
if (!vertex->has_color()) {
|
||||
vertex = this;
|
||||
@ -461,9 +461,7 @@ apply_first_attribute() {
|
||||
void EggPrimitive::
|
||||
post_apply_flat_attribute() {
|
||||
if (!empty()) {
|
||||
for (int i = 0; i < (int)size(); i++) {
|
||||
EggVertex *vertex = get_vertex(i);
|
||||
|
||||
for (EggVertex *vertex : _vertices) {
|
||||
// Use set_normal() instead of copy_normal(), to avoid getting the
|
||||
// morphs--we don't want them here, since we're just putting a bogus
|
||||
// value on the normal anyway.
|
||||
|
@ -44,7 +44,7 @@ class EggVertexPool;
|
||||
* can. However, it is necessary that all vertices belong to the same vertex
|
||||
* pool.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggPrimitive : public EggNode, public EggAttributes,
|
||||
class EXPCL_PANDA_EGG EggPrimitive : public EggNode, public EggAttributes,
|
||||
public EggRenderMode
|
||||
{
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
* EggPolygon level with multiple appearances of the EggObject base class.
|
||||
* And making EggObject a virtual base class is just no fun.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggRenderMode {
|
||||
class EXPCL_PANDA_EGG EggRenderMode {
|
||||
PUBLISHED:
|
||||
EggRenderMode();
|
||||
INLINE EggRenderMode(const EggRenderMode ©);
|
||||
@ -122,12 +122,12 @@ private:
|
||||
static TypeHandle _type_handle;
|
||||
};
|
||||
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggRenderMode::AlphaMode mode);
|
||||
EXPCL_PANDAEGG std::istream &operator >> (std::istream &in, EggRenderMode::AlphaMode &mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggRenderMode::AlphaMode mode);
|
||||
EXPCL_PANDA_EGG std::istream &operator >> (std::istream &in, EggRenderMode::AlphaMode &mode);
|
||||
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggRenderMode::DepthWriteMode mode);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggRenderMode::DepthTestMode mode);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggRenderMode::VisibilityMode mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggRenderMode::DepthWriteMode mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggRenderMode::DepthTestMode mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggRenderMode::VisibilityMode mode);
|
||||
|
||||
#include "eggRenderMode.I"
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
* Corresponding to an <S$Anim> entry, this stores a single column of numbers,
|
||||
* for instance for a morph target, or as one column in an EggXfmSAnim.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggSAnimData : public EggAnimData {
|
||||
class EXPCL_PANDA_EGG EggSAnimData : public EggAnimData {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggSAnimData(const std::string &name = "");
|
||||
INLINE EggSAnimData(const EggSAnimData ©);
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* A parametric surface of some kind. See EggNurbsSurface.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggSurface : public EggPrimitive {
|
||||
class EXPCL_PANDA_EGG EggSurface : public EggPrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggSurface(const std::string &name = "");
|
||||
INLINE EggSurface(const EggSurface ©);
|
||||
|
@ -26,7 +26,7 @@
|
||||
* different kinds of switching conditions; presently, only a <Distance> type
|
||||
* is actually supported.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggSwitchCondition : public EggObject {
|
||||
class EXPCL_PANDA_EGG EggSwitchCondition : public EggObject {
|
||||
PUBLISHED:
|
||||
virtual EggSwitchCondition *make_copy() const=0;
|
||||
virtual void write(std::ostream &out, int indent_level) const=0;
|
||||
@ -58,7 +58,7 @@ private:
|
||||
* A SwitchCondition that switches the levels-of-detail based on distance from
|
||||
* the camera's eyepoint.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggSwitchConditionDistance : public EggSwitchCondition {
|
||||
class EXPCL_PANDA_EGG EggSwitchConditionDistance : public EggSwitchCondition {
|
||||
PUBLISHED:
|
||||
explicit EggSwitchConditionDistance(double switch_in, double switch_out,
|
||||
const LPoint3d ¢er, double fade = 0.0);
|
||||
|
@ -24,7 +24,7 @@
|
||||
* EggSAnimData or an EggXfmAnimData, which do. It may also be a parent to
|
||||
* another <Table> or <Bundle>, establishing a hierarchy of tables.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTable : public EggGroupNode {
|
||||
class EXPCL_PANDA_EGG EggTable : public EggGroupNode {
|
||||
PUBLISHED:
|
||||
enum TableType {
|
||||
TT_invalid,
|
||||
|
@ -27,7 +27,7 @@
|
||||
/**
|
||||
* Defines a texture map that may be applied to geometry.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTexture : public EggFilenameNode, public EggRenderMode, public EggTransform {
|
||||
class EXPCL_PANDA_EGG EggTexture : public EggFilenameNode, public EggRenderMode, public EggTransform {
|
||||
PUBLISHED:
|
||||
explicit EggTexture(const std::string &tref_name, const Filename &filename);
|
||||
EggTexture(const EggTexture ©);
|
||||
@ -458,7 +458,7 @@ private:
|
||||
* Returns true if the two referenced EggTexture pointers are in sorted order,
|
||||
* false otherwise.
|
||||
*/
|
||||
class EXPCL_PANDAEGG UniqueEggTextures {
|
||||
class EXPCL_PANDA_EGG UniqueEggTextures {
|
||||
public:
|
||||
INLINE UniqueEggTextures(int eq = ~0);
|
||||
INLINE bool operator ()(const EggTexture *t1, const EggTexture *t2) const;
|
||||
@ -470,18 +470,18 @@ INLINE std::ostream &operator << (std::ostream &out, const EggTexture &n) {
|
||||
return out << n.get_filename();
|
||||
}
|
||||
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::TextureType texture_type);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::Format format);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::CompressionMode mode);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::WrapMode mode);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::FilterType type);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::EnvType type);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::CombineMode cm);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::CombineChannel cc);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::CombineSource cs);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::CombineOperand co);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::TexGen tex_gen);
|
||||
EXPCL_PANDAEGG std::ostream &operator << (std::ostream &out, EggTexture::QualityLevel quality_level);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::TextureType texture_type);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::Format format);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::CompressionMode mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::WrapMode mode);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::FilterType type);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::EnvType type);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::CombineMode cm);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::CombineChannel cc);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::CombineSource cs);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::CombineOperand co);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::TexGen tex_gen);
|
||||
EXPCL_PANDA_EGG std::ostream &operator << (std::ostream &out, EggTexture::QualityLevel quality_level);
|
||||
|
||||
#include "eggTexture.I"
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
* from an egg file and sort them all together; it can also manage the
|
||||
* creation of unique textures and the assignment of unique TRef names.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTextureCollection {
|
||||
class EXPCL_PANDA_EGG EggTextureCollection {
|
||||
|
||||
// This is a bit of private interface stuff that must be here as a forward
|
||||
// reference. This allows us to define the EggTextureCollection as an STL
|
||||
|
@ -26,7 +26,7 @@
|
||||
* This may be either a 3-d transform, and therefore described by a 4x4
|
||||
* matrix, or a 2-d transform, described by a 3x3 matrix.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTransform {
|
||||
class EXPCL_PANDA_EGG EggTransform {
|
||||
PUBLISHED:
|
||||
EggTransform();
|
||||
EggTransform(const EggTransform ©);
|
||||
|
@ -57,7 +57,7 @@ apply_first_attribute() {
|
||||
// In the case of a triangle fan, the first vertex of the fan is the common
|
||||
// vertex, so we consider the second vertex to be the key vertex of the
|
||||
// first triangle, and move from there.
|
||||
for (int i = 0; i < get_num_components(); i++) {
|
||||
for (size_t i = 0; i < get_num_components(); ++i) {
|
||||
EggAttributes *component = get_component(i);
|
||||
do_apply_flat_attribute(i + 1, component);
|
||||
}
|
||||
|
@ -22,7 +22,7 @@
|
||||
* A connected fan of triangles. This does not normally appear in an egg
|
||||
* file; it is typically generated as a result of meshing.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTriangleFan : public EggCompositePrimitive {
|
||||
class EXPCL_PANDA_EGG EggTriangleFan : public EggCompositePrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggTriangleFan(const std::string &name = "");
|
||||
INLINE EggTriangleFan(const EggTriangleFan ©);
|
||||
|
@ -22,7 +22,7 @@
|
||||
* A connected strip of triangles. This does not normally appear in an egg
|
||||
* file; it is typically generated as a result of meshing.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggTriangleStrip : public EggCompositePrimitive {
|
||||
class EXPCL_PANDA_EGG EggTriangleStrip : public EggCompositePrimitive {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggTriangleStrip(const std::string &name = "");
|
||||
INLINE EggTriangleStrip(const EggTriangleStrip ©);
|
||||
|
@ -26,7 +26,7 @@
|
||||
* However, this data will not be written out to the disk when the egg file is
|
||||
* written; it is an in-memory object only.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggUserData : public TypedReferenceCount {
|
||||
class EXPCL_PANDA_EGG EggUserData : public TypedReferenceCount {
|
||||
PUBLISHED:
|
||||
INLINE EggUserData();
|
||||
INLINE EggUserData(const EggUserData ©);
|
||||
|
@ -36,7 +36,7 @@ class EggPrimitive;
|
||||
* Any one-, two-, three-, or four-component vertex, possibly with attributes
|
||||
* such as a normal.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggVertex : public EggObject, public EggAttributes {
|
||||
class EXPCL_PANDA_EGG EggVertex : public EggObject, public EggAttributes {
|
||||
public:
|
||||
typedef pset<EggGroup *> GroupRef;
|
||||
typedef pmultiset<EggPrimitive *> PrimitiveRef;
|
||||
@ -211,7 +211,7 @@ INLINE std::ostream &operator << (std::ostream &out, const EggVertex &vert) {
|
||||
* Returns true if the two referenced EggVertex pointers are in sorted order,
|
||||
* false otherwise.
|
||||
*/
|
||||
class EXPCL_PANDAEGG UniqueEggVertices {
|
||||
class EXPCL_PANDA_EGG UniqueEggVertices {
|
||||
public:
|
||||
INLINE bool operator ()(const EggVertex *v1, const EggVertex *v2) const;
|
||||
};
|
||||
|
@ -27,7 +27,7 @@
|
||||
* the vertex data, but will not otherwise interpret it. Presumably, a shader
|
||||
* will process the data later.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggVertexAux : public EggNamedObject {
|
||||
class EXPCL_PANDA_EGG EggVertexAux : public EggNamedObject {
|
||||
PUBLISHED:
|
||||
explicit EggVertexAux(const std::string &name, const LVecBase4d &aux);
|
||||
EggVertexAux(const EggVertexAux ©);
|
||||
|
@ -38,7 +38,7 @@
|
||||
* list. The list may also be operated on (read-only) via iterators and
|
||||
* begin()/end().
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggVertexPool : public EggNode {
|
||||
class EXPCL_PANDA_EGG EggVertexPool : public EggNode {
|
||||
|
||||
// This is a bit of private interface stuff that must be here as a forward
|
||||
// reference. This allows us to define the EggVertexPool as an STL
|
||||
|
@ -26,7 +26,7 @@
|
||||
* multitexturing, there may be multiple sets of UV's on a particular vertex,
|
||||
* each with its own name.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggVertexUV : public EggNamedObject {
|
||||
class EXPCL_PANDA_EGG EggVertexUV : public EggNamedObject {
|
||||
PUBLISHED:
|
||||
explicit EggVertexUV(const std::string &name, const LTexCoordd &uv);
|
||||
explicit EggVertexUV(const std::string &name, const LTexCoord3d &uvw);
|
||||
|
@ -26,7 +26,7 @@
|
||||
* is an older syntax of egg anim table, not often used currently--it's
|
||||
* replaced by EggXfmSAnim.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggXfmAnimData : public EggAnimData {
|
||||
class EXPCL_PANDA_EGG EggXfmAnimData : public EggAnimData {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggXfmAnimData(const std::string &name = "",
|
||||
CoordinateSystem cs = CS_default);
|
||||
|
@ -25,7 +25,7 @@ class EggXfmAnimData;
|
||||
* It's implemented as a group that can contain any number of EggSAnimData
|
||||
* children.
|
||||
*/
|
||||
class EXPCL_PANDAEGG EggXfmSAnim : public EggGroupNode {
|
||||
class EXPCL_PANDA_EGG EggXfmSAnim : public EggGroupNode {
|
||||
PUBLISHED:
|
||||
INLINE explicit EggXfmSAnim(const std::string &name = "",
|
||||
CoordinateSystem cs = CS_default);
|
||||
|
@ -40,7 +40,7 @@ void egg_cleanup_parser();
|
||||
// that has member functions in a union), so we'll use a class instead. That
|
||||
// means we need to declare it externally, here.
|
||||
|
||||
class EXPCL_PANDAEGG EggTokenType {
|
||||
class EXPCL_PANDA_EGG EggTokenType {
|
||||
public:
|
||||
double _number;
|
||||
unsigned long _ulong;
|
||||
|
@ -24,9 +24,9 @@
|
||||
* the template class. It's not strictly necessary, but it doesn't hurt.
|
||||
*/
|
||||
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerToBase<EggMaterial>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerTo<EggMaterial>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggMaterial>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerToBase<EggMaterial>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerTo<EggMaterial>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, ConstPointerTo<EggMaterial>)
|
||||
|
||||
typedef PointerTo<EggMaterial> PT_EggMaterial;
|
||||
typedef ConstPointerTo<EggMaterial> CPT_EggMaterial;
|
||||
|
@ -24,9 +24,9 @@
|
||||
* template class. It's not strictly necessary, but it doesn't hurt.
|
||||
*/
|
||||
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerToBase<EggTexture>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerTo<EggTexture>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggTexture>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerToBase<EggTexture>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerTo<EggTexture>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, ConstPointerTo<EggTexture>)
|
||||
|
||||
typedef PointerTo<EggTexture> PT_EggTexture;
|
||||
typedef ConstPointerTo<EggTexture> CPT_EggTexture;
|
||||
|
@ -24,9 +24,9 @@
|
||||
* template class. It's not strictly necessary, but it doesn't hurt.
|
||||
*/
|
||||
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerToBase<EggVertex>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, PointerTo<EggVertex>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDAEGG, EXPTP_PANDAEGG, ConstPointerTo<EggVertex>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerToBase<EggVertex>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, PointerTo<EggVertex>)
|
||||
EXPORT_TEMPLATE_CLASS(EXPCL_PANDA_EGG, EXPTP_PANDA_EGG, ConstPointerTo<EggVertex>)
|
||||
|
||||
typedef PointerTo<EggVertex> PT_EggVertex;
|
||||
typedef ConstPointerTo<EggVertex> CPT_EggVertex;
|
||||
|
@ -28,8 +28,8 @@
|
||||
* file, rather than defining the vector again.
|
||||
*/
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE PT_EggMaterial
|
||||
#define NAME vector_PT_EggMaterial
|
||||
|
||||
|
@ -28,8 +28,8 @@
|
||||
* file, rather than defining the vector again.
|
||||
*/
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE PT_EggTexture
|
||||
#define NAME vector_PT_EggTexture
|
||||
|
||||
|
@ -13,8 +13,8 @@
|
||||
|
||||
#include "vector_PT_EggVertex.h"
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE PT_EggVertex
|
||||
#define NAME vector_PT_EggVertex
|
||||
|
||||
|
@ -28,8 +28,8 @@
|
||||
* rather than defining the vector again.
|
||||
*/
|
||||
|
||||
#define EXPCL EXPCL_PANDAEGG
|
||||
#define EXPTP EXPTP_PANDAEGG
|
||||
#define EXPCL EXPCL_PANDA_EGG
|
||||
#define EXPTP EXPTP_PANDA_EGG
|
||||
#define TYPE PT_EggVertex
|
||||
#define NAME vector_PT_EggVertex
|
||||
|
||||
|
@ -32,7 +32,7 @@ class AnimChannelMatrixXfmTable;
|
||||
* Converts an EggTable hierarchy, beginning with a <Bundle> entry, into an
|
||||
* AnimBundle hierarchy.
|
||||
*/
|
||||
class EXPCL_PANDAEGG AnimBundleMaker {
|
||||
class EXPCL_PANDA_EGG2PG AnimBundleMaker {
|
||||
public:
|
||||
explicit AnimBundleMaker(EggTable *root);
|
||||
|
||||
|
@ -42,7 +42,7 @@ class PandaNode;
|
||||
* Converts an EggGroup hierarchy, beginning with a group with <Dart> set, to
|
||||
* a character node with joints.
|
||||
*/
|
||||
class EXPCL_PANDAEGG CharacterMaker {
|
||||
class EXPCL_PANDA_EGG2PG CharacterMaker {
|
||||
public:
|
||||
CharacterMaker(EggGroup *root, EggLoader &loader, bool structured = false);
|
||||
|
||||
|
@ -20,8 +20,8 @@
|
||||
#include "configVariableCore.h"
|
||||
#include "eggRenderState.h"
|
||||
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDAEGG)
|
||||
#error Buildsystem error: BUILDING_PANDAEGG not defined
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDA_EGG2PG)
|
||||
#error Buildsystem error: BUILDING_PANDA_EGG2PG not defined
|
||||
#endif
|
||||
|
||||
ConfigureDef(config_egg2pg);
|
||||
|
@ -25,36 +25,36 @@
|
||||
#include "configVariableInt.h"
|
||||
#include "dconfig.h"
|
||||
|
||||
ConfigureDecl(config_egg2pg, EXPCL_PANDAEGG, EXPTP_PANDAEGG);
|
||||
NotifyCategoryDecl(egg2pg, EXPCL_PANDAEGG, EXPTP_PANDAEGG);
|
||||
ConfigureDecl(config_egg2pg, EXPCL_PANDA_EGG2PG, EXPTP_PANDA_EGG2PG);
|
||||
NotifyCategoryDecl(egg2pg, EXPCL_PANDA_EGG2PG, EXPTP_PANDA_EGG2PG);
|
||||
|
||||
extern EXPCL_PANDAEGG ConfigVariableDouble egg_normal_scale;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_show_normals;
|
||||
extern EXPCL_PANDAEGG ConfigVariableEnum<CoordinateSystem> egg_coordinate_system;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_ignore_mipmaps;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_ignore_filters;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_ignore_clamp;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_ignore_decals;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_flatten;
|
||||
extern EXPCL_PANDAEGG ConfigVariableDouble egg_flatten_radius;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_unify;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_combine_geoms;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_rigid_geometry;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_flat_shading;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_flat_colors;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_load_old_curves;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_load_classic_nurbs_curves;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_accept_errors;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_suppress_hidden;
|
||||
extern EXPCL_PANDAEGG ConfigVariableEnum<EggRenderMode::AlphaMode> egg_alpha_mode;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_max_vertices;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_max_indices;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_emulate_bface;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_preload_simple_textures;
|
||||
extern EXPCL_PANDAEGG ConfigVariableDouble egg_vertex_membership_quantize;
|
||||
extern EXPCL_PANDAEGG ConfigVariableInt egg_vertex_max_num_joints;
|
||||
extern EXPCL_PANDAEGG ConfigVariableBool egg_implicit_alpha_binary;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableDouble egg_normal_scale;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_show_normals;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableEnum<CoordinateSystem> egg_coordinate_system;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_ignore_mipmaps;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_ignore_filters;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_ignore_clamp;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_ignore_decals;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_flatten;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableDouble egg_flatten_radius;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_unify;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_combine_geoms;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_rigid_geometry;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_flat_shading;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_flat_colors;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_load_old_curves;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_load_classic_nurbs_curves;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_accept_errors;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_suppress_hidden;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableEnum<EggRenderMode::AlphaMode> egg_alpha_mode;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableInt egg_max_vertices;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableInt egg_max_indices;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_emulate_bface;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_preload_simple_textures;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableDouble egg_vertex_membership_quantize;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableInt egg_vertex_max_num_joints;
|
||||
extern EXPCL_PANDA_EGG2PG ConfigVariableBool egg_implicit_alpha_binary;
|
||||
|
||||
extern EXPCL_PANDAEGG void init_libegg2pg();
|
||||
extern EXPCL_PANDA_EGG2PG void init_libegg2pg();
|
||||
|
||||
#endif
|
||||
|
@ -560,7 +560,7 @@ convert_collision_node(CollisionNode *node, const WorkingNodePath &node_path,
|
||||
// Get an arbitrary vector on the plane by taking the cross product
|
||||
// with any vector, as long as it is different.
|
||||
LVector3 vec1;
|
||||
if (abs(normal[2]) > abs(normal[1])) {
|
||||
if (std::fabs(normal[2]) > std::fabs(normal[1])) {
|
||||
vec1 = normal.cross(LVector3(0, 1, 0));
|
||||
} else {
|
||||
vec1 = normal.cross(LVector3(0, 0, 1));
|
||||
@ -626,7 +626,7 @@ convert_collision_node(CollisionNode *node, const WorkingNodePath &node_path,
|
||||
// Also get an arbitrary vector perpendicular to the tube.
|
||||
LVector3 axis = point_b - point_a;
|
||||
LVector3 sideways;
|
||||
if (abs(axis[2]) > abs(axis[1])) {
|
||||
if (std::fabs(axis[2]) > std::fabs(axis[1])) {
|
||||
sideways = axis.cross(LVector3(0, 1, 0));
|
||||
} else {
|
||||
sideways = axis.cross(LVector3(0, 0, 1));
|
||||
|
@ -29,7 +29,7 @@ BEGIN_PUBLISH
|
||||
* the object is invalid. If there is vertex color, it will be applied to
|
||||
* values 0 - 3 of the extended vertex values.
|
||||
*/
|
||||
EXPCL_PANDAEGG PT(NurbsSurfaceEvaluator)
|
||||
EXPCL_PANDA_EGG2PG PT(NurbsSurfaceEvaluator)
|
||||
make_nurbs_surface(EggNurbsSurface *egg_surface, const LMatrix4d &mat);
|
||||
|
||||
/**
|
||||
@ -38,7 +38,7 @@ make_nurbs_surface(EggNurbsSurface *egg_surface, const LMatrix4d &mat);
|
||||
* object is invalid. If there is vertex color, it will be applied to values
|
||||
* 0 - 3 of the extended vertex values.
|
||||
*/
|
||||
EXPCL_PANDAEGG PT(NurbsCurveEvaluator)
|
||||
EXPCL_PANDA_EGG2PG PT(NurbsCurveEvaluator)
|
||||
make_nurbs_curve(EggNurbsCurve *egg_curve, const LMatrix4d &mat);
|
||||
|
||||
END_PUBLISH
|
||||
|
@ -31,7 +31,7 @@ BEGIN_PUBLISH
|
||||
* Also see the EggLoader class, which can exercise a bit more manual control
|
||||
* over the loading process.
|
||||
*/
|
||||
EXPCL_PANDAEGG PT(PandaNode)
|
||||
EXPCL_PANDA_EGG2PG PT(PandaNode)
|
||||
load_egg_file(const Filename &filename, CoordinateSystem cs = CS_default,
|
||||
BamCacheRecord *record = nullptr);
|
||||
|
||||
@ -40,7 +40,7 @@ load_egg_file(const Filename &filename, CoordinateSystem cs = CS_default,
|
||||
* already-filled EggData structure. The structure is destroyed in the
|
||||
* loading.
|
||||
*/
|
||||
EXPCL_PANDAEGG PT(PandaNode)
|
||||
EXPCL_PANDA_EGG2PG PT(PandaNode)
|
||||
load_egg_data(EggData *data, CoordinateSystem cs = CS_default);
|
||||
END_PUBLISH
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
/**
|
||||
* This defines the Loader interface to read Egg files.
|
||||
*/
|
||||
class EXPCL_PANDAEGG LoaderFileTypeEgg : public LoaderFileType {
|
||||
class EXPCL_PANDA_EGG2PG LoaderFileTypeEgg : public LoaderFileType {
|
||||
public:
|
||||
LoaderFileTypeEgg();
|
||||
|
||||
|
@ -25,7 +25,7 @@ BEGIN_PUBLISH
|
||||
* A convenience function; converts the indicated scene graph to an egg file
|
||||
* and writes it to disk.
|
||||
*/
|
||||
EXPCL_PANDAEGG bool
|
||||
EXPCL_PANDA_EGG2PG bool
|
||||
save_egg_file(const Filename &filename, PandaNode *node,
|
||||
CoordinateSystem cs = CS_default);
|
||||
|
||||
@ -33,7 +33,7 @@ save_egg_file(const Filename &filename, PandaNode *node,
|
||||
* Another convenience function; works like save_egg_file() but populates an
|
||||
* EggData instead of writing the results to disk.
|
||||
*/
|
||||
EXPCL_PANDAEGG bool
|
||||
EXPCL_PANDA_EGG2PG bool
|
||||
save_egg_data(EggData *data, PandaNode *node);
|
||||
END_PUBLISH
|
||||
|
||||
|
@ -34,7 +34,7 @@ get_repeat_count() const {
|
||||
* Returns the index of the task within the sequence that is currently being
|
||||
* executed (or that will be executed at the next epoch).
|
||||
*/
|
||||
INLINE int AsyncTaskSequence::
|
||||
INLINE size_t AsyncTaskSequence::
|
||||
get_current_task_index() const {
|
||||
return _task_index;
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ PUBLISHED:
|
||||
INLINE void set_repeat_count(int repeat_count);
|
||||
INLINE int get_repeat_count() const;
|
||||
|
||||
INLINE int get_current_task_index() const;
|
||||
INLINE size_t get_current_task_index() const;
|
||||
|
||||
protected:
|
||||
virtual bool is_runnable();
|
||||
@ -51,7 +51,7 @@ private:
|
||||
void set_current_task(AsyncTask *task, bool clean_exit);
|
||||
|
||||
int _repeat_count;
|
||||
int _task_index;
|
||||
size_t _task_index;
|
||||
PT(AsyncTask) _current_task;
|
||||
|
||||
public:
|
||||
|
@ -290,10 +290,10 @@ seekoff(streamoff off, ios_seekdir dir, ios_openmode which) {
|
||||
|
||||
int whence;
|
||||
switch (dir) {
|
||||
case ios_base::beg:
|
||||
case std::ios_base::beg:
|
||||
whence = SEEK_SET;
|
||||
break;
|
||||
case ios_base::cur:
|
||||
case std::ios_base::cur:
|
||||
if (off == 0) {
|
||||
// Just requesting the current position, no need to void the buffer.
|
||||
return AAsset_seek(_asset, 0, SEEK_CUR) - n;
|
||||
@ -305,7 +305,7 @@ seekoff(streamoff off, ios_seekdir dir, ios_openmode which) {
|
||||
}
|
||||
whence = SEEK_CUR;
|
||||
break;
|
||||
case ios_base::end:
|
||||
case std::ios_base::end:
|
||||
whence = SEEK_END;
|
||||
break;
|
||||
default:
|
||||
|
@ -91,7 +91,7 @@ open_framework(int &argc, char **&argv) {
|
||||
// If we're statically linking, we need to explicitly link with at least one
|
||||
// of the available renderers.
|
||||
#if defined(HAVE_GL)
|
||||
extern EXPCL_PANDAGL void init_libpandagl();
|
||||
extern void init_libpandagl();
|
||||
init_libpandagl();
|
||||
#elif defined(HAVE_DX9)
|
||||
extern EXPCL_PANDADX void init_libpandadx9();
|
||||
|
@ -16,8 +16,8 @@
|
||||
|
||||
#include "dconfig.h"
|
||||
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDAGL)
|
||||
#error Buildsystem error: BUILDING_PANDAGL not defined
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDA_GLGSG)
|
||||
#error Buildsystem error: BUILDING_PANDA_GLGSG not defined
|
||||
#endif
|
||||
|
||||
ConfigureDef(config_glgsg);
|
||||
|
@ -18,9 +18,9 @@
|
||||
#include "notifyCategoryProxy.h"
|
||||
#include "dconfig.h"
|
||||
|
||||
ConfigureDecl(config_glgsg, EXPCL_PANDAGL, EXPTP_PANDAGL);
|
||||
NotifyCategoryDecl(glgsg, EXPCL_PANDAGL, EXPTP_PANDAGL);
|
||||
ConfigureDecl(config_glgsg, EXPCL_PANDA_GLGSG, EXPTP_PANDA_GLGSG);
|
||||
NotifyCategoryDecl(glgsg, EXPCL_PANDA_GLGSG, EXPTP_PANDA_GLGSG);
|
||||
|
||||
extern EXPCL_PANDAGL void init_libglgsg();
|
||||
extern EXPCL_PANDA_GLGSG void init_libglgsg();
|
||||
|
||||
#endif
|
||||
|
@ -37,8 +37,8 @@
|
||||
#define GLSYSTEM_NAME "OpenGL"
|
||||
#define CONFIGOBJ config_glgsg
|
||||
#define GLCAT glgsg_cat
|
||||
#define EXPCL_GL EXPCL_PANDAGL
|
||||
#define EXPTP_GL EXPTP_PANDAGL
|
||||
#define EXPCL_GL EXPCL_PANDA_GLGSG
|
||||
#define EXPTP_GL EXPTP_PANDA_GLGSG
|
||||
|
||||
#if MIN_GL_VERSION_MAJOR > 1 || (MIN_GL_VERSION_MAJOR == 1 && MIN_GL_VERSION_MINOR >= 2)
|
||||
#define EXPECT_GL_VERSION_1_2
|
||||
|
@ -3007,7 +3007,7 @@ reset() {
|
||||
|
||||
#ifndef OPENGLES_1
|
||||
_enabled_vertex_attrib_arrays.clear();
|
||||
memset(_vertex_attrib_divisors, 0, sizeof(GLint) * 32);
|
||||
memset(_vertex_attrib_divisors, 0, sizeof(GLuint) * 32);
|
||||
#endif
|
||||
|
||||
// Dither is on by default in GL; let's turn it off
|
||||
|
@ -661,7 +661,7 @@ protected:
|
||||
|
||||
#ifndef OPENGLES_1
|
||||
BitMask32 _enabled_vertex_attrib_arrays;
|
||||
GLint _vertex_attrib_divisors[32];
|
||||
GLuint _vertex_attrib_divisors[32];
|
||||
|
||||
PT(Shader) _current_shader;
|
||||
ShaderContext *_current_shader_context;
|
||||
|
@ -40,8 +40,8 @@
|
||||
|
||||
// #define GSG_VERBOSE 1
|
||||
|
||||
extern ConfigVariableInt gl_version;
|
||||
extern EXPCL_PANDAGL ConfigVariableBool gl_support_fbo;
|
||||
extern EXPCL_GL ConfigVariableInt gl_version;
|
||||
extern EXPCL_GL ConfigVariableBool gl_support_fbo;
|
||||
extern ConfigVariableBool gl_cheap_textures;
|
||||
extern ConfigVariableBool gl_ignore_clamp;
|
||||
extern ConfigVariableBool gl_support_clamp_to_border;
|
||||
@ -58,7 +58,7 @@ extern ConfigVariableBool gl_interleaved_arrays;
|
||||
extern ConfigVariableBool gl_parallel_arrays;
|
||||
extern ConfigVariableInt gl_max_errors;
|
||||
extern ConfigVariableEnum<GeomEnums::UsageHint> gl_min_buffer_usage_hint;
|
||||
extern ConfigVariableBool gl_debug;
|
||||
extern EXPCL_GL ConfigVariableBool gl_debug;
|
||||
extern ConfigVariableBool gl_debug_synchronous;
|
||||
extern ConfigVariableEnum<NotifySeverity> gl_debug_abort_level;
|
||||
extern ConfigVariableBool gl_debug_object_labels;
|
||||
|
@ -23,8 +23,8 @@
|
||||
#include "dconfig.h"
|
||||
#include "pandaSystem.h"
|
||||
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDAGL)
|
||||
#error Buildsystem error: BUILDING_PANDAGL not defined
|
||||
#if !defined(CPPPARSER) && !defined(BUILDING_PANDA_GLXDISPLAY)
|
||||
#error Buildsystem error: BUILDING_PANDA_GLXDISPLAY not defined
|
||||
#endif
|
||||
|
||||
Configure(config_glxdisplay);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user