|
Fortunately, most implementations use a double underscore for system identifiers, so you're usually OK. But if you get strange error messages that refer to an identifier starting with an underscore, you've probably managed to collide with the compilers internals.
"A little song, a little dance, a little seltzer down your pants"
Chuckles the clown
|
|
|
|
|
k5054 wrote: you've probably managed to collide with the compilers internals
I was tearing my hair out once when I couldn't get a bit of financial code to compile - I had a variable called yield. Turns out there was a yield macro in the windows header to maintain compatibility with 16 bit windows. Sheesh.
|
|
|
|
|
I read it wrong at first too. But, he was asking what to call the file not how to read it.
Jeremy Falcon
|
|
|
|
|
Oh look, I'm using an archaic fixed length COBOL-style file format!
How's that for the name?
|
|
|
|
|
How about we create a modern acronym for it.... FUBAR!
Fixed-length Unicode Byte Array Record
Jeremy Falcon
|
|
|
|
|
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I'm sure they are direct descendant of punch cards.
(large public sector system)
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
Every single one of these inherited classes exposes one or more static template methods to facilitate drawing such that you can do like draw::line(...) , draw::filled_rectangle(...) or draw::text(...)
It's not just one liner classes either. Most of these are at least a page. I had to start the inherited classes with "x" to move them down the autocomplete list in vs code so they don't get in the way.
Yesterday this was all in a single 5000 line header. This morning I finished refactoring and integrating. Woo!
#ifndef HTCW_GFX_DRAW_HPP
#define HTCW_GFX_DRAW_HPP
#include "gfx_draw_common.hpp"
#include "gfx_draw_point.hpp"
#include "gfx_draw_filled_rectangle.hpp"
#include "gfx_draw_line.hpp"
#include "gfx_draw_rectangle.hpp"
#include "gfx_draw_bitmap.hpp"
#include "gfx_draw_icon.hpp"
#include "gfx_draw_text.hpp"
#include "gfx_draw_ellipse.hpp"
#include "gfx_draw_arc.hpp"
#include "gfx_draw_rounded_rectangle.hpp"
#include "gfx_draw_filled_rounded_rectangle.hpp"
#include "gfx_draw_polygon.hpp"
#include "gfx_draw_filled_polygon.hpp"
#include "gfx_draw_sprite.hpp"
#include "gfx_draw_image.hpp"
namespace gfx {
struct draw : public helpers::xdraw_point,
public helpers::xdraw_filled_rectangle,
public helpers::xdraw_line,
public helpers::xdraw_rectangle,
public helpers::xdraw_bitmap,
public helpers::xdraw_icon,
public helpers::xdraw_text,
public helpers::xdraw_ellipse,
public helpers::xdraw_arc,
public helpers::xdraw_rounded_rectangle,
public helpers::xdraw_filled_rounded_rectangle,
public helpers::xdraw_polygon,
public helpers::xdraw_filled_polygon,
public helpers::xdraw_sprite,
public helpers::xdraw_image
{};
}
#endif
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
The feeling after you finally got around to clean that dirty room you wanted to for so long (may not apply to everyone). Pure bliss!
|
|
|
|
|
Time for #pragma once
|
|
|
|
|
I don't use pragma once for these files because this way i get breadcrumbs that let me know which files have been included already. I have yet to need that, but I wanted it in case I ended up needing it.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
You have done well HTW
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,164 3/6
🟩🟨⬜🟨🟨
🟩🟨🟩🟨🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,164 4/6*
⬜⬜🟩🟨🟩
🟨⬜🟩⬜🟩
🟩🟩🟩⬜🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,164 3/6*
🟨⬜⬜🟨🟩
🟩⬜🟩⬜🟩
🟩🟩🟩🟩🟩
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
⬜⬜🟩⬜🟩
⬜⬜🟩🟨🟩
🟩⬜🟩🟩🟩
🟩🟩🟩🟩🟩
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,164 4/6
⬜⬜⬜⬜🟨
🟩⬜🟩⬜🟩
🟩🟨🟩🟨🟩
🟩🟩🟩🟩🟩
Within you lies the power for good - Use it!
|
|
|
|
|
Wordle 1,164 X/6*
🟨🟩⬛⬛🟩
🟩🟩🟩⬛🟩
🟩🟩🟩⬛🟩
🟩🟩🟩⬛🟩
🟩🟩🟩⬛🟩
🟩🟩🟩⬛🟩
Too many choices.
|
|
|
|
|
Wordle 1,164 4/6*
🟩🟩🟩⬜🟩
🟩🟩🟩⬜🟩
🟩🟩🟩⬜🟩
🟩🟩🟩🟩🟩
Happiness will never come to those who fail to appreciate what they already have. -Anon
And those who were seen dancing were thought to be insane by those who could not hear the music. -Frederick Nietzsche
|
|
|
|
|
Wordle 1,164 4/6
🟨⬛⬛⬛🟩
🟩⬛🟩⬛🟩
🟩🟩🟩⬛🟩
🟩🟩🟩🟩🟩
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
🟩🟩🟩🟩🟩
🟩🟨🟩🟨🟩
🟩🟩🟩🟩🟩
🟨🟩🟩🟩🟨
🟩🟨🟨🟨🟩
🟩🟩🟩🟩🟩
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
You made a smiley face. Noice.
Jeremy Falcon
|
|
|
|
|
Wordle 1,164 2/6
⬛🟨🟩⬛🟨
🟩🟩🟩🟩🟩
Jeremy Falcon
|
|
|
|
|
I'm simplifying my graphics library.
I'm moving the responsibility for async operations, and other driver related nonsense outside the library.
There are a number of reasons for it, KISS being the overarching philosophy. Previously I had tightly coupled drivers for this library for a bunch of display devices and platforms under Arduino but it's sort of out of scope of just graphics operations themselves.
Now I have a draw on demand library that builds on my graphics library, draws as needed, and renders bitmaps to send to the display. There's very little need for a tightly coupled driver interface anymore.
That means my capabilities queryable parameters get reduced significantly, no more read, async, or suspend. It's not necessary.
But man, removing those breaks everything. I have endless template specializations for the various capabilities, like drawing synchronously vs asynchronously, or drawing on devices where readback isn't available (nixing things like alpha-blending and anti-aliasing). I don't need those anymore, but we're talking hundreds and hundreds of compile errors.
Taking a break in the middle of it is difficult because getting back into it is tough.
Adding features is easy by comparison.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|