たぬき日記 RSSフィード

たぬき日記へようこそ!

お探しのキーワードを上の検索小窓に入力して「日記」を押すと、このように色が変わって表示されます


 | 

2017.11/13(Monday)

[][]PowerVR-sdk

PowerVRのグラフィックエミュレーターのライブラリーです。多分、MacOS上で唯一のOpenGLに対するEGLの実装だと思われます。

$ brew list powervr-sdk
/usr/local/Cellar/powervr-sdk/4.3/include/EGL/ (3 files)
/usr/local/Cellar/powervr-sdk/4.3/include/GLES/ (4 files)
/usr/local/Cellar/powervr-sdk/4.3/include/GLES2/ (3 files)
/usr/local/Cellar/powervr-sdk/4.3/include/GLES3/ (4 files)
/usr/local/Cellar/powervr-sdk/4.3/include/KHR/khrplatform.h
/usr/local/Cellar/powervr-sdk/4.3/include/vulkan/ (2 files)
/usr/local/Cellar/powervr-sdk/4.3/include/ (3 files)
/usr/local/Cellar/powervr-sdk/4.3/lib/libEGL.dylib
/usr/local/Cellar/powervr-sdk/4.3/lib/libGLESv1_CM.dylib
/usr/local/Cellar/powervr-sdk/4.3/lib/libGLESv2.dylib
/usr/local/Cellar/powervr-sdk/4.3/lib/libPVRScopeDeveloper.a

$ otool -L /usr/local/Cellar/powervr-sdk/4.3/lib/libEGL.dylib 
/usr/local/Cellar/powervr-sdk/4.3/lib/libEGL.dylib:
	/usr/local/opt/powervr-sdk/lib/libEGL.dylib (compatibility version 0.0.0, current version 0.0.0)
	/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 57.0.0)
	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 19.0.0)
	/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 945.18.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1187.39.0)

ただし、あくまでもエミュレーションであり、ハードウェアアクセラレーションはありません。
Vulkanのヘッダーもありますが、本当に使えるんでしょうか?
PowerVR-sdkの中には他にもMakefileが何個かあって、Linux用と書かれてはいるのですが、*.makというマクロファイルを読み込むようになっていて、この*.makファイルが実はWindows用のnmakeというプログラムでしか利用できない代物で、っていうことはWindows上で開発してクロスコンパイルしているのだろうか。どちらにせよ、Macではどうしようもない。

2017.11/15 追記

さらに、egl.pcを作成してしまうことにしました。


The following script installs PowerVR-sdk on OSX with Homebrew.

class PowervrSdk < Formula
  desc "C++ cross-platform 3D graphics SDK"
  homepage "https://powervr-graphics.github.io/Native_SDK/"
  url "https://github.com/powervr-graphics/Native_SDK.git",
      :tag => "4.3", :revision => "25f0463ec682139d3b9dca2bb0c8f89beb22cfbe"

#  depends_on "cmake" => :build

  keg_only :provided_by_macos

  def install
    lib.install Dir["Builds/OSX/x86/Lib/*"]
    include.install Dir["Builds/Include/*"]

# Please use Homebrew's "glm".
#    cd "External/glm" do
#      cp "detail/glm.cpp", "."
#      inreplace "CMakeLists.txt", "#", ""
#      system "cmake", "." , *std_cmake_args
#      system "make"
#      lib.install Dir["libglm*"]
#    end

    (lib/"pkgconfig/egl.pc").write <<~EOS
        prefix=#{opt_prefix}
        exec_prefix=${prefix}
        libdir=${exec_prefix}/lib
        includedir=${prefix}/include

        Name: egl
        Description: PowerVR OpenGL EGL Emulation library
        Version: #{version}
        Libs: -L${libdir} -lEGL
        Libs.private: -framework OpenGL -lc++ -lobjc -framework Cocoa
        Cflags: -I${includedir}
      EOS
  end
end



ちなみにcarioにかませることが出来ましたが、動作保証はしかねます。

$ ls /usr/local/Cellar/cairo/1.14.10/lib/pkgconfig/
cairo-egl.pc		cairo-png.pc		cairo-tee.pc
cairo-fc.pc		cairo-ps.pc		cairo-xcb-shm.pc
cairo-ft.pc		cairo-quartz-font.pc	cairo-xcb.pc
cairo-gl.pc		cairo-quartz-image.pc	cairo-xlib-xcb.pc
cairo-glx.pc		cairo-quartz.pc		cairo-xlib-xrender.pc
cairo-gobject.pc	cairo-script.pc		cairo-xlib.pc
cairo-pdf.pc		cairo-svg.pc		cairo.pc

$ cat /usr/local/Cellar/cairo/1.14.10/lib/pkgconfig/cairo-egl.pc
prefix=/usr/local/Cellar/cairo/1.14.10
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: cairo-egl
Description: EGL functions for cairo graphics library
Version: 1.14.10

Requires: cairo egl
Libs:  
Cflags: -I${includedir}/cairo 




 | 
By たぬき in たぬきのお部屋