From dfae8c7aad33a352f882c44ef2a9cc83f2746207 Mon Sep 17 00:00:00 2001 From: Lars Muldjord Date: Mon, 21 Nov 2016 21:14:45 +0100 Subject: Basic functionality implemented. Rendering still not done --- tools/fontgen/fontgen.pro | 12 +++++++ tools/fontgen/generator.cc | 87 ++++++++++++++++++++++++++++++++++++++++++++++ tools/fontgen/generator.h | 52 +++++++++++++++++++++++++++ tools/fontgen/main.cc | 43 +++++++++++++++++++++++ 4 files changed, 194 insertions(+) create mode 100644 tools/fontgen/fontgen.pro create mode 100644 tools/fontgen/generator.cc create mode 100644 tools/fontgen/generator.h create mode 100644 tools/fontgen/main.cc (limited to 'tools') diff --git a/tools/fontgen/fontgen.pro b/tools/fontgen/fontgen.pro new file mode 100644 index 0000000..b27f716 --- /dev/null +++ b/tools/fontgen/fontgen.pro @@ -0,0 +1,12 @@ +TEMPLATE = app +TARGET = FontGen +DEPENDPATH += . +INCLUDEPATH += . +#CONFIG += console debug +QT += widgets + +# Input +HEADERS += generator.h + +SOURCES += generator.cc \ + main.cc diff --git a/tools/fontgen/generator.cc b/tools/fontgen/generator.cc new file mode 100644 index 0000000..b2a07b5 --- /dev/null +++ b/tools/fontgen/generator.cc @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * generator.cc + * + * Mon Nov 21 20:16:00 CEST 2016 + * Copyright 2016 Lars Muldjord + * muldjordlars@gmail.com + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#include "generator.h" + +#include +#include +#include +#include +#include +#include +#include + +Generator::Generator() +{ + QLabel *fontLabel = new QLabel("Font family:"); + fontLineEdit = new QLineEdit("DejaVu"); + QLabel *sizeLabel = new QLabel("Font px size:"); + sizeLineEdit = new QLineEdit("12"); + QLabel *outputLabel = new QLabel("Output file:"); + outputLineEdit = new QLineEdit("output"); + + QVBoxLayout *layout = new QVBoxLayout(); + QPushButton *renderButton = new QPushButton("Generate"); + connect(renderButton, SIGNAL(clicked()), this, SLOT(initGenerate())); + + layout->addWidget(fontLabel); + layout->addWidget(fontLineEdit); + layout->addWidget(sizeLabel); + layout->addWidget(sizeLineEdit); + layout->addWidget(outputLabel); + layout->addWidget(outputLineEdit); + layout->addWidget(renderButton); + + setLayout(layout); +} + +Generator::~Generator() +{ +} + +void Generator::initGenerate() +{ + qDebug("Generating font to file '%s' using font '%s' at size '%s'...", + outputLineEdit->text().toStdString().c_str(), + fontLineEdit->text().toStdString().c_str(), + sizeLineEdit->text().toStdString().c_str()); + + QImage image(500, 16, QImage::Format_ARGB32); + image.fill(Qt::transparent); + + QFont font; + font.setFamily(fontLineEdit->text()); + font.setPixelSize(sizeLineEdit->text().toInt()); + + QPainter p(&image); + p.setPen(QPen(QColor(0, 0, 0, 255))); + p.setFont(font); + + p.drawText(0, 10, "AjEg"); + + image.save(outputLineEdit->text() + ".png"); +} diff --git a/tools/fontgen/generator.h b/tools/fontgen/generator.h new file mode 100644 index 0000000..64b59df --- /dev/null +++ b/tools/fontgen/generator.h @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * generator.h + * + * Mon Nov 21 20:16:00 CEST 2016 + * Copyright 2016 Lars Muldjord + * muldjordlars@gmail.com + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#ifndef _GENERATOR_H +#define _GENERATOR_H + +#include +#include + +class Generator : public QWidget +{ + Q_OBJECT; + +public: + Generator(); + ~Generator(); + +private slots: + void initGenerate(); + +private: + QLineEdit *fontLineEdit; + QLineEdit *sizeLineEdit; + QLineEdit *outputLineEdit; + +}; + +#endif // _GENERATOR_H diff --git a/tools/fontgen/main.cc b/tools/fontgen/main.cc new file mode 100644 index 0000000..701e03b --- /dev/null +++ b/tools/fontgen/main.cc @@ -0,0 +1,43 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * main.cc + * + * Mon Nov 21 20:16:00 CEST 2016 + * Copyright 2016 Lars Muldjord + * muldjordlars@gmail.com + ****************************************************************************/ + +/* + * This file is part of DrumGizmo. + * + * DrumGizmo is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * DrumGizmo is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with DrumGizmo; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +#include +#include + +#include "generator.h" + +int main(int argc, char *argv[]) +{ + QApplication app(argc, argv); + + QDir::setCurrent(QApplication::applicationDirPath()); + + Generator generator; + generator.show(); + + return app.exec(); +} -- cgit v1.2.3