Add console subsystem dummy
Add dummy files for the console subsystem. This subsystem will be used to draw a console to a framebuffer. It uses pango and cairo for text-rendering and will provide all required modification functions that the terminal emulation will require. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
parent
259fcfa12d
commit
f85eb100f9
67
src/console.c
Normal file
67
src/console.c
Normal file
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* kmscon - Console Management
|
||||
* Written 2011 by David Herrmann <dh.herrmann@googlemail.com>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Console Management
|
||||
* This provides the console drawing and manipulation functions. It does not
|
||||
* provide the terminal emulation. It is just an abstraction layer to draw text
|
||||
* to a framebuffer as used by terminals and consoles.
|
||||
*/
|
||||
|
||||
/*
|
||||
* TODO: Avoid using this hack and instead retrieve GL extension
|
||||
* pointers dynamically on initialization.
|
||||
*/
|
||||
#define GL_GLEXT_PROTOTYPES
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glext.h>
|
||||
|
||||
#include "console.h"
|
||||
|
||||
struct kmscon_console {
|
||||
size_t ref;
|
||||
};
|
||||
|
||||
int kmscon_console_new(struct kmscon_console **out)
|
||||
{
|
||||
struct kmscon_console *con;
|
||||
|
||||
if (!out)
|
||||
return -EINVAL;
|
||||
|
||||
con = malloc(sizeof(*con));
|
||||
if (!con)
|
||||
return -ENOMEM;
|
||||
|
||||
memset(con, 0, sizeof(*con));
|
||||
con->ref = 1;
|
||||
|
||||
*out = con;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void kmscon_console_ref(struct kmscon_console *con)
|
||||
{
|
||||
if (!con)
|
||||
return;
|
||||
|
||||
++con->ref;
|
||||
}
|
||||
|
||||
void kmscon_con_unref(struct kmscon_console *con)
|
||||
{
|
||||
if (!con || !con->ref)
|
||||
return;
|
||||
|
||||
if (--con->ref)
|
||||
return;
|
||||
|
||||
free(con);
|
||||
}
|
25
src/console.h
Normal file
25
src/console.h
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* kmscon - Console Management
|
||||
* Written 2011 by David Herrmann <dh.herrmann@googlemail.com>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Console Management
|
||||
* The console management uses OpenGL, cairo and pango to draw a console to a
|
||||
* framebuffer. It is independent of the other subsystems and can also be used
|
||||
* in other applications.
|
||||
*
|
||||
* This console does not emulate any terminal at all. This subsystem just
|
||||
* provides functions to draw a console to a framebuffer and modifying the state
|
||||
* of it.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
struct kmscon_console;
|
||||
|
||||
/* console objects */
|
||||
|
||||
int kmscon_console_new(struct kmscon_console **out);
|
||||
void kmscon_console_ref(struct kmscon_console *con);
|
||||
void kmscon_console_unref(struct kmscon_console *con);
|
Loading…
x
Reference in New Issue
Block a user