diff options
Diffstat (limited to 'source/blender/gpu/opengl')
-rw-r--r-- | source/blender/gpu/opengl/gl_backend.hh | 36 | ||||
-rw-r--r-- | source/blender/gpu/opengl/gl_context.cc | 53 | ||||
-rw-r--r-- | source/blender/gpu/opengl/gl_context.hh | 50 |
3 files changed, 139 insertions, 0 deletions
diff --git a/source/blender/gpu/opengl/gl_backend.hh b/source/blender/gpu/opengl/gl_backend.hh new file mode 100644 index 00000000000..25400a55394 --- /dev/null +++ b/source/blender/gpu/opengl/gl_backend.hh @@ -0,0 +1,36 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright 2020, Blender Foundation. + * All rights reserved. + */ + +/** \file + * \ingroup gpu + */ + +#pragma once + +#include "gpu_backend.hh" + +#include "gl_context.hh" + +class GLBackend : public GPUBackend { + public: + GPUContext *context_alloc(void *ghost_window) + { + return new GLContext(ghost_window); + }; +}; diff --git a/source/blender/gpu/opengl/gl_context.cc b/source/blender/gpu/opengl/gl_context.cc new file mode 100644 index 00000000000..9fe283131fd --- /dev/null +++ b/source/blender/gpu/opengl/gl_context.cc @@ -0,0 +1,53 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright 2020, Blender Foundation. + * All rights reserved. + */ + +/** \file + * \ingroup gpu + */ + +#include "BLI_assert.h" +#include "BLI_utildefines.h" + +#include "GPU_framebuffer.h" + +#include "GHOST_C-api.h" + +#include "gpu_context_private.h" + +#include "gl_context.hh" + +// TODO(fclem) this requires too much refactor for now. +// using namespace blender::gpu; + +/* -------------------------------------------------------------------- */ +/** \name Constructor / Destructor + * \{ */ + +GLContext::GLContext(void *ghost_window) : GPUContext() +{ + default_framebuffer_ = ghost_window ? + GHOST_GetDefaultOpenGLFramebuffer((GHOST_WindowHandle)ghost_window) : + 0; +} + +GLContext::~GLContext() +{ +} + +/** \} */ diff --git a/source/blender/gpu/opengl/gl_context.hh b/source/blender/gpu/opengl/gl_context.hh new file mode 100644 index 00000000000..5daf793910c --- /dev/null +++ b/source/blender/gpu/opengl/gl_context.hh @@ -0,0 +1,50 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Copyright 2020, Blender Foundation. + * All rights reserved. + */ + +/** \file + * \ingroup gpu + */ + +#pragma once + +#include "gpu_context_private.h" + +#include "glew-mx.h" + +#include <iostream> +#include <mutex> +#include <unordered_set> +#include <vector> + +// TODO(fclem) this requires too much refactor for now. +// namespace blender { +// namespace gpu { + +class GLContext : public GPUContext { + public: + GLContext(void *ghost_window); + ~GLContext(); + + private: + /** Default framebuffer object for some GL implementation. */ + GLuint default_framebuffer_; +}; + +// } // namespace gpu +// } // namespace blender |