From 769a31fd1a0ef1bb369eec43f0e2105145f59811 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Fri, 19 Nov 2010 14:42:55 +0100 Subject: [PATCH] Introduced GLSL::DiagnosticMessage. --- src/libs/glsl/glslengine.cpp | 99 ++++++++++++++++++++++++++++++++++++ src/libs/glsl/glslengine.h | 68 +++++++++++++++++++++++++ 2 files changed, 167 insertions(+) diff --git a/src/libs/glsl/glslengine.cpp b/src/libs/glsl/glslengine.cpp index fc157d2edaa..df5cdb28a64 100644 --- a/src/libs/glsl/glslengine.cpp +++ b/src/libs/glsl/glslengine.cpp @@ -1,7 +1,81 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #include "glslengine.h" using namespace GLSL; +DiagnosticMessage::DiagnosticMessage() + : _kind(Error), _line(0) +{ +} + +DiagnosticMessage::Kind DiagnosticMessage::kind() const +{ + return _kind; +} + +void DiagnosticMessage::setKind(Kind kind) +{ + _kind = kind; +} + +QString DiagnosticMessage::fileName() const +{ + return _fileName; +} + +void DiagnosticMessage::setFileName(const QString &fileName) +{ + _fileName = fileName; +} + +int DiagnosticMessage::line() const +{ + return _line; +} + +void DiagnosticMessage::setLine(int line) +{ + _line = line; +} + +QString DiagnosticMessage::message() const +{ + return _message; +} + +void DiagnosticMessage::setMessage(const QString &message) +{ + _message = message; +} + Engine::Engine() { } @@ -24,3 +98,28 @@ MemoryPool *Engine::pool() { return &_pool; } + +void Engine::clearDiagnosticMessages() +{ + _diagnosticMessages.clear(); +} + +void Engine::addDiagnosticMessage(const DiagnosticMessage &m) +{ + _diagnosticMessages.append(m); +} + +QSet Engine::identifiers() const +{ + return _identifiers; +} + +bool DiagnosticMessage::isError() const +{ + return _kind == Error; +} + +bool GLSL::DiagnosticMessage::isWarning() const +{ + return _kind == Warning; +} diff --git a/src/libs/glsl/glslengine.h b/src/libs/glsl/glslengine.h index 890dec37e54..8a83423f547 100644 --- a/src/libs/glsl/glslengine.h +++ b/src/libs/glsl/glslengine.h @@ -1,3 +1,32 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + #ifndef GLSLENGINE_H #define GLSLENGINE_H @@ -8,6 +37,39 @@ namespace GLSL { +class GLSL_EXPORT DiagnosticMessage +{ +public: + enum Kind { + Warning, + Error + }; + + DiagnosticMessage(); + + Kind kind() const; + void setKind(Kind kind); + + bool isError() const; + bool isWarning() const; + + QString fileName() const; + void setFileName(const QString &fileName); + + int line() const; + void setLine(int line); + + QString message() const; + void setMessage(const QString &message); + +private: + QString _fileName; + QString _message; + Kind _kind; + int _line; +}; + + class GLSL_EXPORT Engine { public: @@ -16,12 +78,18 @@ public: const QString *identifier(const QString &s); const QString *identifier(const char *s, int n); + QSet identifiers() const; MemoryPool *pool(); + QList diagnosticMessages() const; + void clearDiagnosticMessages(); + void addDiagnosticMessage(const DiagnosticMessage &m); + private: QSet _identifiers; MemoryPool _pool; + QList _diagnosticMessages; }; } // namespace GLSL