diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e4746418d..f8fd5b7637 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -10,7 +10,7 @@ endif()
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros/TargetPython.cmake")
target_python()
-if (WIN32)
+if (WIN32 AND NOT HIFI_ANDROID)
# Force x64 toolset
set(CMAKE_GENERATOR_TOOLSET "host=x64" CACHE STRING "64-bit toolset" FORCE)
endif()
diff --git a/README.md b/README.md
index 363064964a..46433a155c 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ Documentation
=========
Documentation is available at [docs.highfidelity.com](https://docs.highfidelity.com), if something is missing, please suggest it via a new job on Worklist (add to the hifi-docs project).
-There is also detailed [documentation on our coding standards](https://wiki.highfidelity.com/wiki/Coding_Standards).
+There is also detailed [documentation on our coding standards](CODING_STANDARD.md).
Contributor License Agreement (CLA)
=========
diff --git a/assignment-client/src/octree/OctreeServer.cpp b/assignment-client/src/octree/OctreeServer.cpp
index 477d3dd612..80e0060299 100644
--- a/assignment-client/src/octree/OctreeServer.cpp
+++ b/assignment-client/src/octree/OctreeServer.cpp
@@ -1292,6 +1292,7 @@ void OctreeServer::aboutToFinish() {
for (auto& it : _sendThreads) {
auto& sendThread = *it.second;
sendThread.setIsShuttingDown();
+ sendThread.terminate();
}
// Clear will destruct all the unique_ptr to OctreeSendThreads which will call the GenericThread's dtor
diff --git a/interface/resources/qml/hifi/audio/MicBarApplication.qml b/interface/resources/qml/hifi/audio/MicBarApplication.qml
index 838cc73cb8..3070ba3bbd 100644
--- a/interface/resources/qml/hifi/audio/MicBarApplication.qml
+++ b/interface/resources/qml/hifi/audio/MicBarApplication.qml
@@ -39,8 +39,8 @@ Rectangle {
}
Component.onCompleted: {
- AudioScriptingInterface.noiseGateOpened.connect(function() { gated = false; });
- AudioScriptingInterface.noiseGateClosed.connect(function() { gated = true; });
+ AudioScriptingInterface.noiseGateOpened.connect(function() { root.gated = false; });
+ AudioScriptingInterface.noiseGateClosed.connect(function() { root.gated = true; });
HMD.displayModeChanged.connect(function() {
muted = AudioScriptingInterface.muted;
pushToTalk = AudioScriptingInterface.pushToTalk;
@@ -151,7 +151,7 @@ Rectangle {
readonly property string yellow: "#C0C000";
readonly property string fill: "#55000000";
readonly property string border: standalone ? "#80FFFFFF" : "#55FFFFFF";
- readonly property string icon: (muted || clipping) ? mutedColor : gated ? gatedColor : unmutedColor;
+ readonly property string icon: (muted || clipping) ? mutedColor : root.gated ? gatedColor : unmutedColor;
}
Item {
@@ -169,7 +169,7 @@ Rectangle {
Image {
id: image;
source: (pushToTalk) ? pushToTalkIcon : muted ? mutedIcon :
- clipping ? clippingIcon : gated ? gatedIcon : unmutedIcon;
+ clipping ? clippingIcon : root.gated ? gatedIcon : unmutedIcon;
width: 29;
height: 32;
anchors {
diff --git a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml
index 822e485940..acabbe9485 100644
--- a/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml
+++ b/interface/resources/qml/hifi/simplifiedUI/topBar/SimplifiedTopBar.qml
@@ -362,8 +362,8 @@ Rectangle {
id: displayModeImage
source: HMD.active ? "./images/desktopMode.svg" : "./images/vrMode.svg"
anchors.centerIn: parent
- width: HMD.active ? 25 : 43
- height: 22
+ width: HMD.active ? 25 : 26
+ height: HMD.active ? 22 : 14
visible: false
}
diff --git a/launchers/darwin/CMakeLists.txt b/launchers/darwin/CMakeLists.txt
index 0a7ef70461..177a7722e5 100644
--- a/launchers/darwin/CMakeLists.txt
+++ b/launchers/darwin/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.0)
set(ENV{MACOSX_DEPLOYMENT_TARGET} 10.9)
project(HQLauncher)
set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/")
+include("cmake/macros/SetPackagingParameters.cmake")
set(src_files
src/Launcher.h
src/Launcher.m
@@ -59,15 +60,17 @@ set_target_properties(${this_target} PROPERTIES
set(MACOSX_BUNDLE_ICON_FILE "interface.icns")
function(set_from_env _RESULT_NAME _ENV_VAR_NAME _DEFAULT_VALUE)
- if (NOT DEFINED ${_RESULT_NAME})
- if ("$ENV{${_ENV_VAR_NAME}}" STREQUAL "")
- set (${_RESULT_NAME} ${_DEFAULT_VALUE} PARENT_SCOPE)
- else()
- set (${_RESULT_NAME} $ENV{${_ENV_VAR_NAME}} PARENT_SCOPE)
- endif()
+ if (NOT DEFINED ${_RESULT_NAME})
+ if ("$ENV{${_ENV_VAR_NAME}}" STREQUAL "")
+ set (${_RESULT_NAME} ${_DEFAULT_VALUE} PARENT_SCOPE)
+ else()
+ set (${_RESULT_NAME} $ENV{${_ENV_VAR_NAME}} PARENT_SCOPE)
endif()
+ endif()
endfunction()
+ set_packaging_parameters()
+
add_executable(${PROJECT_NAME} MACOSX_BUNDLE ${src_files})
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${APP_NAME}
MACOSX_BUNDLE_BUNDLE_NAME ${APP_NAME})
@@ -77,6 +80,7 @@ if ("${LAUNCHER_HMAC_SECRET}" STREQUAL "")
endif()
target_compile_definitions(${PROJECT_NAME} PRIVATE LAUNCHER_HMAC_SECRET="${LAUNCHER_HMAC_SECRET}")
+target_compile_definitions(${PROJECT_NAME} PRIVATE LAUNCHER_BUILD_VERSION="${BUILD_VERSION}")
file(GLOB NIB_FILES "nib/*.xib")
diff --git a/launchers/darwin/cmake/macros/SetPackagingParameters.cmake b/launchers/darwin/cmake/macros/SetPackagingParameters.cmake
new file mode 100644
index 0000000000..ed24b3bd6b
--- /dev/null
+++ b/launchers/darwin/cmake/macros/SetPackagingParameters.cmake
@@ -0,0 +1,45 @@
+#
+# SetPackagingParameters.cmake
+# cmake/macros
+#
+# Created by Leonardo Murillo on 07/14/2015.
+# Copyright 2015 High Fidelity, Inc.
+#
+# Distributed under the Apache License, Version 2.0.
+# See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
+
+# This macro checks some Jenkins defined environment variables to determine the origin of this build
+# and decides how targets should be packaged.
+
+macro(SET_PACKAGING_PARAMETERS)
+ set(PR_BUILD 0)
+ set(PRODUCTION_BUILD 0)
+ set(DEV_BUILD 0)
+ set(BUILD_NUMBER 0)
+
+ set_from_env(RELEASE_TYPE RELEASE_TYPE "DEV")
+ set_from_env(RELEASE_NUMBER RELEASE_NUMBER "")
+ set_from_env(STABLE_BUILD STABLE_BUILD 0)
+
+ message(STATUS "The RELEASE_TYPE variable is: ${RELEASE_TYPE}")
+ set(BUILD_NUMBER ${RELEASE_NUMBER})
+
+ if (RELEASE_TYPE STREQUAL "PRODUCTION")
+ set(PRODUCTION_BUILD 1)
+ set(BUILD_VERSION ${RELEASE_NUMBER})
+
+ # add definition for this release type
+ add_definitions(-DPRODUCTION_BUILD)
+
+ elseif (RELEASE_TYPE STREQUAL "PR")
+ set(PR_BUILD 1)
+ set(BUILD_VERSION "PR${RELEASE_NUMBER}")
+
+ # add definition for this release type
+ add_definitions(-DPR_BUILD)
+ else ()
+ set(DEV_BUILD 1)
+ set(BUILD_VERSION "dev")
+ endif ()
+
+endmacro(SET_PACKAGING_PARAMETERS)
diff --git a/launchers/darwin/nib/DisplayNameScreen.xib b/launchers/darwin/nib/DisplayNameScreen.xib
index 94fa739f8e..9862c3773b 100644
--- a/launchers/darwin/nib/DisplayNameScreen.xib
+++ b/launchers/darwin/nib/DisplayNameScreen.xib
@@ -102,12 +102,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/launchers/darwin/nib/ErrorScreen.xib b/launchers/darwin/nib/ErrorScreen.xib
index 26abe80b29..267c9b2f29 100644
--- a/launchers/darwin/nib/ErrorScreen.xib
+++ b/launchers/darwin/nib/ErrorScreen.xib
@@ -69,12 +69,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/launchers/darwin/nib/LoginScreen.xib b/launchers/darwin/nib/LoginScreen.xib
index fc1ccfcc90..3ae91632c2 100644
--- a/launchers/darwin/nib/LoginScreen.xib
+++ b/launchers/darwin/nib/LoginScreen.xib
@@ -119,12 +119,22 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/launchers/darwin/nib/ProcessScreen.xib b/launchers/darwin/nib/ProcessScreen.xib
index d16d71e5fa..c32abb5f9d 100644
--- a/launchers/darwin/nib/ProcessScreen.xib
+++ b/launchers/darwin/nib/ProcessScreen.xib
@@ -53,6 +53,15 @@
+
+
+
+
+
+
+
+
+
@@ -60,6 +69,7 @@
+
diff --git a/launchers/darwin/nib/SplashScreen.xib b/launchers/darwin/nib/SplashScreen.xib
index 3bbed22a59..988de78399 100644
--- a/launchers/darwin/nib/SplashScreen.xib
+++ b/launchers/darwin/nib/SplashScreen.xib
@@ -26,11 +26,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/launchers/darwin/src/DisplayNameScreen.m b/launchers/darwin/src/DisplayNameScreen.m
index 581eabc4ee..ecb619dc01 100644
--- a/launchers/darwin/src/DisplayNameScreen.m
+++ b/launchers/darwin/src/DisplayNameScreen.m
@@ -6,6 +6,7 @@
@property (nonatomic, assign) IBOutlet NSImageView* backgroundImage;
@property (nonatomic, assign) IBOutlet NSImageView* smallLogo;
@property (nonatomic, assign) IBOutlet NSTextField* displayName;
+@property (nonatomic, assign) IBOutlet NSTextField* buildVersion;
@end
@implementation DisplayNameScreen
@@ -13,10 +14,9 @@
[self.backgroundImage setImage: [NSImage imageNamed:hifiBackgroundFilename]];
[self.smallLogo setImage: [NSImage imageNamed:hifiSmallLogoFilename]];
NSMutableAttributedString* displayNameString = [[NSMutableAttributedString alloc] initWithString:@"Display Name"];
-
+ [self.buildVersion setStringValue: [@"V." stringByAppendingString:@LAUNCHER_BUILD_VERSION]];
[displayNameString addAttribute:NSForegroundColorAttributeName value:[NSColor grayColor] range:NSMakeRange(0, displayNameString.length)];
[displayNameString addAttribute:NSFontAttributeName value:[NSFont systemFontOfSize:18] range:NSMakeRange(0,displayNameString.length)];
-
[self.displayName setPlaceholderAttributedString:displayNameString];
[self.displayName setTarget:self];
[self.displayName setAction:@selector(login:)];
diff --git a/launchers/darwin/src/ErrorViewController.m b/launchers/darwin/src/ErrorViewController.m
index 84dee95678..af45175254 100644
--- a/launchers/darwin/src/ErrorViewController.m
+++ b/launchers/darwin/src/ErrorViewController.m
@@ -6,6 +6,7 @@
@property (nonatomic, assign) IBOutlet NSImageView* backgroundImage;
@property (nonatomic, assign) IBOutlet NSImageView* smallLogo;
@property (nonatomic, assign) IBOutlet NSImageView* voxelImage;
+@property (nonatomic, assign) IBOutlet NSTextField* buildVersion;
@end
@@ -16,6 +17,7 @@
[self.backgroundImage setImage:[NSImage imageNamed:hifiBackgroundFilename]];
[self.smallLogo setImage:[NSImage imageNamed:hifiSmallLogoFilename]];
[self.voxelImage setImage:[NSImage imageNamed:hifiVoxelFilename]];
+ [self.buildVersion setStringValue: [@"V." stringByAppendingString:@LAUNCHER_BUILD_VERSION]];
}
-(IBAction)resartLauncher:(id)sender
diff --git a/launchers/darwin/src/LoginScreen.m b/launchers/darwin/src/LoginScreen.m
index d654a14f1b..5b8cab2db6 100644
--- a/launchers/darwin/src/LoginScreen.m
+++ b/launchers/darwin/src/LoginScreen.m
@@ -12,6 +12,7 @@
@property (nonatomic, assign) IBOutlet NSTextField* smallHeader;
@property (nonatomic, assign) IBOutlet NSTextField* trouble;
@property (nonatomic, assign) IBOutlet NSButton* button;
+@property (nonatomic, assign) IBOutlet NSTextField* buildVersion;
@end
@implementation LoginScreen
@@ -36,6 +37,7 @@
[self.button setTitle:@"TRY AGAIN"];
}
+ [self.buildVersion setStringValue: [@"V." stringByAppendingString:@LAUNCHER_BUILD_VERSION]];
[self.backgroundImage setImage:[NSImage imageNamed:hifiBackgroundFilename]];
[self.smallLogo setImage:[NSImage imageNamed:hifiSmallLogoFilename]];
diff --git a/launchers/darwin/src/ProcessScreen.m b/launchers/darwin/src/ProcessScreen.m
index 85ec5c8d5b..876be3fea3 100644
--- a/launchers/darwin/src/ProcessScreen.m
+++ b/launchers/darwin/src/ProcessScreen.m
@@ -9,6 +9,7 @@
@property (nonatomic, assign) IBOutlet NSTextField* boldStatus;
@property (nonatomic, assign) IBOutlet NSTextField* smallStatus;
@property (nonatomic, assign) IBOutlet NSProgressIndicator* progressView;
+@property (nonatomic, assign) IBOutlet NSTextField* buildVersion;
@end
@implementation ProcessScreen
@@ -37,6 +38,7 @@
default:
break;
}
+ [self.buildVersion setStringValue: [@"V." stringByAppendingString:@LAUNCHER_BUILD_VERSION]];
[self.background setImage: [NSImage imageNamed:hifiBackgroundFilename]];
[self.smallLogo setImage: [NSImage imageNamed:hifiSmallLogoFilename]];
[self.voxelImage setImage: [NSImage imageNamed:hifiVoxelFilename]];
diff --git a/launchers/darwin/src/SplashScreen.m b/launchers/darwin/src/SplashScreen.m
index a1f726c1df..87d8681629 100644
--- a/launchers/darwin/src/SplashScreen.m
+++ b/launchers/darwin/src/SplashScreen.m
@@ -6,6 +6,7 @@
@property (nonatomic, assign) IBOutlet NSImageView* imageView;
@property (nonatomic, assign) IBOutlet NSImageView* logoImage;
@property (nonatomic, assign) IBOutlet NSButton* button;
+@property (nonatomic, assign) IBOutlet NSTextField* buildVersion;
@end
@implementation SplashScreen
@@ -15,5 +16,6 @@
-(void)awakeFromNib {
[self.imageView setImage:[NSImage imageNamed:hifiBackgroundFilename]];
[self.logoImage setImage:[NSImage imageNamed:hifiLargeLogoFilename]];
+ [self.buildVersion setStringValue: [@"V." stringByAppendingString:@LAUNCHER_BUILD_VERSION]];
}
@end
diff --git a/libraries/platform/src/platform/backend/PlatformInstance.cpp b/libraries/platform/src/platform/backend/PlatformInstance.cpp
index 038521d398..d4cadba3b7 100644
--- a/libraries/platform/src/platform/backend/PlatformInstance.cpp
+++ b/libraries/platform/src/platform/backend/PlatformInstance.cpp
@@ -107,7 +107,8 @@ void Instance::enumerateNics() {
json Instance::getCPU(int index) {
assert(index <(int) _cpus.size());
- if (index >= (int)_cpus.size())
+
+ if (index < 0 || (int) _cpus.size() <= index)
return json();
return _cpus.at(index);
@@ -116,7 +117,7 @@ json Instance::getCPU(int index) {
json Instance::getGPU(int index) {
assert(index <(int) _gpus.size());
- if (index >=(int) _gpus.size())
+ if (index < 0 || (int) _gpus.size() <= index)
return json();
return _gpus.at(index);
@@ -126,7 +127,7 @@ json Instance::getGPU(int index) {
json Instance::getDisplay(int index) {
assert(index <(int) _displays.size());
- if (index >=(int) _displays.size())
+ if (index < 0 || (int) _displays.size() <= index)
return json();
return _displays.at(index);
diff --git a/libraries/render-utils/src/DeferredLightingEffect.cpp b/libraries/render-utils/src/DeferredLightingEffect.cpp
index 3b7c66d42d..8d7fc345ac 100644
--- a/libraries/render-utils/src/DeferredLightingEffect.cpp
+++ b/libraries/render-utils/src/DeferredLightingEffect.cpp
@@ -44,10 +44,10 @@ using namespace render;
static void loadLightProgram(int programId, bool lightVolume, gpu::PipelinePointer& program);
void DeferredLightingEffect::init() {
- loadLightProgram(shader::render_utils::program::directional_ambient_light, false, _directionalAmbientSphereLight);
+ loadLightProgram(shader::render_utils::program::directional_skybox_light_ambient, false, _directionalAmbientSphereLight);
loadLightProgram(shader::render_utils::program::directional_skybox_light, false, _directionalSkyboxLight);
- loadLightProgram(shader::render_utils::program::directional_ambient_light_shadow, false, _directionalAmbientSphereLightShadow);
+ loadLightProgram(shader::render_utils::program::directional_skybox_light_ambient_shadow, false, _directionalAmbientSphereLightShadow);
loadLightProgram(shader::render_utils::program::directional_skybox_light_shadow, false, _directionalSkyboxLightShadow);
loadLightProgram(shader::render_utils::program::local_lights_shading, true, _localLight);
diff --git a/libraries/render-utils/src/directional_ambient_light.slf b/libraries/render-utils/src/directional_ambient_light.slf
deleted file mode 100644
index dd1b59f43e..0000000000
--- a/libraries/render-utils/src/directional_ambient_light.slf
+++ /dev/null
@@ -1,57 +0,0 @@
-<@include gpu/Config.slh@>
-<$VERSION_HEADER$>
-// Generated on <$_SCRIBE_DATE$>
-//
-// directional_ambient_light.frag
-// fragment shader
-//
-// Created by Andrzej Kapolka on 9/3/14.
-// Copyright 2016 High Fidelity, Inc.
-//
-// Distributed under the Apache License, Version 2.0.
-// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
-//
-<@include DeferredBufferRead.slh@>
-<@include render-utils/ShaderConstants.h@>
-
-<@include GlobalLight.slh@>
-<$declareEvalAmbientSphereGlobalColor(supportScattering)$>
-
-layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
-#define _texCoord0 _texCoord01.xy
-#define _texCoord1 _texCoord01.zw
-layout(location=0) out vec4 _fragColor;
-
-void main(void) {
- DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
- DeferredFragment frag = unpackDeferredFragment(deferredTransform, _texCoord0);
-
- float shadowAttenuation = 1.0;
-
- if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
- discard;
- } else {
- vec4 midNormalCurvature = vec4(0);
- vec4 lowNormalCurvature = vec4(0);
- unpackMidLowNormalCurvature(_texCoord0, midNormalCurvature, lowNormalCurvature);
- float check = float(frag.mode == FRAG_MODE_SCATTERING);
- midNormalCurvature = check * midNormalCurvature;
- lowNormalCurvature = check * lowNormalCurvature;
-
- vec3 color = evalAmbientSphereGlobalColor(
- getViewInverse(),
- shadowAttenuation,
- frag.obscurance,
- frag.position.xyz,
- frag.normal,
- frag.albedo,
- frag.fresnel,
- frag.metallic,
- frag.roughness,
- frag.scattering,
- midNormalCurvature,
- lowNormalCurvature);
- _fragColor = vec4(color, 1.0);
-
- }
-}
diff --git a/libraries/render-utils/src/directional_ambient_light_shadow.slf b/libraries/render-utils/src/directional_ambient_light_shadow.slf
deleted file mode 100644
index 34018125af..0000000000
--- a/libraries/render-utils/src/directional_ambient_light_shadow.slf
+++ /dev/null
@@ -1,63 +0,0 @@
-<@include gpu/Config.slh@>
-<$VERSION_HEADER$>
-// Generated on <$_SCRIBE_DATE$>
-//
-// directional_ambient_light_shadow.frag
-// fragment shader
-//
-// Created by Zach Pomerantz on 1/18/2016.
-// Copyright 2016 High Fidelity, Inc.
-//
-// Distributed under the Apache License, Version 2.0.
-// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
-//
-<@include DeferredBufferRead.slh@>
-<@include render-utils/ShaderConstants.h@>
-
-<@include GlobalLight.slh@>
-<$declareEvalAmbientSphereGlobalColor(isScattering)$>
-
-<@include Shadow.slh@>
-
-layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
-#define _texCoord0 _texCoord01.xy
-#define _texCoord1 _texCoord01.zw
-layout(location=0) out vec4 _fragColor;
-
-void main(void) {
- DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
- DeferredFragment frag = unpackDeferredFragment(deferredTransform, _texCoord0);
-
- vec4 viewPos = vec4(frag.position.xyz, 1.0);
- vec4 worldPos = getViewInverse() * viewPos;
- Light shadowLight = getKeyLight();
- vec3 worldLightDirection = getLightDirection(shadowLight);
- float shadowAttenuation = evalShadowAttenuation(worldLightDirection, worldPos, -viewPos.z, frag.normal);
-
- if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
- discard;
- } else {
- vec4 midNormalCurvature = vec4(0);
- vec4 lowNormalCurvature = vec4(0);
- unpackMidLowNormalCurvature(_texCoord0, midNormalCurvature, lowNormalCurvature);
- float check = float(frag.mode == FRAG_MODE_SCATTERING);
- midNormalCurvature = check * midNormalCurvature;
- lowNormalCurvature = check * lowNormalCurvature;
-
- vec3 color = evalAmbientSphereGlobalColor(
- getViewInverse(),
- shadowAttenuation,
- frag.obscurance,
- frag.position.xyz,
- frag.normal,
- frag.albedo,
- frag.fresnel,
- frag.metallic,
- frag.roughness,
- frag.scattering,
- midNormalCurvature,
- lowNormalCurvature);
-
- _fragColor = vec4(color, 1.0);
- }
-}
diff --git a/libraries/render-utils/src/directional_skybox_light.slf b/libraries/render-utils/src/directional_skybox_light.slf
index 8e2b38b478..20026283be 100644
--- a/libraries/render-utils/src/directional_skybox_light.slf
+++ b/libraries/render-utils/src/directional_skybox_light.slf
@@ -1,10 +1,8 @@
<@include gpu/Config.slh@>
<$VERSION_HEADER$>
+// <$_SCRIBE_FILENAME$>
// Generated on <$_SCRIBE_DATE$>
//
-// directional_skybox_light.frag
-// fragment shader
-//
// Created by Sam Gateau on 5/8/2015.
// Copyright 2016 High Fidelity, Inc.
//
@@ -15,20 +13,36 @@
<@include render-utils/ShaderConstants.h@>
<@include GlobalLight.slh@>
-<$declareEvalSkyboxGlobalColor(isScattering, _SCRIBE_NULL)$>
+<@if HIFI_USE_AMBIENT@>
+ <$declareEvalAmbientSphereGlobalColor(supportScattering)$>
+<@else@>
+ <$declareEvalSkyboxGlobalColor(supportScattering, _SCRIBE_NULL)$>
+<@endif@>
+
+<@if HIFI_USE_SHADOW@>
+ <@include Shadow.slh@>
+<@endif@>
layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
#define _texCoord0 _texCoord01.xy
#define _texCoord1 _texCoord01.zw
+
layout(location=0) out vec4 _fragColor;
void main(void) {
DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
DeferredFragment frag = unpackDeferredFragment(deferredTransform, _texCoord0);
+<@if HIFI_USE_SHADOW@>
+ vec4 viewPos = vec4(frag.position.xyz, 1.0);
+ vec4 worldPos = getViewInverse() * viewPos;
+ Light shadowLight = getKeyLight();
+ vec3 worldLightDirection = getLightDirection(shadowLight);
+ float shadowAttenuation = evalShadowAttenuation(worldLightDirection, worldPos, -viewPos.z, frag.normal);
+<@else@>
float shadowAttenuation = 1.0;
+<@endif@>
- // Light mapped or not ?
if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
discard;
} else {
@@ -39,6 +53,21 @@ void main(void) {
midNormalCurvature = check * midNormalCurvature;
lowNormalCurvature = check * lowNormalCurvature;
+<@if HIFI_USE_AMBIENT@>
+ vec3 color = evalAmbientSphereGlobalColor(
+ getViewInverse(),
+ shadowAttenuation,
+ frag.obscurance,
+ frag.position.xyz,
+ frag.normal,
+ frag.albedo,
+ frag.fresnel,
+ frag.metallic,
+ frag.roughness,
+ frag.scattering,
+ midNormalCurvature,
+ lowNormalCurvature);
+<@else@>
vec3 color = evalSkyboxGlobalColor(
getViewInverse(),
shadowAttenuation,
@@ -52,6 +81,7 @@ void main(void) {
frag.scattering,
midNormalCurvature,
lowNormalCurvature);
+<@endif@>
_fragColor = vec4(color, 1.0);
}
diff --git a/libraries/render-utils/src/directional_skybox_light_shadow.slf b/libraries/render-utils/src/directional_skybox_light_shadow.slf
deleted file mode 100644
index 2f289ed00f..0000000000
--- a/libraries/render-utils/src/directional_skybox_light_shadow.slf
+++ /dev/null
@@ -1,64 +0,0 @@
-<@include gpu/Config.slh@>
-<$VERSION_HEADER$>
-// Generated on <$_SCRIBE_DATE$>
-//
-// directional_skybox_light_shadow.frag
-// fragment shader
-//
-// Created by Zach Pomerantz on 1/18/2016.
-// Copyright 2016 High Fidelity, Inc.
-//
-// Distributed under the Apache License, Version 2.0.
-// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
-//!>
-<@include DeferredBufferRead.slh@>
-<@include render-utils/ShaderConstants.h@>
-
-<@include GlobalLight.slh@>
-<$declareEvalSkyboxGlobalColor(isScattering, _SCRIBE_NULL)$>
-
-<@include Shadow.slh@>
-
-layout(location=RENDER_UTILS_ATTR_TEXCOORD01) in vec4 _texCoord01;
-#define _texCoord0 _texCoord01.xy
-#define _texCoord1 _texCoord01.zw
-layout(location=0) out vec4 _fragColor;
-
-void main(void) {
- DeferredFrameTransform deferredTransform = getDeferredFrameTransform();
- DeferredFragment frag = unpackDeferredFragment(deferredTransform, _texCoord0);
-
- vec4 viewPos = vec4(frag.position.xyz, 1.0);
- vec4 worldPos = getViewInverse() * viewPos;
- Light shadowLight = getKeyLight();
- vec3 worldLightDirection = getLightDirection(shadowLight);
- float shadowAttenuation = evalShadowAttenuation(worldLightDirection, worldPos, -viewPos.z, frag.normal);
-
- if (frag.mode == FRAG_MODE_UNLIT || frag.mode == FRAG_MODE_LIGHTMAPPED) {
- discard;
- } else {
- vec4 midNormalCurvature = vec4(0);
- vec4 lowNormalCurvature = vec4(0);
- unpackMidLowNormalCurvature(_texCoord0, midNormalCurvature, lowNormalCurvature);
- float check = float(frag.mode == FRAG_MODE_SCATTERING);
- midNormalCurvature = check * midNormalCurvature;
- lowNormalCurvature = check * lowNormalCurvature;
-
- vec3 color = evalSkyboxGlobalColor(
- getViewInverse(),
- shadowAttenuation,
- frag.obscurance,
- frag.position.xyz,
- frag.normal,
- frag.albedo,
- frag.fresnel,
- frag.metallic,
- frag.roughness,
- frag.scattering,
- midNormalCurvature,
- lowNormalCurvature);
-
-
- _fragColor = vec4(color, 1.0);
- }
-}
diff --git a/libraries/render-utils/src/render-utils/directional_ambient_light.slp b/libraries/render-utils/src/render-utils/directional_ambient_light.slp
deleted file mode 100644
index 3aeca942ab..0000000000
--- a/libraries/render-utils/src/render-utils/directional_ambient_light.slp
+++ /dev/null
@@ -1 +0,0 @@
-VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp b/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp
deleted file mode 100644
index 3aeca942ab..0000000000
--- a/libraries/render-utils/src/render-utils/directional_ambient_light_shadow.slp
+++ /dev/null
@@ -1 +0,0 @@
-VERTEX deferred_light
diff --git a/libraries/render-utils/src/render-utils/directional_skybox_light.slp b/libraries/render-utils/src/render-utils/directional_skybox_light.slp
index 3aeca942ab..7e0a0dd1db 100644
--- a/libraries/render-utils/src/render-utils/directional_skybox_light.slp
+++ b/libraries/render-utils/src/render-utils/directional_skybox_light.slp
@@ -1 +1,2 @@
VERTEX deferred_light
+DEFINES ambient:f shadow:f
\ No newline at end of file
diff --git a/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp b/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp
deleted file mode 100644
index 3aeca942ab..0000000000
--- a/libraries/render-utils/src/render-utils/directional_skybox_light_shadow.slp
+++ /dev/null
@@ -1 +0,0 @@
-VERTEX deferred_light
diff --git a/libraries/shared/src/CPUIdent.cpp b/libraries/shared/src/CPUIdent.cpp
index b11ba8950d..e760cd6f6a 100644
--- a/libraries/shared/src/CPUIdent.cpp
+++ b/libraries/shared/src/CPUIdent.cpp
@@ -82,39 +82,22 @@ std::vector CPUIdent::getAllFeatures() {
};
-CPUIdent::CPUIdent_Internal::CPUIdent_Internal()
- : nIds_{ 0 },
- nExIds_{ 0 },
- isIntel_{ false },
- isAMD_{ false },
- f_1_ECX_{ 0 },
- f_1_EDX_{ 0 },
- f_7_EBX_{ 0 },
- f_7_ECX_{ 0 },
- f_81_ECX_{ 0 },
- f_81_EDX_{ 0 },
- data_{},
- extdata_{}
- {
+CPUIdent::CPUIdent_Internal::CPUIdent_Internal() {
//int cpuInfo[4] = {-1};
- std::array cpui;
+ uint32_t cpui[4];
// Calling __cpuid with 0x0 as the function_id argument
// gets the number of the highest valid function ID.
- getCPUID(cpui.data(), 0);
+ getCPUID(cpui, 0);
nIds_ = cpui[0];
- for (uint32_t i = 0; i <= nIds_; ++i) {
- getCPUIDEX(cpui.data(), i, 0);
- data_.push_back(cpui);
- }
-
// Capture vendor string
char vendor[0x20];
memset(vendor, 0, sizeof(vendor));
- *reinterpret_cast(vendor) = data_[0][1];
- *reinterpret_cast(vendor + 4) = data_[0][3];
- *reinterpret_cast(vendor + 8) = data_[0][2];
+ getCPUIDEX(cpui, 0, 0);
+ *reinterpret_cast(vendor) = cpui[1];
+ *reinterpret_cast(vendor + 4) = cpui[3];
+ *reinterpret_cast(vendor + 8) = cpui[2];
vendor_ = vendor;
if (vendor_ == "GenuineIntel") {
isIntel_ = true;
@@ -125,40 +108,41 @@ CPUIdent::CPUIdent_Internal::CPUIdent_Internal()
// load bitset with flags for function 0x00000001
if (nIds_ >= 1) {
- f_1_ECX_ = data_[1][2];
- f_1_EDX_ = data_[1][3];
+ getCPUIDEX(cpui, 1, 0);
+ f_1_ECX_ = cpui[2];
+ f_1_EDX_ = cpui[3];
}
// load bitset with flags for function 0x00000007
if (nIds_ >= 7) {
- f_7_EBX_ = data_[7][1];
- f_7_ECX_ = data_[7][2];
+ getCPUIDEX(cpui, 7, 0);
+ f_7_EBX_ = cpui[1];
+ f_7_ECX_ = cpui[2];
}
// Calling __cpuid with 0x80000000 as the function_id argument
// gets the number of the highest valid extended ID.
- getCPUID(cpui.data(), 0x80000000);
+ getCPUID(cpui, 0x80000000);
nExIds_ = cpui[0];
char brand[0x40];
memset(brand, 0, sizeof(brand));
- for (uint32_t i = 0x80000000; i <= nExIds_; ++i) {
- getCPUIDEX(cpui.data(), i, 0);
- extdata_.push_back(cpui);
- }
-
// load bitset with flags for function 0x80000001
if (nExIds_ >= 0x80000001) {
- f_81_ECX_ = extdata_[1][2];
- f_81_EDX_ = extdata_[1][3];
+ getCPUIDEX(cpui, 0x80000001, 0);
+ f_81_ECX_ = cpui[2];
+ f_81_EDX_ = cpui[3];
}
// Interpret CPU brand string if reported
if (nExIds_ >= 0x80000004) {
- memcpy(brand, extdata_[2].data(), sizeof(cpui));
- memcpy(brand + 16, extdata_[3].data(), sizeof(cpui));
- memcpy(brand + 32, extdata_[4].data(), sizeof(cpui));
+ getCPUIDEX(cpui, 0x80000002, 0);
+ memcpy(brand, cpui, sizeof(cpui));
+ getCPUIDEX(cpui, 0x80000003, 0);
+ memcpy(brand + 16, cpui, sizeof(cpui));
+ getCPUIDEX(cpui, 0x80000004, 0);
+ memcpy(brand + 32, cpui, sizeof(cpui));
brand_ = brand;
}
}
diff --git a/libraries/shared/src/CPUIdent.h b/libraries/shared/src/CPUIdent.h
index dbf0c3ea91..d7bf03002b 100644
--- a/libraries/shared/src/CPUIdent.h
+++ b/libraries/shared/src/CPUIdent.h
@@ -100,25 +100,22 @@ public:
private:
static const CPUIdent_Internal CPU_Rep;
- class CPUIdent_Internal
- {
+ class CPUIdent_Internal {
public:
CPUIdent_Internal();
- uint32_t nIds_;
- uint32_t nExIds_;
+ uint32_t nIds_{ 0 };
+ uint32_t nExIds_{ 0 };
std::string vendor_;
std::string brand_;
- bool isIntel_;
- bool isAMD_;
- std::bitset<32> f_1_ECX_;
- std::bitset<32> f_1_EDX_;
- std::bitset<32> f_7_EBX_;
- std::bitset<32> f_7_ECX_;
- std::bitset<32> f_81_ECX_;
- std::bitset<32> f_81_EDX_;
- std::vector> data_;
- std::vector> extdata_;
+ bool isIntel_{ false };
+ bool isAMD_{ false };
+ std::bitset<32> f_1_ECX_{ 0 };
+ std::bitset<32> f_1_EDX_{ 0 };
+ std::bitset<32> f_7_EBX_{ 0 };
+ std::bitset<32> f_7_ECX_{ 0 };
+ std::bitset<32> f_81_ECX_{ 0 };
+ std::bitset<32> f_81_EDX_{ 0 };
};
};