Giter Club home page Giter Club logo

drm's Introduction

drm

This is a basic window manager for Linux

The window manager is based on Linux's DRM (on which most of the modern Window Managers are built).

The repository mainly is structured into 2 components :

Window server -

Which the client applications will connect to and send request to. This is responsible for handling the main buffer coordination between multiple applications and sending the composited framebuffer to the GPU. It allocates a unique buffer to each application and the buffer is itself shared through shared memory mapped IPC. It also ports the keyboard and mice events to the application under context (the currently selected one). It supports moving the windows around the screen.

Client side -

The clients are the applications which connect to the window manager. Relavant API exists for each Window Manager for the clients to send requests and commands to the window manager. A similar API exists in the client_lib.c, and all the client applications that have been built in this repository use this as a base.

There are 4 applications built that use this Window Manager:

1) Font Making App - client_font.c

2) Raytracing App (Which makes a sphere and does some basic Phong Shading) - client_render.c

3) Terminal Emulator (A GUI app which executes a shell (ex - /bin/bash) for an interactive session) - term_pty.c

4) Text Writing App - client.c

The font used by the text writing app was made by client_font.c and all the printable ASCII characters reside in font.h (8 * 8 = 64 binary values)

To build the server

Run

make server

You can run

 make terminal
 make render 

 for building the client library, and the applications

### OR simply run 
 make all 
to build everything

drm's People

Contributors

keshav0306 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.