Thread with 11 posts
jump to expanded postyou know, itβs a shame that C is designed by ISO/IEC JTC1/SC22/WG14 and not the OpenGL Architecture Review Board. iβm sure weβd all rather write:
glDisable(GL_MASKING);
glEnableClientState(GL_SOURCE_DATA_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glSourceDataPointer(1, gl::UNSIGNED_BYTE, 1, dst_ptr);
glEnableClientState(GL_DESTINATION_DATA_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glDestinationDataPointer(1, gl::UNSIGNED_BYTE, 1, src_ptr);
glCopyBytes(0, num_bytes);
if (glGetError() != 0) {
// fuck
}
rather than
memcpy(dst_ptr, src_ptr, size);
βclient state? in 2023?β i hear you cry. ok ok. surely what we want to do then is
glDisable(GL_MASKING);
glEnableSourceDataArray();
glBindBuffer(GL_ARRAY_BUFFER, src_buf);
glSourceDataPointer(1, gl::UNSIGNED_BYTE, 1, (const GLvoid*)(uintptr_t)src_offset);
glEnableDestinationDataArray();
glBindBuffer(GL_ARRAY_BUFFER, dst_buf);
glDestinationDataPointer(1, gl::UNSIGNED_BYTE, 1, (const GLvoid*)(uintptr_t)dst_offset);
glCopyBytes(0, num_bytes);
if (glGetError() != 0) {
// fuck
}
i should really not find more ways to procrastinate from writing very tedious real opengl code, but⦠i am extremely tempted to write a strings library for c that uses the same api conventions as opengl, as a joke
ah oops, s/gl::/GL_/, Iβve been writing too much Rust
@hikari
int strings[2];
strCreate(2, & strings);
strBindString(STR_DEST_STRING, string1);
strStringImage1D("hello, ");
strBindString(STR_DEST_STRING, string2);
strStringImage1D("world!");
strBindString (STR_DEST_STRING, string1);
strBindString(STR_SRC_STRING, string2);
strStrCat();
strBindString (STR_SRC_STRING, string1);
strBindFileDescriptor(STR_OUTPUT, 1);
strPutStrLn();
strFlush();
@0x2ba22e11 StringImage1D π
@0x2ba22e11 legacy compatibility profile where you can do
strBegin();
strChar('h');
strChar('e');
strChar('l');
strChar('l');
strChar('o');
strEnd();
@hikari π
@hikari I was really hoping you'd find that name funny βΊοΈ
@0x2ba22e11 needs more format arguments though. gl::UNICODE, gl::UTF8 etc,
@hikari and if you try to just memcpy something into a buffer you find out the hard way that it's actually in the terminal's RAM as extended EBCDIC characters with the rows and columns of the terminal laid out along a Hilbert curve
Plus several extra buffers for "bright", "color" and "blinking" attributes.