void VideoPainter::paint() const { if(SDL_mutexP(this->mut) == -1) { printStatusMessage("Could not lock texture mutex", this->msgpainter); return; } if(this->videotex) { glBindTexture(GL_TEXTURE_2D, this->videotex); // update texture glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, this->framewidth, this->frameheight, GL_RGBA, GL_UNSIGNED_BYTE, this->texdata); glBindTexture(GL_TEXTURE_2D, 0); } else { //fprintf(stderr, "Video texture was not created. Not painting it.\n"); return; } if(SDL_mutexV(this->mut) == -1) printStatusMessage("Could not unlock texture mutex", this->msgpainter); }
void VideoPainter::receiveBuffer(unsigned char *data, size_t size) { if(SDL_mutexP(this->mut) == -1) { printStatusMessage("Could not lock texture mutex", this->msgpainter); return; } if(this->videotex) { // Make a copy of the frame if(size != this->framewidth * this->frameheight * 4) fprintf(stderr, "strange buffer size received from gst\n"); if(this->processImageBuffer(data, size)) { // Trigger repaint SDL_Event event; event.type = SDL_USEREVENT; event.user.code = 0; event.user.data1 = 0; event.user.data2 = 0; SDL_PushEvent(&event); } } if(SDL_mutexV(this->mut) == -1) printStatusMessage("Could not unlock texture mutex", this->msgpainter); }
rhkbool multiboot_setup(uint32_t magic,multiboot_info_t *mbt) { if(magic != MULTIBOOT_BOOTLOADER_MAGIC) { printStatusMessage("Detecting Multiboot Compliant...",STATUS_FAILED); printf("Error:Invalid magic number: 0x%x\n",magic); return FALSE; } gMbt = mbt; printStatusMessage("Detecting Multiboot Compliant...",STATUS_DONE); return TRUE; }
void idt_init() { ip.limit = sizeof(idt_entry_t) * 256 - 1; ip.base = (uint32_t)&ient; memset(&ient, 0, sizeof(idt_entry_t) * 256); isr_init(); irq_init(); idt_flush((uint32_t)&ip); printStatusMessage("Loading IDTs...",STATUS_DONE); }
void vid_init() { rhkbool color = detectColorSupport(); if(color) { g_pVidTextMem = VID_COLOR_MEM; //Our video text memory adress } else { g_pVidTextMem = VID_MONO_MEM; //Our video text memory adress } g_Xmax = 80; g_Ymax = 25; setTextColor(BLACK, WHITE); clearScr(); printf("RhKernel v%i.%i.%i (C) Sefer \"Rhoin\" Ergun",RHK_MAJOR_VER, RHK_MINOR_VER, RHK_REVISION_VER); printStatusMessage("Detecting video card color support...",color == TRUE ? STATUS_DONE : STATUS_FAILED); if(color) { //printf("Your video card supports color!",NULL); } printStatusMessage("Video is setting up...", STATUS_DONE); }