class ScreenTextGraphics extends AbstractTextGraphics {
    private final Screen screen;

    /**
     * Creates a new {@code ScreenTextGraphics} targeting the specified screen
     * @param screen Screen we are targeting
     */
    ScreenTextGraphics(Screen screen) {
        super();
        this.screen = screen;
    }

    @Override
    public TextGraphics setCharacter(int columnIndex, int rowIndex, TextCharacter textCharacter) {<FILL_FUNCTION_BODY>}

    @Override
    public TextCharacter getCharacter(int column, int row) {
        return screen.getBackCharacter(column, row);
    }

    @Override
    public TerminalSize getSize() {
        return screen.getTerminalSize();
    }
}

        //Let the screen do culling
        screen.setCharacter(columnIndex, rowIndex, textCharacter);
        return this;
    
<methods>public com.googlecode.lanterna.graphics.TextGraphics clearModifiers() ,public transient com.googlecode.lanterna.graphics.TextGraphics disableModifiers(com.googlecode.lanterna.SGR[]) ,public com.googlecode.lanterna.graphics.TextGraphics drawImage(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.graphics.TextImage) ,public com.googlecode.lanterna.graphics.TextGraphics drawImage(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.graphics.TextImage, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize) ,public com.googlecode.lanterna.graphics.TextGraphics drawLine(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, char) ,public com.googlecode.lanterna.graphics.TextGraphics drawLine(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TextCharacter) ,public com.googlecode.lanterna.graphics.TextGraphics drawLine(int, int, int, int, char) ,public com.googlecode.lanterna.graphics.TextGraphics drawLine(int, int, int, int, com.googlecode.lanterna.TextCharacter) ,public com.googlecode.lanterna.graphics.TextGraphics drawRectangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize, char) ,public com.googlecode.lanterna.graphics.TextGraphics drawRectangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter) ,public com.googlecode.lanterna.graphics.TextGraphics drawTriangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, char) ,public com.googlecode.lanterna.graphics.TextGraphics drawTriangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TextCharacter) ,public transient com.googlecode.lanterna.graphics.TextGraphics enableModifiers(com.googlecode.lanterna.SGR[]) ,public com.googlecode.lanterna.graphics.TextGraphics fill(char) ,public com.googlecode.lanterna.graphics.TextGraphics fillRectangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize, char) ,public com.googlecode.lanterna.graphics.TextGraphics fillRectangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize, com.googlecode.lanterna.TextCharacter) ,public com.googlecode.lanterna.graphics.TextGraphics fillTriangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, char) ,public com.googlecode.lanterna.graphics.TextGraphics fillTriangle(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TextCharacter) ,public EnumSet<com.googlecode.lanterna.SGR> getActiveModifiers() ,public com.googlecode.lanterna.TextColor getBackgroundColor() ,public com.googlecode.lanterna.TextCharacter getCharacter(com.googlecode.lanterna.TerminalPosition) ,public com.googlecode.lanterna.TextColor getForegroundColor() ,public com.googlecode.lanterna.screen.TabBehaviour getTabBehaviour() ,public com.googlecode.lanterna.graphics.TextGraphics newTextGraphics(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TerminalSize) throws java.lang.IllegalArgumentException,public synchronized com.googlecode.lanterna.graphics.TextGraphics putCSIStyledString(int, int, java.lang.String) ,public com.googlecode.lanterna.graphics.TextGraphics putCSIStyledString(com.googlecode.lanterna.TerminalPosition, java.lang.String) ,public com.googlecode.lanterna.graphics.TextGraphics putString(int, int, java.lang.String) ,public com.googlecode.lanterna.graphics.TextGraphics putString(com.googlecode.lanterna.TerminalPosition, java.lang.String) ,public transient com.googlecode.lanterna.graphics.TextGraphics putString(int, int, java.lang.String, com.googlecode.lanterna.SGR, com.googlecode.lanterna.SGR[]) ,public com.googlecode.lanterna.graphics.TextGraphics putString(int, int, java.lang.String, Collection<com.googlecode.lanterna.SGR>) ,public transient com.googlecode.lanterna.graphics.TextGraphics putString(com.googlecode.lanterna.TerminalPosition, java.lang.String, com.googlecode.lanterna.SGR, com.googlecode.lanterna.SGR[]) ,public com.googlecode.lanterna.graphics.TextGraphics setBackgroundColor(com.googlecode.lanterna.TextColor) ,public com.googlecode.lanterna.graphics.TextGraphics setCharacter(int, int, char) ,public com.googlecode.lanterna.graphics.TextGraphics setCharacter(com.googlecode.lanterna.TerminalPosition, com.googlecode.lanterna.TextCharacter) ,public com.googlecode.lanterna.graphics.TextGraphics setCharacter(com.googlecode.lanterna.TerminalPosition, char) ,public com.googlecode.lanterna.graphics.TextGraphics setForegroundColor(com.googlecode.lanterna.TextColor) ,public synchronized com.googlecode.lanterna.graphics.TextGraphics setModifiers(EnumSet<com.googlecode.lanterna.SGR>) ,public com.googlecode.lanterna.graphics.TextGraphics setStyleFrom(StyleSet<?>) ,public com.googlecode.lanterna.graphics.TextGraphics setTabBehaviour(com.googlecode.lanterna.screen.TabBehaviour) <variables>protected final non-sealed EnumSet<com.googlecode.lanterna.SGR> activeModifiers,protected com.googlecode.lanterna.TextColor backgroundColor,protected com.googlecode.lanterna.TextColor foregroundColor,private final non-sealed com.googlecode.lanterna.graphics.ShapeRenderer shapeRenderer,protected com.googlecode.lanterna.screen.TabBehaviour tabBehaviour