look what im planning
This commit is contained in:
commit
7735011928
2 changed files with 87 additions and 0 deletions
27
LICENSE.md
Normal file
27
LICENSE.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
Copyright 2025 Abdulmujeeb Raji
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. 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.
|
||||
|
||||
3. 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.
|
||||
|
60
README.md
Normal file
60
README.md
Normal file
|
@ -0,0 +1,60 @@
|
|||
# Bravely Arranged Standard Library
|
||||
`bastd` is my own custom standard library for C, made to aid in the development
|
||||
of games, 3D software, 2D development tools and more.
|
||||
|
||||
It strays heavily from what is supported in the
|
||||
[lackluster](https://nullprogram.com/blog/2023/02/11/) C standard library and
|
||||
aims to be a sufficient and even superior replacement.
|
||||
|
||||
`bastd`'s design goals include:
|
||||
- Simplifying the build system
|
||||
- Providing a full framework for Graphical and Console Applications
|
||||
- Giving clear errors and debugging tools to the Programmer
|
||||
- Making C a more "tolerable" language
|
||||
|
||||
`bastd`'s features include:
|
||||
- [ ] No header files. They cause more harm than good in my opinion, and I prefer a
|
||||
single translation unit in my builds. You just include `bastd.c` at the top of
|
||||
your main C file and you start writing code.
|
||||
- [ ] Memory Allocators. The premier one is the
|
||||
[Arena Allocator](https://www.rfleury.com/p/untangling-lifetimes-the-arena-allocator),
|
||||
which acts as our generic allocator in place of `malloc`, providing a unfirom
|
||||
interface that simplifies memory management and groups allocations together
|
||||
into clearly defined lifetimes
|
||||
- [ ] A Length-Based String Type + String Builder. This replaces whatever the hell
|
||||
`string.h` was meant to be, by introducing a length to strings, which allows
|
||||
for simple slicing of the string and modification.
|
||||
- [ ] Generic data-structures. The premier one is the
|
||||
[Dynamic Array](https://dylanfalconer.com/articles/dynamic-arrays-in-c), which
|
||||
brings the power of C++'s `std::vector` to C
|
||||
- [ ] A simple I/O system that supports both standard input/output and file
|
||||
input/output. It's built on a basic buffer type that you can flush to output
|
||||
data.
|
||||
- [ ] A logging system built ontop of this I/O system. You can either log out to
|
||||
a file or to stdout.
|
||||
- [ ] A simple GUI initialization system that gets you an Direct3D 11 or OpenGL
|
||||
window with immediate-mode input.
|
||||
- [ ] A basic 2D renderer built ontop of this graphics initializater, that can
|
||||
draw shapes and textures to the screen. The shaders used can be customized for
|
||||
added effect. It features a simple camera system to seperate which parts of
|
||||
the screen use which shaders and viewports.
|
||||
- [ ] An audio library. Windows implementation uses WASAPI, Linux uses ALSA.
|
||||
|
||||
---
|
||||
- [x] implemented
|
||||
- [ ] planned
|
||||
---
|
||||
|
||||
The only currently supported platform is Windows, though once the APIs are
|
||||
finished, a Linux and FreeBSD port are planned.
|
||||
|
||||
## Why C?
|
||||
Cuz I like C. It's the closest "high-level" language to assembly, so I have
|
||||
maximum control. It is *really simple*, which in some ways is to its detriment.
|
||||
Almost all OS libraries, Graphics libraries, Audio libraries, etc. are written
|
||||
in C.
|
||||
|
||||
C is great. Don't let anyone tell you it's not.
|
||||
|
||||
## LICENSE
|
||||
`bastd` is licensed under the 3-clause BSD license. See [LICENSE.md](LICENSE.md).
|
Loading…
Add table
Reference in a new issue