Code Monkey home page Code Monkey logo

discordoverlay's Introduction

DiscordOverlay

Overview

DiscordOverlay.Helpers is a proof of concept C# library designed to demonstrate how to use Discord's overlay for drawing custom graphics. It utilizes SkiaSharp for graphics rendering and system-level functions for memory manipulation.

Features

  • Direct Memory Management: Leverages kernel32.dll for memory operations within Discord's process.
  • Graphics Rendering: Utilizes SkiaSharp for high-quality 2D graphics.
  • Overlay Management: Controls the overlay in Discord, with capabilities for various graphical operations.

How It Works

Hooking into Discord

  • The library interacts with Discord's process memory using Memory class methods like OpenFileMapping and MapViewOfFile.
  • These methods access and map Discord's memory, enabling the overlay to be drawn within its graphical interface.

Graphics Rendering with SkiaSharp

  • SkiaSharp is used for drawing graphics onto the overlay.
  • The Drawing class offers methods such as DrawLine, DrawRectangle, DrawString, and DrawCircle.

Managing Graphics Frames and Writing to the Buffer

  • Frame Management: GraphicsPipe manages the connection to Discord, handling the shared memory for frame data.
  • Frame Representation: The Frame class represents each graphics frame, storing dimensions and pixel data.
  • Buffer Writing Process:
    • The graphics drawn using SkiaSharp are rendered onto a frame buffer (Frame.Buffer).
    • This buffer is a byte array representing pixel data for the entire frame.
    • The GraphicsPipe.SendFrame method is used to send this frame to the shared memory.
    • It involves copying the frame buffer to the shared memory location mapped to Discord's process.
    • The header (GraphicsPipe.Header) is updated with the new frame's dimensions and frame count.
    • This process ensures that each new frame is accurately rendered in the overlay.

Images

image

image

discordoverlay's People

Contributors

joakimcarlsson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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.