summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp344
2 files changed, 0 insertions, 344 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime
new file mode 160000
+Subproject 2025912174c4cf99270b7439ec3b021e1d089ae
diff --git a/src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp b/src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp
deleted file mode 100644
index b72b0b02..00000000
--- a/src/Runtime/ogl-runtime/tools/attributehashes/AttributeHashes.cpp
+++ /dev/null
@@ -1,344 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma warning(disable : 4201) // nonstandard extension used : nameless struct/union
-
-#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later.
-#define _WIN32_WINNT \
- 0x0501 // Change this to the appropriate value to target other versions of Windows.
-#endif
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include <stdio.h>
-
-#if defined(_PCPLATFORM) || defined(_TEGRAPLATFORM)
-#include <tchar.h>
-#endif
-
-#include <string.h>
-#include <ctype.h>
-#include <vector>
-#include <fstream>
-#include <string>
-
-#include "Qt3DSConfig.h"
-#include "Qt3DSTypes.h"
-#include "Qt3DSKernelTypes.h"
-#include "Qt3DSHash.h"
-
-//==============================================================================
-// Types
-//==============================================================================
-typedef std::vector<std::string> TStringList;
-
-//==============================================================================
-// Constants
-//==============================================================================
-const char g_Text[] = "Qt3DSAttributeHashes.txt";
-const char g_Include[] = "Qt3DSAttributeHashes.h";
-const char g_Source[] = "Qt3DSAttributeHashes.cpp";
-const char g_TestString[] = "qt.io";
-
-//==============================================================================
-// Globals
-//==============================================================================
-TStringList g_StringList;
-TStringList g_EnumList;
-
-//==============================================================================
-/**
- * Convert a string to an enum entry and write it out
- */
-void WriteEnumEntry(FILE *inDestination, const char *inEnum, const char *inString)
-{
- // Save out the enum
- if (inEnum) {
- // Right justify the value by cutting a string of spaces
- char thePadding[] = " ";
- int theLength = (int)strlen(inEnum);
- theLength = theLength > 30 ? 30 : theLength;
- thePadding[30 - theLength] = '\0';
-
- // "ATTRIBUTE_NAME = 0x04CECA21, // name"
- fprintf(inDestination, " %s = %s0x%08X, // %s\n", inEnum, thePadding,
- Q3DStudio::CHash::HashAttribute(inString), inString);
- } else
- fprintf(inDestination, "\n");
-}
-
-//==============================================================================
-/**
- * Write out the enum section
- */
-void WriteEnum(FILE *inDestination)
-{
- // Enum entry
- fprintf(inDestination, "/// Key for the CElement attribute-value pair\n"
- "enum EAttribute {\n");
-
- // Write all enums
- for (TStringList::size_type theIndex = 0; theIndex < g_EnumList.size(); ++theIndex)
- if (!g_StringList[theIndex].empty())
- WriteEnumEntry(inDestination, g_EnumList[theIndex].c_str(),
- g_StringList[theIndex].c_str());
-
- // Enum Footer
- fprintf(inDestination, "}; // enum EAttribute\n"
- "\n"
- "#define AK_STRING_QT_IO \"%s\"\n",
- g_TestString);
-}
-
-//==============================================================================
-/**
- * Convert strings to enums
- */
-void ProcessEnums()
-{
- // Write all enums
- for (TStringList::iterator theAttribute = g_StringList.begin();
- theAttribute != g_StringList.end(); ++theAttribute) {
- std::string theEnum = std::string("ATTRIBUTE_");
- theEnum += *theAttribute;
-
- // Replace all '.' with '_'
- // Make uppercase
- for (std::string::size_type thePosition = 0; thePosition < theEnum.length();
- ++thePosition) {
- if (theEnum[thePosition] == '.')
- theEnum[thePosition] = '_';
-
- if (theEnum[thePosition] == '\n' || theEnum[thePosition] == '\r')
- theEnum[thePosition] = '\0';
-
- theEnum[thePosition] = static_cast<char>(toupper(theEnum[thePosition]));
- }
-
- g_EnumList.push_back(theEnum);
- }
-}
-
-//==============================================================================
-/**
- * Write out lookup function section
- */
-void WriteLookup(FILE *inDestination)
-{
- // Lookup function entry
- fprintf(inDestination, "\n"
- "\n"
- "/// Function providing reverse hash lookup\n"
- "const char *GetAttributeString(const EAttribute inAttribute)\n"
- "{\n"
- " switch (inAttribute) {\n");
-
- // Write all enums
- for (TStringList::size_type theIndex = 0; theIndex < g_EnumList.size(); ++theIndex)
- if (!g_StringList[theIndex].empty())
- fprintf(inDestination, " case %s: return \"%s\";\n", g_EnumList[theIndex].c_str(),
- g_StringList[theIndex].c_str());
-
- // End function
- fprintf(inDestination,
- " default: {\n"
- " static char s_UnknownHash[16];\n"
- " sprintf(s_UnknownHash, \"(0x%%08X)\", inAttribute);\n"
- " return s_UnknownHash;\n"
- " }\n"
- " }\n"
- "}\n");
-}
-
-//==============================================================================
-/**
- * Single lookup to check new strings
- */
-int SingleLookup(const char *inString)
-{
- fprintf(stdout, "String: %s\n", inString);
- fprintf(stdout, "Hash: 0x%08X\n", Q3DStudio::CHash::HashAttribute(inString));
- return 0;
-}
-
-//==============================================================================
-/**
- * Main function.
- * Open two files, read lines from source and write enum entry to destination.
- */
-int main(int argc, char *argv[])
-{
- // Application notice
- fprintf(
- stdout,
- "AttributeHashes\nConverting a string or a file of strings into enums of hashes...\n\n");
-
- // Checking a single string?
- if (argc > 1)
- return SingleLookup(argv[1]);
-
- // Standard file conversion
- fprintf(stdout, "Input: %s\n", g_Text);
- fprintf(stdout, "Output: %s, %s\n\n", g_Include, g_Source);
-
- // Open source
- std::ifstream theText(g_Text);
- if (!theText) {
- fprintf(stderr, "Failed: Could not input text file, set working directory to "
- "src\\Runtime\\ogl-runtime\\src\\runtime and try again.\n");
- return -1;
- }
-
- // Add all the strings in text file
- while (theText) {
- std::string theLine;
- theText >> theLine;
- g_StringList.push_back(theLine);
- }
- theText.close();
-
- // Add unit test string
- g_StringList.push_back(g_TestString);
-
- // Process all string to enums
- ProcessEnums();
-
- // Open include file
- FILE *theInclude = NULL;
- fopen_s(&theInclude, g_Include, "w");
- if (!theInclude) {
- fprintf(stderr, "Failed: Could not open output include file\n");
- return -1;
- }
-
- const char* theFileHeader =
- "/****************************************************************************\n"
- "**\n"
- "** Copyright (C) 1993-2009 NVIDIA Corporation.\n"
- "** Copyright (C) 2019 The Qt Company Ltd.\n"
- "** Contact: https://www.qt.io/licensing/\n"
- "**\n"
- "** This file is part of Qt 3D Studio.\n"
- "**\n"
- "** $QT_BEGIN_LICENSE:GPL$\n"
- "** Commercial License Usage\n"
- "** Licensees holding valid commercial Qt licenses may use this file in\n"
- "** accordance with the commercial license agreement provided with the\n"
- "** Software or, alternatively, in accordance with the terms contained in\n"
- "** a written agreement between you and The Qt Company. For licensing terms\n"
- "** and conditions see https://www.qt.io/terms-conditions. For further\n"
- "** information use the contact form at https://www.qt.io/contact-us.\n"
- "**\n"
- "** GNU General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU\n"
- "** General Public License version 3 or (at your option) any later version\n"
- "** approved by the KDE Free Qt Foundation. The licenses are as published by\n"
- "** the Free Software Foundation and appearing in the file LICENSE.GPL3\n"
- "** included in the packaging of this file. Please review the following\n"
- "** information to ensure the GNU General Public License requirements will\n"
- "** be met: https://www.gnu.org/licenses/gpl-3.0.html.\n"
- "**\n"
- "** $QT_END_LICENSE$\n"
- "**\n"
- "****************************************************************************/\n\n";
-
- // Header
- fprintf(theInclude, theFileHeader);
- fprintf(
- theInclude,
- "#pragma once\n"
- "\n"
- "//==============================================================================\n"
- "// Namespace\n"
- "//==============================================================================\n"
- "namespace Q3DStudio {\n"
- "\n"
- "// !!!!! AUTOGENERATED CODE - DO NOT MODIFY MANUALLY !!!!!\n"
- "\n"
- "// Run the AttributeHashes project to regenerate this file from Attributehashes.txt list\n"
- "\n");
-
- WriteEnum(theInclude);
-
- // Footer
- fprintf(theInclude, "\n"
- "/// Function providing reverse hash lookup\n"
- "const char *GetAttributeString(const EAttribute inAttribute);\n"
- "\n"
- "} // namespace Q3DStudio\n"
- "\n");
-
- // Close include
- fclose(theInclude);
-
- // Open source file
- FILE *theSource = NULL;
- fopen_s(&theSource, g_Source, "w");
- if (!theSource) {
- fprintf(stderr, "Failed: Could not open output source file\n");
- return -1;
- }
-
- fprintf(theSource, theFileHeader);
-
- // Source
- fprintf(
- theSource,
- "#include \"RuntimePrefix.h\"\n"
- "\n"
- "//==============================================================================\n"
- "// Includes\n"
- "//==============================================================================\n"
- "#include \"Qt3DSAttributeHashes.h\"\n"
- "\n"
- "//==============================================================================\n"
- "// Namespace\n"
- "//==============================================================================\n"
- "namespace Q3DStudio {\n"
- "\n"
- "// !!!!! AUTOGENERATED CODE - DO NOT MODIFY MANUALLY !!!!!\n"
- "\n"
- "// Run the AttributeHashes project to regenerate this file from Attributehashes.txt list\n"
- "\n");
-
- WriteLookup(theSource);
-
- // Footer
- fprintf(theSource, "\n"
- "} // namespace Q3DStudio\n"
- "\n");
-
- // Close include
- fclose(theSource);
-
- // Completed
- fprintf(stdout, "Completed converting %d string to hashes.\n", int(g_StringList.size()));
- return 0;
-}