dirs { { "dll/x64" }, { "dll/ARM64" }, { "dll/ARM64EC" } };
for (const auto & dir : dirs) {
diff --git a/commandLine/src/projects/visualStudioProject.h b/commandLine/src/projects/visualStudioProject.h
index 570bc876..da7050ea 100644
--- a/commandLine/src/projects/visualStudioProject.h
+++ b/commandLine/src/projects/visualStudioProject.h
@@ -23,6 +23,7 @@ class visualStudioProject : public baseProject {
addDefine(define, RELEASE_LIB);
addDefine(define, DEBUG_LIB);
projectDefines.emplace_back(define);
+ addPropertyDefine(define);
}
void addLDFLAG(const std::string& ldflag, LibType libType = RELEASE_LIB) override {}
@@ -58,4 +59,6 @@ class visualStudioProject : public baseProject {
void addCompileOption(const string& nodeName, const string& value, const string& delimiter, LibType libType = RELEASE_LIB);
void addClCompileAsC(const string & srcFileString, const string & folderString);
+ // defines openFrameworksCommon.props also reads as MSBuild properties (OF_USE_GLON12 copies the GLon12 DLLs, OF_USE_GLON12_WARP selects WARP)
+ void addPropertyDefine(const string & define);
};
diff --git a/frontend/app.js b/frontend/app.js
index dd9ca508..8931b8c2 100644
--- a/frontend/app.js
+++ b/frontend/app.js
@@ -1218,7 +1218,9 @@ function generate() {
// renderer choice adds its OF_USE_* define on top of whatever the user typed manually
const rendererDefines = {
angle: 'OF_USE_ANGLE=1',
- dawn: 'OF_USE_DAWN=1'
+ dawn: 'OF_USE_DAWN=1',
+ glon12: 'OF_USE_GLON12=1',
+ glon12warp: 'OF_USE_GLON12=1,OF_USE_GLON12_WARP=1'
};
const rendererChoice = $('#rendererDropdown').dropdown('get value');
const customDefinesText = $('#customDefines').val().trim();
@@ -1418,12 +1420,19 @@ function enableAdvancedMode(isAdvanced) {
//$("#advancedToggle").prop('checked', defaultSettings['advancedMode'] );
}
-// renderer choice (OF_USE_ANGLE / OF_USE_DAWN) only applies to the Xcode-based
-// osx/ios/macos (mega iOS/tvOS/macOS) targets, and is an advanced-only option
+// renderer choice is advanced-only: OF_USE_ANGLE / OF_USE_DAWN for the Xcode-based
+// osx/ios/macos (mega iOS/tvOS/macOS) targets, OF_USE_GLON12 for vs
function updateRendererFieldVisibility() {
- const rendererPlatforms = ['osx', 'ios', 'macos'];
const selectedPlatforms = ($("#platformsDropdown input").val() || '').trim().split(',');
- if (defaultSettings.advancedMode && selectedPlatforms.some((p) => rendererPlatforms.includes(p))) {
+ const apple = selectedPlatforms.some((p) => ['osx', 'ios', 'macos'].includes(p));
+ const vs = selectedPlatforms.includes('vs');
+ $('#rendererDropdown .item[data-value="angle"], #rendererDropdown .item[data-value="dawn"]').toggle(apple);
+ $('#rendererDropdown .item[data-value="glon12"], #rendererDropdown .item[data-value="glon12warp"]').toggle(vs);
+ const renderer = $('#rendererDropdown').dropdown('get value');
+ if ((['angle', 'dawn'].includes(renderer) && !apple) || (['glon12', 'glon12warp'].includes(renderer) && !vs)) {
+ $('#rendererDropdown').dropdown('set exactly', 'default');
+ }
+ if (defaultSettings.advancedMode && (apple || vs)) {
$('#rendererField').show();
} else {
$('#rendererField').hide();
diff --git a/frontend/index.html b/frontend/index.html
index dd7ee906..3a11faf1 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -234,13 +234,15 @@
Default (OpenGL / OpenGL ES)
-
diff --git a/frontend/npm-shrinkwrap.json b/frontend/npm-shrinkwrap.json
index 64ca9ce9..864c37a6 100644
--- a/frontend/npm-shrinkwrap.json
+++ b/frontend/npm-shrinkwrap.json
@@ -1,12 +1,12 @@
{
"name": "projectGenerator",
- "version": "0.106.0",
+ "version": "0.107.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "projectGenerator",
- "version": "0.106.0",
+ "version": "0.107.0",
"license": "MIT",
"dependencies": {
"@types/jquery": "^3.5.34",
diff --git a/frontend/package.json b/frontend/package.json
index b5b841f3..a4681511 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -1,7 +1,7 @@
{
"name": "projectGenerator",
"productName": "projectGenerator",
- "version": "0.106.0",
+ "version": "0.107.0",
"description": "Build electron GUI openFrameworks projectGenerator",
"license": "MIT",
"main": "index.js",
diff --git a/scripts/vs/test_cmdline.sh b/scripts/vs/test_cmdline.sh
index be642e05..a5d55abd 100755
--- a/scripts/vs/test_cmdline.sh
+++ b/scripts/vs/test_cmdline.sh
@@ -85,4 +85,15 @@ if [[ $errorcode -ne 0 ]]; then
exit $errorcode
fi
+echo "Test -DOF_USE_GLON12=1 sets the MSBuild property"
+./"${EXE_FILE}" -o"../openFrameworks" -p"vs" -D"OF_USE_GLON12=1" "../openFrameworks/apps/myApps/testingGLon12"
+errorcode=$?
+if [[ $errorcode -ne 0 ]]; then
+ exit $errorcode
+fi
+if ! grep -q "1" "../openFrameworks/apps/myApps/testingGLon12/testingGLon12.vcxproj"; then
+ echo "OF_USE_GLON12 property missing from testingGLon12.vcxproj"
+ exit 1
+fi
+
echo "Successful projectGenerator tests for [vs]"