// python wrapper for vtkShader // #define VTK_WRAPPING_CXX #define VTK_STREAMS_FWD_ONLY #include "vtkPythonArgs.h" #include "vtkPythonOverload.h" #include "vtkConfigure.h" #include #include #include "vtkVariant.h" #include "vtkIndent.h" #include "vtkStdString.h" #include "vtkShader.h" extern "C" { VTK_ABI_EXPORT void PyVTKAddFile_vtkShader(PyObject *); } extern "C" { VTK_ABI_EXPORT PyObject *PyvtkShader_ClassNew(); } #ifndef DECLARED_PyvtkObject_ClassNew extern "C" { PyObject *PyvtkObject_ClassNew(); } #define DECLARED_PyvtkObject_ClassNew #endif static const char *PyvtkShader_Doc = "vtkShader - encapsulate a glsl shader\n\n" "Superclass: vtkObject\n\n" "vtkShader represents a shader, vertex, fragment, geometry etc\n\n"; static PyTypeObject PyvtkShader_Type_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "vtkRenderingOpenGL2Python.vtkShader.Type", // tp_name sizeof(PyIntObject), // tp_basicsize 0, // tp_itemsize nullptr, // tp_dealloc 0, // tp_print nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare nullptr, // tp_repr nullptr, // tp_as_number nullptr, // tp_as_sequence nullptr, // tp_as_mapping nullptr, // tp_hash nullptr, // tp_call nullptr, // tp_str nullptr, // tp_getattro nullptr, // tp_setattro nullptr, // tp_as_buffer Py_TPFLAGS_DEFAULT, // tp_flags nullptr, // tp_doc nullptr, // tp_traverse nullptr, // tp_clear nullptr, // tp_richcompare 0, // tp_weaklistoffset nullptr, // tp_iter nullptr, // tp_iternext nullptr, // tp_methods nullptr, // tp_members nullptr, // tp_getset &PyInt_Type, // tp_base nullptr, // tp_dict nullptr, // tp_descr_get nullptr, // tp_descr_set 0, // tp_dictoffset nullptr, // tp_init nullptr, // tp_alloc nullptr, // tp_new PyObject_Del, // tp_free nullptr, // tp_is_gc nullptr, // tp_bases nullptr, // tp_mro nullptr, // tp_cache nullptr, // tp_subclasses nullptr, // tp_weaklist VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED }; PyObject *PyvtkShader_Type_FromEnum(int val) { #ifdef VTK_PY3K PyObject *args = Py_BuildValue("(i)", val); PyObject *obj = PyLong_Type.tp_new(&PyvtkShader_Type_Type, args, nullptr); Py_DECREF(args); return obj; #else PyIntObject *self = PyObject_New(PyIntObject, &PyvtkShader_Type_Type); self->ob_ival = val; return (PyObject *)self; #endif } static PyObject * PyvtkShader_IsTypeOf(PyObject *, PyObject *args) { vtkPythonArgs ap(args, "IsTypeOf"); char *temp0 = nullptr; PyObject *result = nullptr; if (ap.CheckArgCount(1) && ap.GetValue(temp0)) { int tempr = vtkShader::IsTypeOf(temp0); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_IsA(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "IsA"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); char *temp0 = nullptr; PyObject *result = nullptr; if (op && ap.CheckArgCount(1) && ap.GetValue(temp0)) { int tempr = (ap.IsBound() ? op->IsA(temp0) : op->vtkShader::IsA(temp0)); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_SafeDownCast(PyObject *, PyObject *args) { vtkPythonArgs ap(args, "SafeDownCast"); vtkObjectBase *temp0 = nullptr; PyObject *result = nullptr; if (ap.CheckArgCount(1) && ap.GetVTKObject(temp0, "vtkObjectBase")) { vtkShader *tempr = vtkShader::SafeDownCast(temp0); if (!ap.ErrorOccurred()) { result = ap.BuildVTKObject(tempr); } } return result; } static PyObject * PyvtkShader_NewInstance(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "NewInstance"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { vtkShader *tempr = (ap.IsBound() ? op->NewInstance() : op->vtkShader::NewInstance()); if (!ap.ErrorOccurred()) { result = ap.BuildVTKObject(tempr); if (result && PyVTKObject_Check(result)) { PyVTKObject_GetObject(result)->UnRegister(0); PyVTKObject_SetFlag(result, VTK_PYTHON_IGNORE_UNREGISTER, 1); } } } return result; } static PyObject * PyvtkShader_SetType(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "SetType"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); typedef vtkShader::Type temp0_type; temp0_type temp0; PyObject *result = nullptr; if (op && ap.CheckArgCount(1) && ap.GetEnumValue(temp0, "vtkShader.Type")) { if (ap.IsBound()) { op->SetType(temp0); } else { op->vtkShader::SetType(temp0); } if (!ap.ErrorOccurred()) { result = ap.BuildNone(); } } return result; } static PyObject * PyvtkShader_GetType(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetType"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { typedef vtkShader::Type tempr_type; tempr_type tempr = (ap.IsBound() ? op->GetType() : op->vtkShader::GetType()); if (!ap.ErrorOccurred()) { result = PyvtkShader_Type_FromEnum(tempr); } } return result; } static PyObject * PyvtkShader_SetSource(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "SetSource"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); std::string temp0; PyObject *result = nullptr; if (op && ap.CheckArgCount(1) && ap.GetValue(temp0)) { if (ap.IsBound()) { op->SetSource(temp0); } else { op->vtkShader::SetSource(temp0); } if (!ap.ErrorOccurred()) { result = ap.BuildNone(); } } return result; } static PyObject * PyvtkShader_GetSource(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetSource"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { std::string tempr = (ap.IsBound() ? op->GetSource() : op->vtkShader::GetSource()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_GetError(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetError"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { std::string tempr = (ap.IsBound() ? op->GetError() : op->vtkShader::GetError()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_GetHandle(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "GetHandle"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { int tempr = (ap.IsBound() ? op->GetHandle() : op->vtkShader::GetHandle()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_Compile(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "Compile"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { bool tempr = (ap.IsBound() ? op->Compile() : op->vtkShader::Compile()); if (!ap.ErrorOccurred()) { result = ap.BuildValue(tempr); } } return result; } static PyObject * PyvtkShader_Cleanup(PyObject *self, PyObject *args) { vtkPythonArgs ap(self, args, "Cleanup"); vtkObjectBase *vp = ap.GetSelfPointer(self, args); vtkShader *op = static_cast(vp); PyObject *result = nullptr; if (op && ap.CheckArgCount(0)) { if (ap.IsBound()) { op->Cleanup(); } else { op->vtkShader::Cleanup(); } if (!ap.ErrorOccurred()) { result = ap.BuildNone(); } } return result; } static PyMethodDef PyvtkShader_Methods[] = { {"IsTypeOf", PyvtkShader_IsTypeOf, METH_VARARGS, "V.IsTypeOf(string) -> int\nC++: static vtkTypeBool IsTypeOf(const char *type)\n\nReturn 1 if this class type is the same type of (or a subclass\nof) the named class. Returns 0 otherwise. This method works in\ncombination with vtkTypeMacro found in vtkSetGet.h.\n"}, {"IsA", PyvtkShader_IsA, METH_VARARGS, "V.IsA(string) -> int\nC++: vtkTypeBool IsA(const char *type) override;\n\nReturn 1 if this class is the same type of (or a subclass of) the\nnamed class. Returns 0 otherwise. This method works in\ncombination with vtkTypeMacro found in vtkSetGet.h.\n"}, {"SafeDownCast", PyvtkShader_SafeDownCast, METH_VARARGS, "V.SafeDownCast(vtkObjectBase) -> vtkShader\nC++: static vtkShader *SafeDownCast(vtkObjectBase *o)\n\n"}, {"NewInstance", PyvtkShader_NewInstance, METH_VARARGS, "V.NewInstance() -> vtkShader\nC++: vtkShader *NewInstance()\n\n"}, {"SetType", PyvtkShader_SetType, METH_VARARGS, "V.SetType(Type)\nC++: void SetType(Type type)\n\nSet the shader type.\n"}, {"GetType", PyvtkShader_GetType, METH_VARARGS, "V.GetType() -> Type\nC++: Type GetType()\n\nGet the shader type, typically Vertex or Fragment.\n"}, {"SetSource", PyvtkShader_SetSource, METH_VARARGS, "V.SetSource(string)\nC++: void SetSource(const std::string &source)\n\nSet the shader source to the supplied string.\n"}, {"GetSource", PyvtkShader_GetSource, METH_VARARGS, "V.GetSource() -> string\nC++: std::string GetSource()\n\nGet the source for the shader.\n"}, {"GetError", PyvtkShader_GetError, METH_VARARGS, "V.GetError() -> string\nC++: std::string GetError()\n\nGet the error message (empty if none) for the shader.\n"}, {"GetHandle", PyvtkShader_GetHandle, METH_VARARGS, "V.GetHandle() -> int\nC++: int GetHandle()\n\nGet the handle of the shader.\n"}, {"Compile", PyvtkShader_Compile, METH_VARARGS, "V.Compile() -> bool\nC++: bool Compile()\n\nCompile the shader.\n\note A valid context must to current in order to compile the\nshader.\n"}, {"Cleanup", PyvtkShader_Cleanup, METH_VARARGS, "V.Cleanup()\nC++: void Cleanup()\n\nDelete the shader.\n\note This should only be done once the ShaderProgram is done with\nthe Shader.\n"}, {nullptr, nullptr, 0, nullptr} }; static PyTypeObject PyvtkShader_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) "vtkRenderingOpenGL2Python.vtkShader", // tp_name sizeof(PyVTKObject), // tp_basicsize 0, // tp_itemsize PyVTKObject_Delete, // tp_dealloc 0, // tp_print nullptr, // tp_getattr nullptr, // tp_setattr nullptr, // tp_compare PyVTKObject_Repr, // tp_repr nullptr, // tp_as_number nullptr, // tp_as_sequence nullptr, // tp_as_mapping nullptr, // tp_hash nullptr, // tp_call PyVTKObject_String, // tp_str PyObject_GenericGetAttr, // tp_getattro PyObject_GenericSetAttr, // tp_setattro &PyVTKObject_AsBuffer, // tp_as_buffer Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_BASETYPE, // tp_flags PyvtkShader_Doc, // tp_doc PyVTKObject_Traverse, // tp_traverse nullptr, // tp_clear nullptr, // tp_richcompare offsetof(PyVTKObject, vtk_weakreflist), // tp_weaklistoffset nullptr, // tp_iter nullptr, // tp_iternext nullptr, // tp_methods nullptr, // tp_members PyVTKObject_GetSet, // tp_getset nullptr, // tp_base nullptr, // tp_dict nullptr, // tp_descr_get nullptr, // tp_descr_set offsetof(PyVTKObject, vtk_dict), // tp_dictoffset nullptr, // tp_init nullptr, // tp_alloc PyVTKObject_New, // tp_new PyObject_GC_Del, // tp_free nullptr, // tp_is_gc nullptr, // tp_bases nullptr, // tp_mro nullptr, // tp_cache nullptr, // tp_subclasses nullptr, // tp_weaklist VTK_WRAP_PYTHON_SUPPRESS_UNINITIALIZED }; static vtkObjectBase *PyvtkShader_StaticNew() { return vtkShader::New(); } PyObject *PyvtkShader_ClassNew() { PyVTKClass_Add( &PyvtkShader_Type, PyvtkShader_Methods, "vtkShader", &PyvtkShader_StaticNew); PyTypeObject *pytype = &PyvtkShader_Type; if ((pytype->tp_flags & Py_TPFLAGS_READY) != 0) { return (PyObject *)pytype; } #if !defined(VTK_PY3K) && PY_VERSION_HEX >= 0x02060000 pytype->tp_flags |= Py_TPFLAGS_HAVE_NEWBUFFER; #endif pytype->tp_base = (PyTypeObject *)PyvtkObject_ClassNew(); PyObject *d = pytype->tp_dict; PyObject *o; PyType_Ready(&PyvtkShader_Type_Type); PyvtkShader_Type_Type.tp_new = nullptr; vtkPythonUtil::AddEnumToMap(&PyvtkShader_Type_Type); o = (PyObject *)&PyvtkShader_Type_Type; if (PyDict_SetItemString(d, "Type", o) != 0) { Py_DECREF(o); } for (int c = 0; c < 4; c++) { typedef vtkShader::Type cxx_enum_type; static const struct { const char *name; cxx_enum_type value; } constants[4] = { { "Vertex", vtkShader::Vertex }, { "Fragment", vtkShader::Fragment }, { "Geometry", vtkShader::Geometry }, { "Unknown", vtkShader::Unknown }, }; o = PyvtkShader_Type_FromEnum(constants[c].value); if (o) { PyDict_SetItemString(d, constants[c].name, o); Py_DECREF(o); } } PyType_Ready(pytype); return (PyObject *)pytype; } void PyVTKAddFile_vtkShader( PyObject *dict) { PyObject *o; o = PyvtkShader_ClassNew(); if (o && PyDict_SetItemString(dict, "vtkShader", o) != 0) { Py_DECREF(o); } }