Cleanup: batch Python API
Add utility function to raise an error.
This commit is contained in:
@@ -53,7 +53,24 @@
|
|||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
/** \name Utility Functions
|
||||||
|
* \{ */
|
||||||
|
|
||||||
|
static bool bpygpu_batch_is_program_or_error(BPyGPUBatch *self)
|
||||||
|
{
|
||||||
|
if (!glIsProgram(self->batch->program)) {
|
||||||
|
PyErr_SetString(
|
||||||
|
PyExc_RuntimeError,
|
||||||
|
"batch does not have any program assigned to it");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** \} */
|
||||||
|
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------- */
|
||||||
/** \name VertBatch Type
|
/** \name VertBatch Type
|
||||||
* \{ */
|
* \{ */
|
||||||
|
|
||||||
@@ -180,20 +197,19 @@ static PyObject *bpygpu_VertBatch_draw(BPyGPUBatch *self, PyObject *args)
|
|||||||
BPyGPUShader *py_program = NULL;
|
BPyGPUShader *py_program = NULL;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(
|
if (!PyArg_ParseTuple(
|
||||||
args, "|O!:GPUShader.__exit__",
|
args, "|O!:GPUBatch.draw",
|
||||||
&BPyGPUShader_Type, &py_program))
|
&BPyGPUShader_Type, &py_program))
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
else if (py_program == NULL) {
|
else if (py_program == NULL) {
|
||||||
if (!glIsProgram(self->batch->program)) {
|
if (!bpygpu_batch_is_program_or_error(self)) {
|
||||||
PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
"batch does not have any program assigned to it");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (self->batch->program != GPU_shader_get_program(py_program->shader)) {
|
else if (self->batch->program != GPU_shader_get_program(py_program->shader)) {
|
||||||
GPU_batch_program_set(self->batch,
|
GPU_batch_program_set(
|
||||||
|
self->batch,
|
||||||
GPU_shader_get_program(py_program->shader),
|
GPU_shader_get_program(py_program->shader),
|
||||||
GPU_shader_get_interface(py_program->shader));
|
GPU_shader_get_interface(py_program->shader));
|
||||||
}
|
}
|
||||||
@@ -204,9 +220,7 @@ static PyObject *bpygpu_VertBatch_draw(BPyGPUBatch *self, PyObject *args)
|
|||||||
|
|
||||||
static PyObject *bpygpu_VertBatch_program_use_begin(BPyGPUBatch *self)
|
static PyObject *bpygpu_VertBatch_program_use_begin(BPyGPUBatch *self)
|
||||||
{
|
{
|
||||||
if (!glIsProgram(self->batch->program)) {
|
if (!bpygpu_batch_is_program_or_error(self)) {
|
||||||
PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
"batch does not have any program assigned to it");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
GPU_batch_program_use_begin(self->batch);
|
GPU_batch_program_use_begin(self->batch);
|
||||||
@@ -215,9 +229,7 @@ static PyObject *bpygpu_VertBatch_program_use_begin(BPyGPUBatch *self)
|
|||||||
|
|
||||||
static PyObject *bpygpu_VertBatch_program_use_end(BPyGPUBatch *self)
|
static PyObject *bpygpu_VertBatch_program_use_end(BPyGPUBatch *self)
|
||||||
{
|
{
|
||||||
if (!glIsProgram(self->batch->program)) {
|
if (!bpygpu_batch_is_program_or_error(self)) {
|
||||||
PyErr_SetString(PyExc_RuntimeError,
|
|
||||||
"batch does not have any program assigned to it");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
GPU_batch_program_use_end(self->batch);
|
GPU_batch_program_use_end(self->batch);
|
||||||
@@ -312,7 +324,6 @@ PyTypeObject BPyGPUBatch_Type = {
|
|||||||
|
|
||||||
|
|
||||||
/* -------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------- */
|
||||||
|
|
||||||
/** \name Public API
|
/** \name Public API
|
||||||
* \{ */
|
* \{ */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user