From 70b92b818ed19655695de2744d372d5951794df1 Mon Sep 17 00:00:00 2001 From: blobt <380255922@qq.com> Date: Wed, 22 Jan 2020 21:55:34 +0800 Subject: [PATCH] Rgba developing --- CMakeLists.txt | 63 ++---- build.sh | 15 +- .../CMakeDirectoryInformation.cmake | 16 -- src/CMakeFiles/progress.marks | 1 - src/CMakeFiles/test.dir/DependInfo.cmake | 21 -- src/CMakeFiles/test.dir/build.make | 113 ----------- src/CMakeFiles/test.dir/cmake_clean.cmake | 10 - src/CMakeFiles/test.dir/depend.make | 2 - src/CMakeFiles/test.dir/flags.make | 10 - src/CMakeFiles/test.dir/link.txt | 1 - src/CMakeFiles/test.dir/progress.make | 3 - src/CMakeLists.txt | 6 +- src/Makefile | 180 ------------------ src/Rgba.cc | 25 +++ src/Rgba.h | 29 +++ src/cmake_install.cmake | 39 ---- src/gtktest.cc | 64 +++++++ src/test.cc | 9 - src/timer.cc | 68 +++++++ 19 files changed, 205 insertions(+), 470 deletions(-) delete mode 100644 src/CMakeFiles/CMakeDirectoryInformation.cmake delete mode 100644 src/CMakeFiles/progress.marks delete mode 100644 src/CMakeFiles/test.dir/DependInfo.cmake delete mode 100644 src/CMakeFiles/test.dir/build.make delete mode 100644 src/CMakeFiles/test.dir/cmake_clean.cmake delete mode 100644 src/CMakeFiles/test.dir/depend.make delete mode 100644 src/CMakeFiles/test.dir/flags.make delete mode 100644 src/CMakeFiles/test.dir/link.txt delete mode 100644 src/CMakeFiles/test.dir/progress.make delete mode 100644 src/Makefile create mode 100644 src/Rgba.cc create mode 100644 src/Rgba.h delete mode 100644 src/cmake_install.cmake create mode 100644 src/gtktest.cc delete mode 100644 src/test.cc create mode 100644 src/timer.cc diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c07729..061b067 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,60 +1,19 @@ -cmake_minimum_required(VERSION 2.6) +cmake_minimum_required (VERSION 3.10) -project(3dbase CXX) +project(3dbase) -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Debug") -endif() - -set(CXX_FLAGS - -g - -DVALGRIND - -DMUDUO_STD_STRING - -DCHECK_PTHREAD_RETURN_VALUE - -D_FILE_OFFSET_BITS=64 - -Wall - -Wextra - -Werror - -Wconversion - -Wno-unused-parameter - -Wold-style-cast - -Woverloaded-virtual - -Wpointer-arith - -Wshadow - -Wwrite-strings - -march=native - -MMD - -std=c++11 - -Wnarrowing - -rdynamic - ) -if(CMAKE_BUILD_BITS EQUAL 32) - list(APPEND CXX_FLAGS "-m32") -endif() -string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CXX_FLAGS}") set(CMAKE_CXX_COMPILER "g++") -set(CMAKE_CXX_FLAGS_DEBUG "-O0") -set(CMAKE_CXX_FLAGS_RELEASE "-O2 -finline-limit=1000 -DNDEBUG") set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) -set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib) - -find_package(Boost REQUIRED) -find_library(BOOSTTEST_LIBRARY NAMES boost_unit_test_framework) -find_library(BOOSTPO_LIBRARY NAMES boost_program_options) -find_path(TCMALLOC_INCLUDE_DIR google/heap-profiler.h) -find_library(TCMALLOC_LIBRARY NAMES tcmalloc_and_profiler) -if(TCMALLOC_INCLUDE_DIR AND TCMALLOC_LIBRARY) - message(STATUS "found tcmalloc") -else() - message(STATUS "not found tcmalloc") -endif() - -include_directories(${Boost_INCLUDE_DIRS}) -include_directories(${PROJECT_SOURCE_DIR}) - -string(TOUPPER ${CMAKE_BUILD_TYPE} BUILD_TYPE) -message(STATUS "CXX_FLAGS = " ${CMAKE_CXX_FLAGS} " " ${CMAKE_CXX_FLAGS_${BUILD_TYPE}}) +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK2 REQUIRED gtk+-2.0) +message(STATUS "----- GTK2_INCLUDE_DIRS: ${GTK2_INCLUDE_DIRS}") +message(STATUS "----- GKT2_LIBRARIES: ${GTK2_LIBRARIES}") +message(STATUS "----- GTK2_LINK_LIBRARIES: ${GTK2_LINK_LIBRARIES}") +include_directories(${GTK2_INCLUDE_DIRS}) +link_directories(${GTK2_LIBRARY_DIRS}) +list(APPEND FC_DEP_LIBS ${GTK2_LIBRARIES}) add_subdirectory(src) + diff --git a/build.sh b/build.sh index 0eec3a2..310f88b 100755 --- a/build.sh +++ b/build.sh @@ -4,18 +4,9 @@ set -x SOURCE_DIR=`pwd` BUILD_DIR=${BUILD_DIR:-./build} -BUILD_TYPE=${BUILD_TYPE:-release} -INSTALL_DIR=${INSTALL_DIR:-../${BUILD_TYPE}-install} -BUILD_NO_EXAMPLES=${BUILD_NO_EXAMPLES:-0} -mkdir -p $BUILD_DIR/$BUILD_TYPE \ - && cd $BUILD_DIR/$BUILD_TYPE \ - && cmake \ - -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ - -DCMAKE_INSTALL_PREFIX=$INSTALL_DIR \ - -DCMAKE_BUILD_NO_EXAMPLES=$BUILD_NO_EXAMPLES \ - $SOURCE_DIR \ +mkdir -p $BUILD_DIR \ + && cd $BUILD_DIR \ + && cmake $SOURCE_DIR \ && make $* -# cd $SOURCE_DIR && doxygen - diff --git a/src/CMakeFiles/CMakeDirectoryInformation.cmake b/src/CMakeFiles/CMakeDirectoryInformation.cmake deleted file mode 100644 index 7a354b8..0000000 --- a/src/CMakeFiles/CMakeDirectoryInformation.cmake +++ /dev/null @@ -1,16 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.10 - -# Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/blobt/Documents/dev/cpp/3dbase") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/blobt/Documents/dev/cpp/3dbase") - -# Force unix paths in dependencies. -set(CMAKE_FORCE_UNIX_PATHS 1) - - -# The C and CXX include file regular expressions for this directory. -set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") -set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") -set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) -set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/src/CMakeFiles/progress.marks b/src/CMakeFiles/progress.marks deleted file mode 100644 index 0cfbf08..0000000 --- a/src/CMakeFiles/progress.marks +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/src/CMakeFiles/test.dir/DependInfo.cmake b/src/CMakeFiles/test.dir/DependInfo.cmake deleted file mode 100644 index e303325..0000000 --- a/src/CMakeFiles/test.dir/DependInfo.cmake +++ /dev/null @@ -1,21 +0,0 @@ -# The set of languages for which implicit dependencies are needed: -set(CMAKE_DEPENDS_LANGUAGES - "CXX" - ) -# The set of files for implicit dependencies of each language: -set(CMAKE_DEPENDS_CHECK_CXX - "/home/blobt/Documents/dev/cpp/3dbase/src/test.cc" "/home/blobt/Documents/dev/cpp/3dbase/src/CMakeFiles/test.dir/test.cc.o" - ) -set(CMAKE_CXX_COMPILER_ID "GNU") - -# The include file search paths: -set(CMAKE_CXX_TARGET_INCLUDE_PATH - "." - ) - -# Targets to which this target links. -set(CMAKE_TARGET_LINKED_INFO_FILES - ) - -# Fortran module output directory. -set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/src/CMakeFiles/test.dir/build.make b/src/CMakeFiles/test.dir/build.make deleted file mode 100644 index 78ea82f..0000000 --- a/src/CMakeFiles/test.dir/build.make +++ /dev/null @@ -1,113 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.10 - -# Delete rule output on recipe failure. -.DELETE_ON_ERROR: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Remove some rules from gmake that .SUFFIXES does not remove. -SUFFIXES = - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E remove -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/blobt/Documents/dev/cpp/3dbase - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/blobt/Documents/dev/cpp/3dbase - -# Include any dependencies generated for this target. -include src/CMakeFiles/test.dir/depend.make - -# Include the progress variables for this target. -include src/CMakeFiles/test.dir/progress.make - -# Include the compile flags for this target's objects. -include src/CMakeFiles/test.dir/flags.make - -src/CMakeFiles/test.dir/test.cc.o: src/CMakeFiles/test.dir/flags.make -src/CMakeFiles/test.dir/test.cc.o: src/test.cc - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/blobt/Documents/dev/cpp/3dbase/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object src/CMakeFiles/test.dir/test.cc.o" - cd /home/blobt/Documents/dev/cpp/3dbase/src && g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/test.dir/test.cc.o -c /home/blobt/Documents/dev/cpp/3dbase/src/test.cc - -src/CMakeFiles/test.dir/test.cc.i: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/test.dir/test.cc.i" - cd /home/blobt/Documents/dev/cpp/3dbase/src && g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/blobt/Documents/dev/cpp/3dbase/src/test.cc > CMakeFiles/test.dir/test.cc.i - -src/CMakeFiles/test.dir/test.cc.s: cmake_force - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/test.dir/test.cc.s" - cd /home/blobt/Documents/dev/cpp/3dbase/src && g++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/blobt/Documents/dev/cpp/3dbase/src/test.cc -o CMakeFiles/test.dir/test.cc.s - -src/CMakeFiles/test.dir/test.cc.o.requires: - -.PHONY : src/CMakeFiles/test.dir/test.cc.o.requires - -src/CMakeFiles/test.dir/test.cc.o.provides: src/CMakeFiles/test.dir/test.cc.o.requires - $(MAKE) -f src/CMakeFiles/test.dir/build.make src/CMakeFiles/test.dir/test.cc.o.provides.build -.PHONY : src/CMakeFiles/test.dir/test.cc.o.provides - -src/CMakeFiles/test.dir/test.cc.o.provides.build: src/CMakeFiles/test.dir/test.cc.o - - -# Object files for target test -test_OBJECTS = \ -"CMakeFiles/test.dir/test.cc.o" - -# External object files for target test -test_EXTERNAL_OBJECTS = - -bin/test: src/CMakeFiles/test.dir/test.cc.o -bin/test: src/CMakeFiles/test.dir/build.make -bin/test: src/CMakeFiles/test.dir/link.txt - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/blobt/Documents/dev/cpp/3dbase/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable ../bin/test" - cd /home/blobt/Documents/dev/cpp/3dbase/src && $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/test.dir/link.txt --verbose=$(VERBOSE) - -# Rule to build all files generated by this target. -src/CMakeFiles/test.dir/build: bin/test - -.PHONY : src/CMakeFiles/test.dir/build - -src/CMakeFiles/test.dir/requires: src/CMakeFiles/test.dir/test.cc.o.requires - -.PHONY : src/CMakeFiles/test.dir/requires - -src/CMakeFiles/test.dir/clean: - cd /home/blobt/Documents/dev/cpp/3dbase/src && $(CMAKE_COMMAND) -P CMakeFiles/test.dir/cmake_clean.cmake -.PHONY : src/CMakeFiles/test.dir/clean - -src/CMakeFiles/test.dir/depend: - cd /home/blobt/Documents/dev/cpp/3dbase && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/blobt/Documents/dev/cpp/3dbase /home/blobt/Documents/dev/cpp/3dbase/src /home/blobt/Documents/dev/cpp/3dbase /home/blobt/Documents/dev/cpp/3dbase/src /home/blobt/Documents/dev/cpp/3dbase/src/CMakeFiles/test.dir/DependInfo.cmake --color=$(COLOR) -.PHONY : src/CMakeFiles/test.dir/depend - diff --git a/src/CMakeFiles/test.dir/cmake_clean.cmake b/src/CMakeFiles/test.dir/cmake_clean.cmake deleted file mode 100644 index a866c30..0000000 --- a/src/CMakeFiles/test.dir/cmake_clean.cmake +++ /dev/null @@ -1,10 +0,0 @@ -file(REMOVE_RECURSE - "CMakeFiles/test.dir/test.cc.o" - "../bin/test.pdb" - "../bin/test" -) - -# Per-language clean rules from dependency scanning. -foreach(lang CXX) - include(CMakeFiles/test.dir/cmake_clean_${lang}.cmake OPTIONAL) -endforeach() diff --git a/src/CMakeFiles/test.dir/depend.make b/src/CMakeFiles/test.dir/depend.make deleted file mode 100644 index 3f2657b..0000000 --- a/src/CMakeFiles/test.dir/depend.make +++ /dev/null @@ -1,2 +0,0 @@ -# Empty dependencies file for test. -# This may be replaced when dependencies are built. diff --git a/src/CMakeFiles/test.dir/flags.make b/src/CMakeFiles/test.dir/flags.make deleted file mode 100644 index 7e311ff..0000000 --- a/src/CMakeFiles/test.dir/flags.make +++ /dev/null @@ -1,10 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.10 - -# compile CXX with g++ -CXX_FLAGS = -g -DVALGRIND -DMUDUO_STD_STRING -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast -Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -MMD -std=c++11 -Wnarrowing -rdynamic -O2 -finline-limit=1000 -DNDEBUG - -CXX_DEFINES = - -CXX_INCLUDES = -I/home/blobt/Documents/dev/cpp/3dbase - diff --git a/src/CMakeFiles/test.dir/link.txt b/src/CMakeFiles/test.dir/link.txt deleted file mode 100644 index ae848be..0000000 --- a/src/CMakeFiles/test.dir/link.txt +++ /dev/null @@ -1 +0,0 @@ -g++ -g -DVALGRIND -DMUDUO_STD_STRING -DCHECK_PTHREAD_RETURN_VALUE -D_FILE_OFFSET_BITS=64 -Wall -Wextra -Werror -Wconversion -Wno-unused-parameter -Wold-style-cast -Woverloaded-virtual -Wpointer-arith -Wshadow -Wwrite-strings -march=native -MMD -std=c++11 -Wnarrowing -rdynamic -O2 -finline-limit=1000 -DNDEBUG -rdynamic CMakeFiles/test.dir/test.cc.o -o ../bin/test diff --git a/src/CMakeFiles/test.dir/progress.make b/src/CMakeFiles/test.dir/progress.make deleted file mode 100644 index abadeb0..0000000 --- a/src/CMakeFiles/test.dir/progress.make +++ /dev/null @@ -1,3 +0,0 @@ -CMAKE_PROGRESS_1 = 1 -CMAKE_PROGRESS_2 = 2 - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 021540a..54400fa 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1 +1,5 @@ -add_executable(test test.cc) +add_executable(gtktest gtktest.cc Rgba.cc) +target_link_libraries (gtktest ${FC_DEP_LIBS}) + +add_executable(timer timer.cc) +target_link_libraries (timer ${FC_DEP_LIBS}) \ No newline at end of file diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 40ec03f..0000000 --- a/src/Makefile +++ /dev/null @@ -1,180 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.10 - -# Default target executed when no arguments are given to make. -default_target: all - -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - - -# Remove some rules from gmake that .SUFFIXES does not remove. -SUFFIXES = - -.SUFFIXES: .hpux_make_needs_suffix_list - - -# Suppress display of executed commands. -$(VERBOSE).SILENT: - - -# A target that is always out of date. -cmake_force: - -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E remove -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /home/blobt/Documents/dev/cpp/3dbase - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /home/blobt/Documents/dev/cpp/3dbase - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache - -.PHONY : rebuild_cache/fast - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." - /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache - -.PHONY : edit_cache/fast - -# The main all target -all: cmake_check_build_system - cd /home/blobt/Documents/dev/cpp/3dbase && $(CMAKE_COMMAND) -E cmake_progress_start /home/blobt/Documents/dev/cpp/3dbase/CMakeFiles /home/blobt/Documents/dev/cpp/3dbase/src/CMakeFiles/progress.marks - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f CMakeFiles/Makefile2 src/all - $(CMAKE_COMMAND) -E cmake_progress_start /home/blobt/Documents/dev/cpp/3dbase/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f CMakeFiles/Makefile2 src/clean -.PHONY : clean - -# The main clean target -clean/fast: clean - -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f CMakeFiles/Makefile2 src/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /home/blobt/Documents/dev/cpp/3dbase && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -src/CMakeFiles/test.dir/rule: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f CMakeFiles/Makefile2 src/CMakeFiles/test.dir/rule -.PHONY : src/CMakeFiles/test.dir/rule - -# Convenience name for target. -test: src/CMakeFiles/test.dir/rule - -.PHONY : test - -# fast build rule for target. -test/fast: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f src/CMakeFiles/test.dir/build.make src/CMakeFiles/test.dir/build -.PHONY : test/fast - -test.o: test.cc.o - -.PHONY : test.o - -# target to build an object file -test.cc.o: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f src/CMakeFiles/test.dir/build.make src/CMakeFiles/test.dir/test.cc.o -.PHONY : test.cc.o - -test.i: test.cc.i - -.PHONY : test.i - -# target to preprocess a source file -test.cc.i: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f src/CMakeFiles/test.dir/build.make src/CMakeFiles/test.dir/test.cc.i -.PHONY : test.cc.i - -test.s: test.cc.s - -.PHONY : test.s - -# target to generate assembly for a file -test.cc.s: - cd /home/blobt/Documents/dev/cpp/3dbase && $(MAKE) -f src/CMakeFiles/test.dir/build.make src/CMakeFiles/test.dir/test.cc.s -.PHONY : test.cc.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... rebuild_cache" - @echo "... test" - @echo "... edit_cache" - @echo "... test.o" - @echo "... test.i" - @echo "... test.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - cd /home/blobt/Documents/dev/cpp/3dbase && $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system - diff --git a/src/Rgba.cc b/src/Rgba.cc new file mode 100644 index 0000000..e63e492 --- /dev/null +++ b/src/Rgba.cc @@ -0,0 +1,25 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: Rgba.cc + * Author: Blobt + * + * Created on January 22, 2020, 9:14 PM + */ + +#include "Rgba.h" + +Rgba::Rgba() { + _r = 255; + _g = 255; + _b = 255; + _a = 255; +} + +Rgba::~Rgba() { +} + diff --git a/src/Rgba.h b/src/Rgba.h new file mode 100644 index 0000000..2502072 --- /dev/null +++ b/src/Rgba.h @@ -0,0 +1,29 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +/* + * File: Rgba.h + * Author: Blobt + * + * Created on January 22, 2020, 9:14 PM + */ + +#ifndef RGBA_H +#define RGBA_H + +class Rgba { +public: + Rgba(); + ~Rgba(); +private: + unsigned char _r; + unsigned char _g; + unsigned char _b; + unsigned char _a; +}; + +#endif /* RGBA_H */ + diff --git a/src/cmake_install.cmake b/src/cmake_install.cmake deleted file mode 100644 index 9d2c890..0000000 --- a/src/cmake_install.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# Install script for directory: /home/blobt/Documents/dev/cpp/3dbase/src - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/home/blobt/Documents/dev/cpp/3dbase/build/release-install") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Install shared libraries without execute permission? -if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) - set(CMAKE_INSTALL_SO_NO_EXE "1") -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "FALSE") -endif() - diff --git a/src/gtktest.cc b/src/gtktest.cc new file mode 100644 index 0000000..c5c2c46 --- /dev/null +++ b/src/gtktest.cc @@ -0,0 +1,64 @@ +#include +#include +#include +#include "Rgba.h" + +using namespace std; + + +gint height = 500; +gint width = 500; + +unsigned char* makeBitmap() { + unsigned char* data = new unsigned char[width * height * 4]; + for (int i = 0; i < width * height * 4; i++) { + data[i] = rand() % 255; + } + + return data; +} + +void render(GtkWidget *widget) { + //允许窗口可以绘图 + gtk_widget_set_app_paintable(widget, TRUE); + gtk_widget_realize(widget); + gtk_widget_queue_draw(widget); + + //模拟一张图片 + unsigned char* data = makeBitmap(); + + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, TRUE, 8, width, height, width * 4, NULL, NULL); + + GdkPixmap *pixmap = NULL; + + gdk_pixbuf_render_pixmap_and_mask(pixbuf, &pixmap, NULL, 128); + + gdk_window_set_back_pixmap(widget->window, pixmap, FALSE); + + g_object_unref(pixbuf); + g_object_unref(pixmap); + delete data; +} + +int main(int argc, char* argv[]) { + + gtk_init(&argc, &argv); + + //创建窗口 + GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request(window, width, height); + + gtk_window_set_title(GTK_WINDOW(window), "Gtk testing"); + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS); + + //窗口关闭时候,关闭程序 + g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); + //设置渲染 + g_signal_connect(window, "expose-event", G_CALLBACK(render), window); + + + gtk_widget_show_all(window); + gtk_main(); + + return 0; +} diff --git a/src/test.cc b/src/test.cc deleted file mode 100644 index 4b0a885..0000000 --- a/src/test.cc +++ /dev/null @@ -1,9 +0,0 @@ -#include - -using namespace std; - -int main(){ - - cout << "Hello" << endl; - return 0; -} diff --git a/src/timer.cc b/src/timer.cc new file mode 100644 index 0000000..bec3c79 --- /dev/null +++ b/src/timer.cc @@ -0,0 +1,68 @@ +#include +#include + +gchar buf[256]; + +gboolean on_expose_event(GtkWidget *widget, + GdkEventExpose *event, + gpointer data) { + + cairo_t *cr; + + cr = gdk_cairo_create(widget->window); + + cairo_move_to(cr, 30, 30); + cairo_set_font_size(cr, 15); + cairo_show_text(cr, buf); + + cairo_destroy(cr); + + return FALSE; +} + +gboolean time_handler(GtkWidget *widget) { + + if (widget->window == NULL) return FALSE; + + GDateTime *now = g_date_time_new_now_local(); + gchar *my_time = g_date_time_format(now, "%H:%M:%S"); + + sprintf(buf, "%s", my_time); + + g_free(my_time); + g_date_time_unref(now); + + gtk_widget_queue_draw(widget); + + return TRUE; +} + +int main(int argc, char *argv[]) { + + GtkWidget *window; + GtkWidget *darea; + + gtk_init(&argc, &argv); + + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + + darea = gtk_drawing_area_new(); + gtk_container_add(GTK_CONTAINER(window), darea); + + g_signal_connect(darea, "expose-event", + G_CALLBACK(on_expose_event), NULL); + g_signal_connect(window, "destroy", + G_CALLBACK(gtk_main_quit), NULL); + + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); + gtk_window_set_default_size(GTK_WINDOW(window), 300, 200); + + gtk_window_set_title(GTK_WINDOW(window), "Timer"); + g_timeout_add(1000, (GSourceFunc) time_handler, (gpointer) window); + gtk_widget_show_all(window); + time_handler(window); + + gtk_main(); + + return 0; +} \ No newline at end of file