Merge branch 'master' into local/cmake-merge

This commit is contained in:
Sam Edwards 2018-06-12 16:19:30 -06:00
commit ed2b3017d4
201 changed files with 714 additions and 668 deletions

View File

@ -27,7 +27,9 @@
#include "iesDataset.h"
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif
#include <math.h>
NotifyCategoryDef(iesdataset, "")

View File

@ -27,7 +27,9 @@
#include "pssmCameraRig.h"
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif
#include <math.h>
#include "orthographicLens.h"

View File

@ -27,7 +27,9 @@
#include "rpSpotLight.h"
#ifndef _USE_MATH_DEFINES
#define _USE_MATH_DEFINES
#endif
#include <math.h>

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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().
*/

View File

@ -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);
}
/**

View File

@ -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);

View File

@ -1,3 +1,5 @@
#pragma once
#include <stdtypedefs.h>
#define EXIT_SUCCESS 0

View File

@ -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; };

View File

@ -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 *

View File

@ -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,

View File

@ -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

View File

@ -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);

View File

@ -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 &copy);

View File

@ -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);

View File

@ -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

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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();

View File

@ -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 &copy);

View File

@ -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);
}

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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 &copy);

View File

@ -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 &copy);
@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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"

View File

@ -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();

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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;

View File

@ -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 &copy);

View File

@ -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

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 {

View File

@ -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();

View File

@ -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.

View File

@ -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
{

View File

@ -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 &copy);
@ -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"

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &center, double fade = 0.0);

View File

@ -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,

View File

@ -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 &copy);
@ -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"

View File

@ -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

View File

@ -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 &copy);

View File

@ -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);
}

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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 &copy);

View File

@ -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;
};

View File

@ -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 &copy);

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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));

View File

@ -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

View File

@ -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

View File

@ -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();

View File

@ -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

View File

@ -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;
}

View File

@ -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:

View File

@ -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:

View File

@ -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();

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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