﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AJwilkins%2FVFX%2FGHOST_Refactor_for_EGL</id>
	<title>利用者:Jwilkins/VFX/GHOST Refactor for EGL - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AJwilkins%2FVFX%2FGHOST_Refactor_for_EGL"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Jwilkins/VFX/GHOST_Refactor_for_EGL&amp;action=history"/>
	<updated>2026-07-29T14:44:01Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Jwilkins/VFX/GHOST_Refactor_for_EGL&amp;diff=147157&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Jwilkins/VFX/GHOST_Refactor_for_EGL&amp;diff=147157&amp;oldid=prev"/>
		<updated>2018-06-28T21:08:33Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 21:08時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Jwilkins/VFX/GHOST_Refactor_for_EGL&amp;diff=147156&amp;oldid=prev</id>
		<title>wiki&gt;Ideasman42: /* WITH_ANGLE, D3DCOMPILER_DLL */</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Jwilkins/VFX/GHOST_Refactor_for_EGL&amp;diff=147156&amp;oldid=prev"/>
		<updated>2014-07-26T14:42:15Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;WITH_ANGLE, D3DCOMPILER_DLL&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= GHOST Refactor for EGL =&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
EGL is a cross platform library for initializing an &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; context.&lt;br /&gt;
&lt;br /&gt;
This introduces the possibility of building Blender to support either the native&lt;br /&gt;
context initialization library (CGL, WGL, XGL, etc.) or the cross platform EGL.  Before the refactor GHOST assumed that the &amp;lt;tt&amp;gt;GHOST_Window&amp;lt;/tt&amp;gt; class always used the native context initialization, but after the refactor a &amp;lt;tt&amp;gt;GHOST_Window&amp;lt;/tt&amp;gt; uses a new class called &amp;lt;tt&amp;gt;GHOST_Context&amp;lt;/tt&amp;gt; to handle GL context specific tasks.&lt;br /&gt;
&lt;br /&gt;
This also provides the groundwork for supporting mobile and modern &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
EGL is also used instead of XGL by the &amp;lt;i&amp;gt;Wayland&amp;lt;/i&amp;gt; compositor.&lt;br /&gt;
&lt;br /&gt;
== Building with CMake ==&lt;br /&gt;
&lt;br /&gt;
=== Context Options ===&lt;br /&gt;
&lt;br /&gt;
==== WITH_GL_CONTEXT_DESKTOP, WITH_GL_CONTEXT_EMBEDDED ====&lt;br /&gt;
&lt;br /&gt;
These options control what &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; uses to create &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt; contexts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_CONTEXT_DESKTOP&amp;lt;/tt&amp;gt; builds &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to use the native&lt;br /&gt;
context creation library:&lt;br /&gt;
&lt;br /&gt;
* CGL on OSX&lt;br /&gt;
* WGL on Windows&lt;br /&gt;
* XGL on Linux&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_CONTEXT_EMBEDDED&amp;lt;/tt&amp;gt; builds &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to use EGL regardless of the operating system.  Until &amp;lt;i&amp;gt;GLEW&amp;lt;/i&amp;gt; is updated upstream with support for EGL the &amp;lt;tt&amp;gt;WITH_GLEW_ES&amp;lt;/tt&amp;gt; option will also be needed in conjunction with this option.&lt;br /&gt;
&lt;br /&gt;
Currently these options are mutually exclusive.  You cannot build &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to support both kinds of context.&lt;br /&gt;
&lt;br /&gt;
Theoretically it would be possible to make this decision at runtime (for say, allowing the embedded game engine renderer to run using an &amp;lt;i&amp;gt;ES&amp;lt;/i&amp;gt; context while the rest of &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; continued to use a desktop context), and although that should not be too difficult, that work is put off until later.&lt;br /&gt;
&lt;br /&gt;
=== Profile Options ===&lt;br /&gt;
&lt;br /&gt;
==== WITH_GL_PROFILE_COMPAT, WITH_GL_PROFILE_CORE, WITH_GL_PROFILE_ES20 ====&lt;br /&gt;
&lt;br /&gt;
The profile determines what set of &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt; functions are available for &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to use for drawing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_PROFILE_COMPAT&amp;lt;/tt&amp;gt; builds &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; with support for legacy &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt; functions that have been deprecated since version 3.1.  This option is deprecated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_PROFILE_CORE&amp;lt;/tt&amp;gt; builds &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; with only support for the core functionality of &amp;lt;i&amp;gt;OpenGL&amp;lt;/i&amp;gt; version 3.2 and does not rely on any deprecated functions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_PROFILE_ES20&amp;lt;/tt&amp;gt; builds &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; with support for &amp;lt;i&amp;gt;OpenGL ES&amp;lt;i&amp;gt; version 2.0.  Until &amp;lt;i&amp;gt;GLEW&amp;lt;/i&amp;gt; is updated upstream with support for &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; the &amp;lt;tt&amp;gt;WITH_GLEW_ES&amp;lt;/tt&amp;gt; option will also be needed in conjunction with this option.&lt;br /&gt;
&lt;br /&gt;
Currently these options are mutually exclusive.  You cannot build &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to support multiple profiles.&lt;br /&gt;
&lt;br /&gt;
Theoretically, &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; could support any combination of these options at the same time and choose between them at runtime.  It could even go as far as to use different contexts for different windows at the same time.  However, right now I have simply attempted to not do anything that would make this difficult to do in the future.&lt;br /&gt;
&lt;br /&gt;
== Other Options ==&lt;br /&gt;
&lt;br /&gt;
==== WITH_GLEW_MX ====&lt;br /&gt;
&lt;br /&gt;
This option is experimental.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GLEW_MX&amp;lt;/tt&amp;gt; enables support for multiple GLEW contexts.  Contexts with different pixel formats can potentially have different entry points for extension functions.  &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; does not actually currently have a case where it requests different pixel formats for different windows(?), but this option is there in case that is needed.&lt;br /&gt;
&lt;br /&gt;
==== WITH_GLEW_ES ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GLEW_ES&amp;lt;/tt&amp;gt; causes &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; to use the GLEW in extern/glew-es instead of extern/glew.  That version a fork of GLEW that has been extended to support &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; and EGL.  I copied it and fixed a lot of bugs.&lt;br /&gt;
These changes have not yet been contributed back upstream GLEW, so there is not a way to generate this version of GLEW from source.  That should not a big problem until there is a pressing need to upgrade GLEW to a new version.&lt;br /&gt;
&lt;br /&gt;
This option has to be enabled to support EGL contexts or OpenGL ES until the changes have been ported to upstream GLEW.&lt;br /&gt;
&lt;br /&gt;
==== WITH_GLU ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GLU&amp;lt;/tt&amp;gt; enables GLU support in GLEW and links the GLU library.  This is just here to support legacy code and is deprecated.  Enabling it with core or ES profiles will probably blow something up.&lt;br /&gt;
&lt;br /&gt;
== EGL and OpenGL ES Libraries ==&lt;br /&gt;
&lt;br /&gt;
There are many &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; implementations and none of them are supplied with &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt;.  In many cases the developer will need to manually supply the paths to the library files.&lt;br /&gt;
&lt;br /&gt;
On Linux the &amp;lt;tt&amp;gt;WITH_SYSTEM_GLES&amp;lt;/tt&amp;gt; will use find_package(GLES) instead of using paths supplied by the user.&lt;br /&gt;
&lt;br /&gt;
The new CMake module in &amp;lt;tt&amp;gt;build_files/cmake/modules/FindOpenGLES.cmake&amp;lt;/tt&amp;gt; locates the development libraries for OpenGL ES on Unix. I have not tested it, but I took it from the Wayland branch on github.&lt;br /&gt;
&lt;br /&gt;
=== OpenGL ES Implementations ===&lt;br /&gt;
&lt;br /&gt;
* [http://developer.amd.com/tools-and-sdks/graphics-development/graphics-development-sdks/amd-opengl-es-sdk/ AMD Desktop Native OpenGL ES]&lt;br /&gt;
* [http://malideveloper.arm.com/develop-for-mali/tools/opengl-es-3-0-emulator/ ARM MALI Emulated OpenGL ES]&lt;br /&gt;
* [https://code.google.com/p/angleproject/ Google ANGLE]&lt;br /&gt;
&lt;br /&gt;
=== OpenGL ES Library Locations ===&lt;br /&gt;
&lt;br /&gt;
After installing an &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; implementation these locations must be specified.&lt;br /&gt;
&lt;br /&gt;
==== OPENGLES_LIBRARY, OPENGLES_EGL_LIBRARY ====&lt;br /&gt;
&lt;br /&gt;
The OpenGL ES and EGL link library locations.&lt;br /&gt;
&lt;br /&gt;
==== OPENGLES_LIBRARY_DLL, OPENGLES_EGL_LIBRARY_DLL ====&lt;br /&gt;
&lt;br /&gt;
OpenGL ES runtime components do not ship with Windows, so they need to be installed with Blender, so the developer must also supply the paths to the DLLs.&lt;br /&gt;
&lt;br /&gt;
==== WITH_GL_ANGLE, D3DCOMPILER_DLL ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;WITH_GL_ANGLE&amp;lt;/tt&amp;gt; tells &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt; that the library being used for &amp;lt;i&amp;gt;OpenGL ES&amp;lt;/i&amp;gt; is the ANGLE library from Google.  Because this library requires &amp;lt;i&amp;gt;Direct3D&amp;lt;/i&amp;gt; in order to work it requires some additional files  (namely the D3DCompiler_XX.dll) and some additional setup at runtime.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;D3DCOMPILER_DLL&amp;lt;/tt&amp;gt; Specifies the location of the redistributable D3DCompiler_XX.dll so that it can be installed along with &amp;lt;i&amp;gt;Blender&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Building with Scons ==&lt;br /&gt;
&lt;br /&gt;
Currently only the CMake build system has been modified to support these changes so Scons should fail.&lt;/div&gt;</summary>
		<author><name>wiki&gt;Ideasman42</name></author>
		
	</entry>
</feed>