|
It could be any cat on the planet - alley cats included.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Once upon a time I had built a memory expansion for my computer. An array of 32 of the old 2102 SRAMS plus some addressing and buffering logic on a board behind the computer, attached with a ribbon cable. Guess who quickly decided that this was absolutely the most comfortable place for grooming and sleeping? Hint: It was someone with a soft and electrically charged fur that's perfect for killing RAM chips.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: Hint: It was someone with a soft and electrically charged fur that's perfect for killing RAM chips.
So ... a Tribble then?
"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!
|
|
|
|
|
Nope. It was Toby the Targ[^].
And my Krait Mk II (named El Paso) has returned to the dock after a little shootout with bandits. Just made it there before emergency life support failed, but over a million bounty for the killed bandits is more than enough for the repairs. The Klingons would sing songs about this. Now back to work,
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: The Klingons would sing songs about this
No, they'd all be far too drunk on Blood Wine and hunting down the Tribbles as mortal enemies of the Klingon Empire.
"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!
|
|
|
|
|
Does a hard of hearing dog go to the vet to get tutored?
"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!
|
|
|
|
|
Only if it's in grades K-9;
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
There was a Far Side cartoon with one dog bragging to another that he was going to the vet to get tutored.
EDIT: Found a link[^] to it.
|
|
|
|
|
1985? That's pre internet!
"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!
|
|
|
|
|
All the classic stuff is pre-internet!
Larson did another on the same theme, which was published in The Prehistory of the Far Side but never submitted to newspapers. For obvious reasons. One dog is explaining a jar on the mantel to another, saying, "The vet let me keep them. They're my testicles."
|
|
|
|
|
From where do you fetch this thoughts? Heel go where he nose there's a meal waiting - bitch brings up other possibilities as well.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Yes. It learns that cars are bad for its health.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
hard of hearing = deaf
Dog = canis familiaris
Vet = clue to vet each part of the clue
tutored = education
Vet hard of hearing = def
Vet Dog = fam
Vet tutored = ation
Defamation.
"Rock journalism is people who can't write interviewing people who can't talk for people who can't read." Frank Zappa 1980
|
|
|
|
|
You have to give ToTD tomorrow.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
haha
A perfect response Daniel.
"Rock journalism is people who can't write interviewing people who can't talk for people who can't read." Frank Zappa 1980
|
|
|
|
|
Update: WHO'S A SUPERSTAR? I FIXED IT. I needed a pair of parentheses.
I spent weeks - weeks! working on a device independent pixel in C++
I finally built it, and it seems to work, but they're tricky because they store the pixel in the form of its final memory representation in a frame buffer, so if you defined a pixel as 24-bit color, there's a new pixel every 3 bytes, and if you defined a pixel as 18-bit color (6 bits each for R, G, and B - shockingly common) then there's a new pixel every 2.25 bytes!
So it gets ... tricky. There's bit shifting, masking and whatnot.
I'm not testing on an actual display device yet, so i have code that converts small bitmaps to monochrome and then renders them as "acii art"
My blting works, my filling works, and my clearing works, when the pixels are either byte-aligned (like 24 bit pixels) or 1 bit (monochrome), but the 18-bit one is weird, and clearing isn't working.
I think it's with my bit setting code, i thought, but also no, because it's clearing in the wrong place?
Each pixel is #, or black is just empty space. I have a hatch pattern i bltted and them i'm clearing a box inside of it. The clearing is what is failing.
Basically, this is what i get when it works:
# # # # # # # #
# # # # # # #
# # # # # # # #
# #
# # # #
# #
# # # #
# #
# # # #
# #
# # # #
# #
# # # # # # # #
# # # # # # #
# # # # # # # #
This works for rgb888 (24-bit), mono1 (1-bit) and rgb565 (16-bit). rgb666 (18-bit) however, is being truly evil:
# # #
# # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
# # # # # # #
# # # # # # # #
What gets me is the bits that it *is* clearing. Look at the empty run above. How the elephant did it get that? It's not even starting in the right place.
So now I know where a spare day of my life is going.
Never make rgb666 pixels. They are truly satan's children.
Real programmers use butterflies
modified 12-Apr-21 10:09am.
|
|
|
|
|
The PDP-10 had 36-bit words.
|
|
|
|
|
That would actually make things easier in this one case. But because pixel definitions are completely arbitrary in terms of the channels they have and the bit depth of each, the total bit depth of the pixel can be anything more than 0 or less than 65, so it would only help in that one case.
It's just weird that it works with everything else but catastrophically fails on "satan's pixel"
Real programmers use butterflies
|
|
|
|
|
Example code? Does there really exist graphics hardware that has a pixel every 2,25 bytes in its framebuffer?
|
|
|
|
|
Wikipedia seem to think so. Mostly used in less expensive LCDs, which seems likely to be the displays attached to the types of devices the OP seems to have been targeting recently.
Keep Calm and Carry On
|
|
|
|
|
Yes indeed. In fact, as I recall the ILI9341 display adapter supports 18-bit color.
The place I had seen it before on the PC was the old VGA 320x200x8bpp mode where the 8 bit pixel was an indexed color into a palette. The palette colors were 18 bit.
Real programmers use butterflies
modified 12-Apr-21 11:01am.
|
|
|
|
|
Hi,I know 18bpp is used, I use it myself. The question was: Is there any hardware around that stores this information in a framebuffer every 2,25 bytes? I do not think so.
So I am not quite sure, what the use of this higly flexible pixel is. I can see a use for transforming of images. But the framebuffers I know are byte based and for performace reasons, aligned to byte, word or dword boundaries.
So when you do drawing, you can use an array (virtual area) of your pixels but I fear the performace would lack.
In a framebuffer, you normally have lots of pixels and it comes to processor cycles when you do drawing, copying, moving etc.. and want to get a useful frame rate So it is always nice if you can work with the register size of the CPU.
It sounds for me, that you plan to draw on a virtual area of pixels which are finally converted to the hardware equivalence in the framebuffer.
But maybe I did understand your problem wrong, that's why I asked for a code example.
|
|
|
|
|
I don't have the driver code built yet. I'm building the graphics end of it right now.
At any rate, supporting 18-bpp wasn't even my initial goal.
It's just that you can do this:
using bgr888 = pixel<
channel_traits<channel_name::B,8>,
channel_traits<channel_name::G,8>,
channel_traits<channel_name::R,8>
>;
using rgb565 = pixel<
channel_traits< channel_name::R,5>,
channel_traits<channel_name::G,6>,
channel_traits<channel_name::B,5>
>;
using gsc8 = pixel<
channel_traits<channel_name::L,8>
>;
using mono1 = pixel<
channel_traits<channel_name::L,1>
>;
using rgb888 = pixel<
channel_traits<channel_name::R,8>,
channel_traits<channel_name::G,8>,
channel_traits<channel_name::B,8>
>;
using rgb666 = pixel<
channel_traits<channel_name::R,6>,
channel_traits<channel_name::G,6>,
channel_traits<channel_name::B,6>
>;
using pixel_type = rgb666;
using bmp_type = bitmap<pixel_type>;
pixel_type p = color<pixel_type>::light_green;
uint8_t buf[bmp_type::sizeof_buffer(16,16)];
bmp_type bmp(16,16,buf);
bmp[point16(7,7)]=p;
p = bmp[point16(7,7)];
No matter how I declare a pixel, it has to work. The channel bit depths and even the number of channels and their types are arbitrary. The only thing above that even requires an RGB color model is the source colors like light_green above and they are convertible to the destination format in cases of black&white vs RGB
I think the ILI9341 doesn't align it's frame buffer in 18-bit mode, but I could be wrong.
Either way, it doesn't matter, since the above has to work.
(It's possible to add a NOP channel to a pixel, so I can pad out an 18-bit pixel to 24 bits)
Real programmers use butterflies
|
|
|
|
|
ok
|
|
|
|
|
The Univac 1100 series did, and 6 characters to a word.
|
|
|
|
|