Graphics API selection
This commit is contained in:
parent
19a218b44b
commit
c188020451
|
@ -1,4 +1,4 @@
|
|||
uniform float shirr[27];
|
||||
uniform float shirr[28];
|
||||
|
||||
vec3 shIrradiance(const vec3 nor, const float scale) {
|
||||
const float c1 = 0.429043;
|
||||
|
|
|
@ -159,9 +159,12 @@ def compile_project(target_name=None, is_publish=False, watch=False, patch=False
|
|||
cmd.append('--ffmpeg')
|
||||
cmd.append('"' + ffmpeg_path + '"')
|
||||
|
||||
if armutils.get_os() == 'win': # OpenGL for now
|
||||
if armutils.get_os() == 'win':
|
||||
cmd.append('-g')
|
||||
cmd.append('opengl2')
|
||||
if (target_name == '' or target_name == '--run') and wrd.arm_gapi_win == 'direct3d9':
|
||||
cmd.append('direct3d9')
|
||||
else:
|
||||
cmd.append('opengl2')
|
||||
|
||||
if kha_target_name == 'krom':
|
||||
if state.in_viewport:
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import armutils
|
||||
import subprocess
|
||||
import bpy
|
||||
|
||||
def kode_studio():
|
||||
sdk_path = armutils.get_sdk_path()
|
||||
|
@ -25,3 +26,24 @@ def get_kha_target(target_name): # TODO: remove
|
|||
if target_name == 'macos':
|
||||
return 'osx'
|
||||
return target_name
|
||||
|
||||
def runtime_to_gapi():
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
if wrd.arm_play_runtime == 'Krom' or wrd.arm_play_runtime == 'Native':
|
||||
return 'arm_gapi_' + armutils.get_os()
|
||||
else:
|
||||
return 'arm_gapi_html5'
|
||||
|
||||
def target_to_gapi():
|
||||
# TODO: align target names
|
||||
wrd = bpy.data.worlds['Arm']
|
||||
if wrd.arm_project_target == 'krom':
|
||||
return 'arm_gapi_' + armutils.get_os()
|
||||
elif wrd.arm_project_target == 'macos':
|
||||
return 'arm_gapi_mac'
|
||||
elif wrd.arm_project_target == 'windows':
|
||||
return 'arm_gapi_win'
|
||||
elif wrd.arm_project_target == 'android-native':
|
||||
return 'arm_gapi_android'
|
||||
else:
|
||||
return 'arm_gapi_' + wrd.arm_project_target
|
||||
|
|
|
@ -218,7 +218,7 @@ def make_forward_base(con_mesh, parse_opacity=False):
|
|||
|
||||
if '_Irr' in wrd.world_defs:
|
||||
frag.add_include('../../Shaders/std/shirr.glsl')
|
||||
frag.add_uniform('float shirr[27]', link='_envmapIrradiance', included=True)
|
||||
frag.add_uniform('float shirr[28]', link='_envmapIrradiance', included=True)
|
||||
if '_Rad' in wrd.world_defs:
|
||||
frag.add_uniform('sampler2D senvmapRadiance', link='_envmapRadiance')
|
||||
frag.add_uniform('sampler2D senvmapBrdf', link='_envmapBrdf')
|
||||
|
|
|
@ -45,7 +45,7 @@ def init_properties():
|
|||
bpy.types.World.arm_recompile_trigger = bpy.props.BoolProperty(name="Recompile Trigger", description="Force upcoming recomilation", default=False)
|
||||
bpy.types.World.arm_progress = bpy.props.FloatProperty(name="Progress", description="Current build progress", default=100.0, min=0.0, max=100.0, soft_min=0.0, soft_max=100.0, subtype='PERCENTAGE', get=log.get_progress)
|
||||
bpy.types.World.arm_version = StringProperty(name="Version", description="Armory SDK version", default=arm_ver)
|
||||
target_prop = EnumProperty(
|
||||
bpy.types.World.arm_project_target = EnumProperty(
|
||||
items = [('html5', 'HTML5', 'html5'),
|
||||
('windows', 'Windows', 'windows'),
|
||||
('macos', 'MacOS', 'macos'),
|
||||
|
@ -54,7 +54,6 @@ def init_properties():
|
|||
('android-native', 'Android', 'android-native'),
|
||||
('krom', 'Krom', 'krom')],
|
||||
name="Target", default='html5', description='Build paltform')
|
||||
bpy.types.World.arm_project_target = target_prop
|
||||
bpy.types.World.arm_project_name = StringProperty(name="Name", description="Exported project name", default="")
|
||||
bpy.types.World.arm_project_package = StringProperty(name="Package", description="Package name for scripts", default="arm")
|
||||
bpy.types.World.arm_play_active_scene = BoolProperty(name="Play Active Scene", description="Load currently edited scene when launching player", default=True)
|
||||
|
@ -111,6 +110,32 @@ def init_properties():
|
|||
('Krom', 'Krom', 'Krom')],
|
||||
name="Runtime", description="Player runtime used when launching in new window", default='Krom', update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.arm_loadbar = BoolProperty(name="Load Bar", description="Show asset loading progress on published builds", default=True)
|
||||
bpy.types.World.arm_gapi_win = EnumProperty(
|
||||
items = [('opengl2', 'OpenGL', 'opengl2'),
|
||||
('vulkan', 'Vulkan', 'vulkan'),
|
||||
('direct3d9', 'Direct3D9', 'direct3d9'),
|
||||
('direct3d11', 'Direct3D11', 'direct3d11'),
|
||||
('direct3d12', 'Direct3D12', 'direct3d12')],
|
||||
name="Graphics API", default='opengl2', description='Based on currently selected target')
|
||||
bpy.types.World.arm_gapi_linux = EnumProperty(
|
||||
items = [('opengl2', 'OpenGL', 'opengl2'),
|
||||
('vulkan', 'Vulkan', 'vulkan')],
|
||||
name="Graphics API", default='opengl2', description='Based on currently selected target')
|
||||
bpy.types.World.arm_gapi_android = EnumProperty(
|
||||
items = [('opengl2', 'OpenGL', 'opengl2'),
|
||||
('vulkan', 'Vulkan', 'vulkan')],
|
||||
name="Graphics API", default='opengl2', description='Based on currently selected target')
|
||||
bpy.types.World.arm_gapi_mac = EnumProperty(
|
||||
items = [('opengl2', 'OpenGL', 'opengl2'),
|
||||
('metal', 'Metal', 'metal')],
|
||||
name="Graphics API", default='opengl2', description='Based on currently selected target')
|
||||
bpy.types.World.arm_gapi_ios = EnumProperty(
|
||||
items = [('opengl2', 'OpenGL', 'opengl2'),
|
||||
('metal', 'Metal', 'metal')],
|
||||
name="Graphics API", default='opengl2', description='Based on currently selected target')
|
||||
bpy.types.World.arm_gapi_html5 = EnumProperty(
|
||||
items = [('webgl', 'WebGL', 'webgl')],
|
||||
name="Graphics API", default='webgl', description='Based on currently selected target')
|
||||
|
||||
# For object
|
||||
bpy.types.Object.instanced_children = bpy.props.BoolProperty(name="Instanced Children", description="Use instaced rendering", default=False, update=invalidate_mesh_cache)
|
||||
|
|
|
@ -376,6 +376,7 @@ class ArmoryPlayerPanel(bpy.types.Panel):
|
|||
|
||||
layout.prop(wrd, 'arm_play_advanced')
|
||||
if wrd.arm_play_advanced:
|
||||
layout.prop(wrd, make_utils.runtime_to_gapi())
|
||||
layout.prop(wrd, 'arm_play_console')
|
||||
if armutils.with_krom():
|
||||
layout.prop(wrd, 'arm_play_live_patch')
|
||||
|
@ -415,6 +416,7 @@ class ArmoryProjectPanel(bpy.types.Panel):
|
|||
row.operator("arm.build_project")
|
||||
row.operator("arm.publish_project")
|
||||
layout.prop(wrd, 'arm_project_target')
|
||||
layout.prop(wrd, make_utils.target_to_gapi())
|
||||
|
||||
layout.prop(wrd, 'arm_project_advanced')
|
||||
if wrd.arm_project_advanced:
|
||||
|
|
Loading…
Reference in a new issue