Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
3a7a35e
Major update/rector to improve memory footprint and performance.
tjhancocks Jun 18, 2022
35b32f6
Remove old QuickDraw implementation.
tjhancocks Jun 18, 2022
aefd31f
Fix compilation of libGraphite.a
tjhancocks Jun 21, 2022
5f306eb
Remove ASan flag in CMake.
tjhancocks Jun 21, 2022
1bf0f00
Introduce a new constructor the data::block class.
tjhancocks Jun 22, 2022
4aaf70b
Initialize QuickDraw image types from a surface.
tjhancocks Jun 22, 2022
971f701
Add a new constructor to the sound resource.
tjhancocks Jun 22, 2022
376dee3
Add resource directly to file.
tjhancocks Jun 22, 2022
36d3e5c
Convenience constructor for quickdraw::rect
tjhancocks Jun 23, 2022
490e1e9
Fix issues found in and reported by ASan
tjhancocks Jun 24, 2022
e580850
Ensure resource type attributes are correctly hooked up.
tjhancocks Jun 26, 2022
b5aa193
Update to the Resource Manager in Graphite.
tjhancocks Jun 26, 2022
39f8d87
Start re-introducing some of the QuickTime image codecs.
tjhancocks Jun 27, 2022
13ffd98
Fix some sizing issues in PICT decoding.
tjhancocks Jun 27, 2022
72ca64a
More tweaks to functionality.
tjhancocks Jun 29, 2022
184d55a
Bug fixes and improvements to the QuickDraw surface
tjhancocks Jun 29, 2022
3b44904
Further fixes to memory allocations.
tjhancocks Jun 29, 2022
7904877
Fix to data::writer space expansion.
tjhancocks Jun 29, 2022
b4a2b7f
Various fixes to decoding and resource finding
tjhancocks Jul 6, 2022
8bf5a4f
Addition to data::block ownership model.
tjhancocks Jul 7, 2022
21da95d
Adjustments to data::block ownership model
tjhancocks Jul 7, 2022
eb28124
Fix a warning in rsrc::file.
tjhancocks Jul 7, 2022
c2f08fd
Fix compile issues, stop compiling with macOS 10.15 and add macOS 12
tjhancocks Jul 8, 2022
46cfe71
Fix CHAR_BIT missing symbol on Linux and Windows.
tjhancocks Jul 8, 2022
fa6abef
Another CHAR_BIT fix.
tjhancocks Jul 8, 2022
d31118c
Missing std::function on Linux/Windows
tjhancocks Jul 8, 2022
c8df2f4
More fixes for Linux and Windows.
tjhancocks Jul 8, 2022
15f9e3d
Another small fix.
tjhancocks Jul 8, 2022
07f2ea0
Redo previous fix
tjhancocks Jul 8, 2022
bdeb942
Fix for Windows
tjhancocks Jul 8, 2022
578ec3d
Another Windows Fix
tjhancocks Jul 8, 2022
8fc603f
Fix to the IMA4 decoder
tjhancocks Jul 8, 2022
ccb34a2
Move the RLE resource into a SpriteWorld specific namespace.
tjhancocks Jul 8, 2022
ea0edf5
Begin introducing a custom "rlëX" SpriteWorld resource type
tjhancocks Jul 8, 2022
0a617c2
Fix a couple of issues in the RLE functionality when linking library
tjhancocks Jul 8, 2022
72e73dc
Fix a major memory leak in data::block
tjhancocks Jul 13, 2022
50940fb
Start introducing the DLOG and DITL types into graphite
tjhancocks Jul 13, 2022
9835c99
Fix a bug with attributes in resource types
tjhancocks Jul 16, 2022
bed1c3b
Start introducing a "font manager" for dealing with font related reso…
tjhancocks Jul 17, 2022
41cbf4c
Some more font work
tjhancocks Jul 18, 2022
001773f
Continue working on the Font Manager for Graphite
tjhancocks Jul 18, 2022
2ac3259
Minor fixes in QuickDraw rect type and dialog_item_list.
tjhancocks Jul 21, 2022
2132a7e
Allow the data block of a resource to be altered after creation
tjhancocks Jul 24, 2022
e4a9138
Add <cstring> header to fond.cpp
tjhancocks Jul 24, 2022
2e11b05
Temporary alteration for Linux and Windows which do not have strlcpy
tjhancocks Jul 24, 2022
666fb5f
SpriteWorld updates
tjhancocks Jul 24, 2022
a8d2130
Fix and issue in the rleD and rleX encoders.
tjhancocks Jul 24, 2022
9cbc875
Tweaks to data::block, rlëX and color.
tjhancocks Jul 25, 2022
3cce781
Minor tweak
tjhancocks Jul 31, 2022
cb7a38f
Disable optimization in specific functions to prevent them being inco…
tjhancocks Aug 1, 2022
cd0b30b
Disable GraphiteTest in CI builds
tjhancocks Aug 1, 2022
39518a9
Small bug fixes and tweaks.
tjhancocks Aug 4, 2022
8e1c117
More rendering fixes in rlëX
tjhancocks Aug 4, 2022
bdb6fe6
rlëX encoding fix
tjhancocks Aug 4, 2022
67a0cd7
Fix issue in rlëD decoding
tjhancocks Aug 28, 2022
cfeb1ce
Fix some minor issues when encoding rlëX.
tjhancocks Sep 3, 2022
c8315b5
Correct a silly mistake
tjhancocks Sep 3, 2022
63c6d0f
Make sure pixel offsets are present.
tjhancocks Sep 3, 2022
08729e3
Additional rlëX fixes
tjhancocks Sep 3, 2022
bb56a29
Allow for longer advances in rlëX
tjhancocks Sep 5, 2022
9162d83
Minor fixes in rlëX encoding/decoding of colors.
tjhancocks Sep 15, 2022
df2eb9e
Data blocks should be aware if they originate from an extended resour…
tjhancocks Sep 16, 2022
fc9a717
Various optimisations in rlëX to help with load performance in Kestrel
tjhancocks Sep 20, 2022
53a737c
Large amount of work towards optimizing the loading speeds of various…
tjhancocks Sep 20, 2022
8de43a6
Remove old GraphiteTest executable
tjhancocks Sep 24, 2022
2ee4649
Begin introducing a test harness for Graphite
tjhancocks Sep 24, 2022
e8c522f
Expanding upon the initial unit tests for Graphite
tjhancocks Sep 24, 2022
4828691
Make the testing harness its owner library for use in other projects.…
tjhancocks Sep 25, 2022
8fd1d09
Separate CTest definitions to their own file.
tjhancocks Sep 25, 2022
a3d0fe9
Add test step to the CI
tjhancocks Sep 25, 2022
9dbe649
Potential fix to unit tests
tjhancocks Sep 25, 2022
bf0c0f8
Another attempt at fixing the unit tests on CI
tjhancocks Sep 25, 2022
a648944
Ensure we are in the correct directory for unit tests
tjhancocks Sep 25, 2022
7576b17
Ensure Windows environment has make installed.
tjhancocks Sep 25, 2022
cca9882
More adjustments to libTesting and formalizing the testing framework.
tjhancocks Sep 25, 2022
5bf775d
Potential fix to Windows CI (make missing)
tjhancocks Sep 25, 2022
4c73b46
Remove unused subscript from data::block
tjhancocks Sep 25, 2022
b3f362d
Fixes to libTesting
tjhancocks Sep 25, 2022
46e7418
Expand unit test coverage.
tjhancocks Sep 25, 2022
ff574fc
Another potential fix for Windows CI
tjhancocks Sep 25, 2022
9b7930f
Windows CI Fix
tjhancocks Sep 25, 2022
e7b6206
Add tests for quickdraw::size
tjhancocks Sep 26, 2022
295dc69
Introduce quickdraw::rect tests, and fix issue in quickdraw::rect.
tjhancocks Sep 26, 2022
24691b5
Update README
tjhancocks Sep 26, 2022
4057edc
Fix libTesting when project is included as a submodule.
tjhancocks Sep 26, 2022
934d9a5
Update to testing.cmake
tjhancocks Sep 26, 2022
db9f826
Add test conditions to libTesting for testing exceptions.
tjhancocks Sep 29, 2022
aaa0ab3
Add capability for measuring performance in tests.
tjhancocks Sep 29, 2022
145ab11
Enable reporting in tests.
tjhancocks Sep 29, 2022
ee6c186
Add XXH32 hashing algorithm to Graphite. Update libTesting
tjhancocks Sep 30, 2022
45c6ef4
Allow the ResourceManager to be purged/torn down.
tjhancocks Sep 30, 2022
fff593e
Add more assertions to libTesting
tjhancocks Nov 25, 2022
b5949c8
Add functional include
tjhancocks Nov 25, 2022
aa45cd2
General improvements
tjhancocks Apr 27, 2023
b216e70
Add an include for complex in intel sse
tjhancocks Jun 1, 2023
f1acc21
Restructure and better modularize the project into smaller libraries.
tjhancocks Jun 2, 2023
cf65e2c
Fix linux build due to case-sensitivity, and remove macOS 11 CI workflow
tjhancocks Jun 2, 2023
49aa59d
Add SSE compiler flags.
tjhancocks Jun 2, 2023
a262f56
Start rebuilding the groundwork for test targets.
tjhancocks Jun 2, 2023
90a6530
Fix includes for Windows build
tjhancocks Jun 2, 2023
4e971f3
Rename libResource to libResourceCore
tjhancocks Jun 2, 2023
9bb0961
Rename libSound to libSoundCore
tjhancocks Jun 2, 2023
e185285
Fix includes on Windows
tjhancocks Jun 2, 2023
5ad5878
Fix several issues found when compiling Kestrel.
tjhancocks Jun 2, 2023
f24f24c
Add RSRX signature to extended format
andrews05 Aug 16, 2023
3f4a6f1
Update CMakeLists minimum versions
tjhancocks Aug 28, 2023
d4ee6cf
Fixes for compiler warnings
tjhancocks Aug 30, 2023
c41ddf4
ARM NEON fix
tjhancocks Aug 31, 2023
a037cde
Fix ARM NEON round function
tjhancocks Sep 2, 2023
86985f5
Merge pull request #71 from andrews05/extended_signature
tjhancocks Sep 23, 2023
a617885
Fix issue with ARM NEON functions
tjhancocks Sep 25, 2023
3618f7e
Fix type issue that causes incorrect writing of integers
tjhancocks Sep 27, 2023
867399a
Some small SIMD fixes
tjhancocks Oct 28, 2023
db5c1a5
Fix issue in ARM NEON
tjhancocks Oct 31, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,24 @@ jobs:
env:
CC: ${{ matrix.env.CC }}
CXX: ${{ matrix.env.CXX }}
run: |
./.github/actions/build.sh
run: ./.github/actions/build.sh
- name: Test
run: cd build && make test

