qtopengl.cpp 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. // Copyright (C) 2021 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
  3. /*********************************************************************
  4. * INJECT CODE
  5. ********************************************************************/
  6. // @snippet qopenglshaderprogram_setuniformvalue_float
  7. float value = %2;
  8. %CPPSELF.setUniformValue(%1, value);
  9. // @snippet qopenglshaderprogram_setuniformvalue_float
  10. // @snippet qopenglshaderprogram_setuniformvalue_int
  11. int value = %2;
  12. %CPPSELF.setUniformValue(%1, value);
  13. // @snippet qopenglshaderprogram_setuniformvalue_int
  14. // @snippet qopenglversionfunctionsfactory-get
  15. QAbstractOpenGLFunctions *af = %CPPSELF.%FUNCTION_NAME(%1, %2);
  16. if (auto *f = dynamic_cast<QOpenGLFunctions_4_5_Core *>(af)) {
  17. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_5_Core *](f);
  18. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_5_Compatibility *>(af)) {
  19. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_5_Compatibility *](f);
  20. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_4_Core *>(af)) {
  21. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_4_Core *](f);
  22. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_4_Compatibility *>(af)) {
  23. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_4_Compatibility *](f);
  24. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_3_Core *>(af)) {
  25. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_3_Core *](f);
  26. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_2_Core *>(af)) {
  27. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_2_Core *](f);
  28. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_1_Core *>(af)) {
  29. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_1_Core *](f);
  30. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_0_Core *>(af)) {
  31. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_0_Core *](f);
  32. } else if (auto *f = dynamic_cast<QOpenGLFunctions_4_0_Compatibility *>(af)) {
  33. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_4_0_Compatibility *](f);
  34. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_3_Core *>(af)) {
  35. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_3_Core *](f);
  36. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_3_Compatibility *>(af)) {
  37. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_3_Compatibility *](f);
  38. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_2_Core *>(af)) {
  39. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_2_Core *](f);
  40. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_2_Compatibility *>(af)) {
  41. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_2_Compatibility *](f);
  42. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_1 *>(af)) {
  43. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_1 *](f);
  44. } else if (auto *f = dynamic_cast<QOpenGLFunctions_3_0 *>(af)) {
  45. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_3_0 *](f);
  46. } else if (auto *f = dynamic_cast<QOpenGLFunctions_2_1 *>(af)) {
  47. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_2_1 *](f);
  48. } else if (auto *f = dynamic_cast<QOpenGLFunctions_2_0 *>(af)) {
  49. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_2_0 *](f);
  50. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_5 *>(af)) {
  51. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_5 *](f);
  52. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_4 *>(af)) {
  53. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_4 *](f);
  54. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_3 *>(af)) {
  55. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_3 *](f);
  56. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_2 *>(af)) {
  57. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_2 *](f);
  58. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_1 *>(af)) {
  59. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_1 *](f);
  60. } else if (auto *f = dynamic_cast<QOpenGLFunctions_1_0 *>(af)) {
  61. %PYARG_0 = %CONVERTTOPYTHON[QOpenGLFunctions_1_0 *](f);
  62. } else {
  63. QString message;
  64. QDebug(&message) << "No OpenGL functions could be obtained for" << %1;
  65. PyErr_SetString(PyExc_RuntimeError, message.toUtf8().constData());
  66. %PYARG_0 = Py_None;
  67. }
  68. // @snippet qopenglversionfunctionsfactory-get
  69. // @snippet glgetvreturnsize_declaration
  70. int glGetVReturnSize(GLenum pname);
  71. // @snippet glgetvreturnsize_declaration
  72. // @snippet glgeti-vreturnsize_declaration
  73. int glGetI_VReturnSize(GLenum pname);
  74. // @snippet glgeti-vreturnsize_declaration
  75. // @snippet vao-binder-enter
  76. Py_INCREF(%PYSELF);
  77. pyResult = %PYSELF;
  78. // @snippet vao-binder-enter
  79. // @snippet vao-binder-exit
  80. %CPPSELF.release();
  81. // @snippet vao-binder-exit