BGE: Adding two new functions to bge.render to allow users to change the anisotropic...
[blender-staging.git] / source / gameengine / Ketsji / KX_PythonInit.cpp
index 06db84feb238373a7bf17c633ac58ab24c97d84c..8557ebab0a9b3a4d6aa89a8c1ec2147b82cd6c2c 100644 (file)
@@ -1208,6 +1208,28 @@ static PyObject* gPyGetMaterialType(PyObject*)
        return PyLong_FromSsize_t(flag);
 }
 
+static PyObject* gPySetAnisotropicFiltering(PyObject*, PyObject* args)
+{
+       short level;
+
+       if (!PyArg_ParseTuple(args, "h:setAnisotropicFiltering", &level))
+               return NULL;
+
+       if (level != 1 && level != 2 && level != 4 && level != 8 && level != 16) {
+               PyErr_SetString(PyExc_ValueError, "Rasterizer.setAnisotropicFiltering(level): Expected value of 1, 2, 4, 8, or 16 for value");
+               return NULL;
+       }
+
+       gp_Rasterizer->SetAnisotropicFiltering(level);
+
+       Py_RETURN_NONE;
+}
+
+static PyObject* gPyGetAnisotropicFiltering(PyObject*, PyObject* args)
+{
+       return PyLong_FromLong(gp_Rasterizer->GetAnisotropicFiltering());
+}
+
 static PyObject* gPyDrawLine(PyObject*, PyObject* args)
 {
        PyObject* ob_from;
@@ -1272,6 +1294,10 @@ static struct PyMethodDef rasterizer_methods[] = {
    METH_VARARGS, "set the state of a GLSL material setting"},
   {"getGLSLMaterialSetting",(PyCFunction) gPyGetGLSLMaterialSetting,
    METH_VARARGS, "get the state of a GLSL material setting"},
+  {"setAnisotropicFiltering", (PyCFunction) gPySetAnisotropicFiltering,
+  METH_VARARGS, "set the anisotropic filtering level (must be one of 1, 2, 4, 8, 16)"},
+  {"getAnisotropicFiltering", (PyCFunction) gPyGetAnisotropicFiltering,
+  METH_VARARGS, "get the anisotropic filtering level"},
   {"drawLine", (PyCFunction) gPyDrawLine,
    METH_VARARGS, "draw a line on the screen"},
   { NULL, (PyCFunction) NULL, 0, NULL }