macOS:
name: Build on macOS
strategy:
matrix:
os: [ macos-10.15, macos-11 ]
os: [ macos-12 ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build
run: |
./.github/actions/build.sh
- name: Test
run: cd build && make test

windows:
name: Build on Windows
Expand Down Expand Up @@ -62,3 +65,5 @@ jobs:
CXX: ${{ matrix.env.CXX }}
run: |
./.github/actions/build.sh
- name: Test
run: cmake --build build --target test
30 changes: 19 additions & 11 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,29 @@ project(Graphite CXX)

set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
if (APPLE)
set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64")
endif()

include_directories("${PROJECT_SOURCE_DIR}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mavx -msse4.1")

file(GLOB_RECURSE graphite_sources
libGraphite/*.cpp
)
add_library(Graphite ${graphite_sources})
set(PROJECT_LIBS_DIR ${CMAKE_CURRENT_LIST_DIR}/libs)

file(GLOB_RECURSE graphite_test_sources
GraphiteTest/*.cpp
)
add_executable(GraphiteTest ${graphite_test_sources})
target_link_libraries(GraphiteTest Graphite)
# Libraries
add_subdirectory(${PROJECT_LIBS_DIR}/libSIMD)
add_subdirectory(${PROJECT_LIBS_DIR}/libHashing)
add_subdirectory(${PROJECT_LIBS_DIR}/libEncoding)
add_subdirectory(${PROJECT_LIBS_DIR}/libData)
add_subdirectory(${PROJECT_LIBS_DIR}/libResourceCore)
add_subdirectory(${PROJECT_LIBS_DIR}/libQuickdraw)
add_subdirectory(${PROJECT_LIBS_DIR}/libSoundCore)
add_subdirectory(${PROJECT_LIBS_DIR}/libSpriteWorld)
add_subdirectory(${PROJECT_LIBS_DIR}/libToolbox)

########################################################################################################################

enable_testing()
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
add_subdirectory(tests)
endif()
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
[![Graphite CI](https://github.com/TheDiamondProject/Graphite/actions/workflows/build.yml/badge.svg)](https://github.com/TheDiamondProject/Graphite/actions/workflows/build.yml) [![Version](https://img.shields.io/badge/version-v1.0-blue.svg)](#) [![Version](https://img.shields.io/badge/license-MIT-blue.svg)](#)

# Graphite
The Graphite Library is part of _The Diamond Project_ and aims to provide modern, cross platform implementations of various features
and aspects of functionality from the Classic Macintosh OS and Carbon Frameworks.

## Using libGraphite
TBC

## libTesting
The Graphite library includes a secondary library designed for providing the required functionality for basic unit testing. You can find documentation for this in the `libTesting` directory. Graphite uses this library to test the core functionality and performance of main `libGraphite` library, along with CMake and GitHub Actions to ensure that no regressions occur and that all added functionality is actually correct and verified.

It is provided in such a way that you can use it in your own projects should you wish to.

## Contributing
TBC

## License
Graphite is available under the MIT license.
Graphite is available under the MIT license, which can be [found here]().
105 changes: 0 additions & 105 deletions libGraphite/data/data.cpp

This file was deleted.

114 changes: 0 additions & 114 deletions libGraphite/data/data.hpp

This file was deleted.

Loading