Commit 8f6bb166 authored by Dalai Felinto's avatar Dalai Felinto
Browse files

Use Oculus DK1 shader when DK1 is connected

parent b442ec5f
Loading
Loading
Loading
Loading
+3 −3
Changes for space_view3d_virtual_reality/__init__.py: 3 added lines, 3 removed lines.
Original line number Diff line number Diff line
@@ -70,10 +70,10 @@ def get_space_3dview(context):
    return None


def get_glsl_shader():
def get_glsl_shader(shader_file):
    import os
    folderpath = os.path.dirname(os.path.abspath(__file__))
    filepath = os.path.join(folderpath, 'oculus_dk2.glsl')
    filepath = os.path.join(folderpath, 'shaders', shader_file)
    f = open(filepath, 'r')
    data = f.read()
    f.close()
@@ -178,7 +178,7 @@ class VirtualRealityViewportOperator(bpy.types.Operator):
            self.color_id = create_image(self.buffer_width, self.buffer_height, GL_RGBA)

            # glsl shaders
            fragment_shader = get_glsl_shader()
            fragment_shader = get_glsl_shader(self.oculus.shader_file)
            self.program_shader = create_shader(fragment_shader)

            return {'RUNNING_MODAL'}
+23 −2
Changes for space_view3d_virtual_reality/oculus.py: 23 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ class Oculus():
        self._hmd = None
        self._description = None
        self._camera = camera
        self._version = 2 # DK2 by default

        self._matrix_world = camera.matrix_world.copy()
        self._lens = camera.data.lens
@@ -51,8 +52,7 @@ class Oculus():
            self._eyes_offset[1] = 0.0, 0.0, 0.0

            self._hmd.configure_tracking()
            print(self._description.ProductName)

            self._setVersion(self._description.ProductName)
            self._camera.data.lens = 16

        else:
@@ -83,6 +83,27 @@ class Oculus():
            self._hmd = None
            Hmd.shutdown()

    def _setVersion(self, product_name):
        try:
            if product_name.find(b'DK2') != -1:
                self._version = 2

            elif product_name.find(b'DK1') != -1:
                self._version = 1

            else:
                raise Exception

        except:
            print("Error guessing device version (\"{0}\")".format(product_name))

    @property
    def shader_file(self):
        if self._version == 1:
            return 'oculus_dk1.glsl'
        else:
            return 'oculus_dk2.glsl'

    def _getMatrix(self):
        from oculusvr import Hmd
        from mathutils import (