Merge branch 'master' into dev
This commit is contained in:
commit
e09ee7b347
|
@ -1,4 +1,15 @@
|
|||
# Editors & IDEs
|
||||
cmake-build-*/
|
||||
build/
|
||||
.idea/
|
||||
*.iml
|
||||
.vs/
|
||||
|
||||
# CMake
|
||||
CMakeFiles
|
||||
CmakeCache.txt
|
||||
|
||||
|
||||
bin/
|
||||
lib/
|
||||
include/
|
||||
build/
|
|
@ -0,0 +1,33 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- Continuous Integration
|
||||
|
||||
## [0.0.1] - 2019-10-24
|
||||
|
||||
### Added
|
||||
|
||||
### Changed
|
||||
|
||||
### Deprecated
|
||||
|
||||
### Removed
|
||||
|
||||
### Fixed
|
||||
|
||||
### Security
|
||||
|
||||
## [0.0.0] - 2019-10-17
|
||||
|
||||
### Added
|
||||
|
||||
- README
|
||||
- LICENCE
|
||||
- CMake configuration
|
|
@ -1,15 +1,39 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
cmake_minimum_required(VERSION 3.7.2)
|
||||
|
||||
if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
|
||||
message(FATAL_ERROR "In-source builds are disabled.
|
||||
Please create a subfolder called build and use `cmake ..` inside it.
|
||||
NOTE: cmake will now create CMakeCache.txt and CMakeFiles/*.
|
||||
You must delete them, or cmake will refuse to work.")
|
||||
endif()
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "bin" "doc" "CMakeFiles" "lib" "include")
|
||||
|
||||
project(TextRenderer)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
|
||||
# enable clang_tidy
|
||||
set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=*")
|
||||
set(CMAKE_CXX_CLANG_TIDY clang-tidy;-header-filter=.;-checks=*;)
|
||||
|
||||
file(GLOB_RECURSE SOURCES src/*.cpp)
|
||||
file(GLOB_RECURSE HEADERS src/*.h)
|
||||
file(GLOB_RECURSE TESTS test/*.cpp)
|
||||
include_directories(src)
|
||||
include_directories(test)
|
||||
|
||||
set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library/build")
|
||||
set(LIB_PATH "${CMAKE_SOURCE_DIR}/../library")
|
||||
|
||||
include_directories(${LIB_PATH}/include)
|
||||
add_executable(TextRenderer ${SOURCES} ${HEADERS} src/Bitmap.cpp src/Bitmap.h)
|
||||
add_executable(TextRenderer ${SOURCES} ${HEADERS} main/main.cpp)
|
||||
|
||||
target_link_libraries(TextRenderer ${LIB_PATH}/lib/liblibrary.a)
|
||||
|
||||
|
||||
enable_testing()
|
||||
find_package(Catch2 REQUIRED)
|
||||
add_executable(UnitTests ${SOURCES} ${HEADERS} ${TESTS})
|
||||
target_link_libraries(UnitTests Catch2::Catch2)
|
||||
|
||||
include(CTest)
|
||||
include(Catch)
|
||||
catch_discover_tests(UnitTests)
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2019, Projektgruppe vKVM WS 2019
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,9 @@
|
|||
# vKVM TextRenderer
|
||||
|
||||
## Installation
|
||||
|
||||
Use the installation script provided in the Scripts repository
|
||||
to install the full package.
|
||||
|
||||
Installing a single component is currently not supported.
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
//#include "add.h"
|
||||
#include "Bitmap.h"
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @brief: An image is loaded and used as a font.
|
||||
|
@ -14,15 +14,17 @@ int main() {
|
|||
Bitmap bitmap;
|
||||
bitmap.load("../res/font.bmp");
|
||||
|
||||
std::string str = "Hello, World!";
|
||||
std::string str;
|
||||
std::cout << "string to draw: ";
|
||||
std::cin >> str;
|
||||
|
||||
//values used to calculate the coordinates of the characters
|
||||
int xOffset = 1;
|
||||
int xOffset = 2;
|
||||
int yOffset = 2;
|
||||
int xSize = 6;
|
||||
int xSize = 5;
|
||||
int ySize = 7;
|
||||
int xCount = 18;
|
||||
int xStart = 0;
|
||||
int xStart = 1;
|
||||
int yStart = 2;
|
||||
|
||||
//print vertical
|
||||
|
@ -41,12 +43,18 @@ int main() {
|
|||
|
||||
//print current row of the current character
|
||||
for (int j = x; j < x + xSize; j++) {
|
||||
auto *pixel = (unsigned int *) bitmap.getPixel(j, i + y);
|
||||
if (*pixel == 0) {
|
||||
char *pixel_ptr = bitmap.getPixel(j, i + y);
|
||||
unsigned int pixel = 0;
|
||||
*((char*)&pixel+0) = pixel_ptr[0];
|
||||
*((char*)&pixel+1) = pixel_ptr[1];
|
||||
*((char*)&pixel+2) = pixel_ptr[2];
|
||||
|
||||
if (pixel == 0) {
|
||||
std::cout << " ";
|
||||
} else {
|
||||
std::cout << "1";
|
||||
}
|
||||
|
||||
}
|
||||
std::cout << " ";
|
||||
}
|
15
src/Bitmap.h
15
src/Bitmap.h
|
@ -3,8 +3,7 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#define TEST 111
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @brief: Used to load a Bitmap from a file.
|
||||
|
@ -15,42 +14,42 @@ public:
|
|||
|
||||
~Bitmap();
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @brief: Used to load a Bitmap from a file.
|
||||
*/
|
||||
void load(const std::string &file);
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @return: the width of the image.
|
||||
*/
|
||||
int getWidth();
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @return: the height of the image
|
||||
*/
|
||||
int getHeight();
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @return: the pixel data as an byte array
|
||||
*/
|
||||
char *getData();
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @return: the number of bits uses per pixel
|
||||
*/
|
||||
int getBitsPerPixel();
|
||||
|
||||
/*
|
||||
/**
|
||||
* @author: Julian Hinxlage
|
||||
* @since: v0.0.0
|
||||
* @return: the pixel value by coordinates, (0,0) is on the top left
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
#include <catch2/catch.hpp>
|
||||
#include <Bitmap.h>
|
||||
|
||||
TEST_CASE("default values") {
|
||||
Bitmap bitmap = Bitmap();
|
||||
REQUIRE(bitmap.getWidth() == 0);
|
||||
REQUIRE(bitmap.getHeight() == 0);
|
||||
REQUIRE(bitmap.getBitsPerPixel() == 0);
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
#define CATCH_CONFIG_MAIN
|
||||
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
//Dont touch this file.
|
||||
// add your own tests in this directory according to https://github.com/catchorg/Catch2/blob/master/docs/tutorial.md
|
Loading…
Reference in New Issue