Example #1
0
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);
}
Example #2
0
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);
}
Example #3
0
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;
}
Example #4
0
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);
}
Example #5
0
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);
}