inital commit

Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-09-08 03:04:51 +03:00
commit 04127cb569
7 changed files with 8148 additions and 0 deletions

1
.envrc Normal file
View File

@@ -0,0 +1 @@
use flake

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
[Bb]uild*
bfl
.cache
.direnv
compile_commands.json

3
Makefile Normal file
View File

@@ -0,0 +1,3 @@
bfl: bfl.cpp
clang++ -std=c++23 bfl.cpp -o bfl -lm

39
bfl.cpp Normal file
View File

@@ -0,0 +1,39 @@
#include <filesystem>
#include <fstream>
#include <print>
#include <vector>
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
struct Bitmap {
int width, height;
bool compressed{};
std::vector<bool> image_data;
std::vector<bool> transparency_data;
};
auto read_entire_file(std::filesystem::path const &path)
-> std::vector<uint8_t> {
std::ifstream stream(path, std::ios::in | std::ios::binary);
std::vector<uint8_t> const contents((std::istreambuf_iterator<char>(stream)),
std::istreambuf_iterator<char>());
return contents;
}
auto write_entire_file(std::filesystem::path const &path,
std::span<uint8_t> const &data) -> void {
std::ofstream stream(path, std::ios::out | std::ios::binary);
stream.write(reinterpret_cast<char *>(data.data()), data.size());
}
auto main(int const argc, char const *argv[]) -> int {
if (argc != 2) {
std::println(stderr, "Usage: {} <file>", argv[0]);
return 1;
}
std::filesystem::path filepath{argv[1]};
if (filepath.extension() == ".bfl") {
}
}

59
flake.lock generated Normal file
View File

@@ -0,0 +1,59 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1757068644,
"narHash": "sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4=",
"rev": "8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9",
"revCount": 856926,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.1.856926%2Brev-8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9/019921d1-c8bb-7ab1-9a48-c4f8bca22352/source.tar.gz?rev=8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9&revCount=856926"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/0.1"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

52
flake.nix Normal file
View File

@@ -0,0 +1,52 @@
{
description = "My flake";
inputs = {
nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
flake-utils,
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
nativeBuildInputs = [ ];
buildInputs = with pkgs; [
cmake
ninja
];
in
{
devShells.default = pkgs.mkShell.override { stdenv = pkgs.llvmPackages_21.libcxxStdenv; } {
packages =
with pkgs;
[
llvmPackages_21.clang-tools
lldb
codespell
doxygen
gtest
cppcheck
]
++ buildInputs
++ nativeBuildInputs
++ pkgs.lib.optionals pkgs.stdenv.isLinux (
with pkgs;
[
valgrind-light
]
);
env = { };
shellHook = '''';
};
}
);
}

7988
stb_image.h Normal file

File diff suppressed because it is too large Load Diff