/** * Marlin 3D Printer Firmware * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ /******************************************************************************** * @file lcd/e3v2/creality/dwin_lcd.cpp * @author LEO / Creality3D * @date 2019/07/18 * @version 2.0.1 * @brief DWIN screen control functions ********************************************************************************/ #include "../../../inc/MarlinConfigPre.h" #if ENABLED(DWIN_CREALITY_LCD) #include "../../../inc/MarlinConfig.h" #include "dwin_lcd.h" //#define DEBUG_OUT 1 #include "../../../core/debug_out.h" /*-------------------------------------- System variable function --------------------------------------*/ void DWIN_Startup() { DEBUG_ECHOPGM("\r\nDWIN handshake "); delay(750); // Delay here or init later in the boot process if (DWIN_Handshake()) DEBUG_ECHOLNPGM("ok."); else DEBUG_ECHOLNPGM("error."); DWIN_Frame_SetDir(1); #if DISABLED(SHOW_BOOTSCREEN) DWIN_Frame_Clear(Color_Bg_Black); // MarlinUI handles the bootscreen so just clear here #endif DWIN_JPG_ShowAndCache(3); DWIN_UpdateLCD(); } /*---------------------------------------- Picture related functions ----------------------------------------*/ // Draw an Icon // libID: Icon library ID // picID: Icon ID // x/y: Upper-left point void DWIN_ICON_Show(uint8_t libID, uint8_t picID, uint16_t x, uint16_t y) { DWIN_ICON_Show(true, false, false, libID, picID, x, y); } // Copy area from virtual display area to current screen // cacheID: virtual area number // xStart/yStart: Upper-left of virtual area // xEnd/yEnd: Lower-right of virtual area // x/y: Screen paste point void DWIN_Frame_AreaCopy(uint8_t cacheID, uint16_t xStart, uint16_t yStart, uint16_t xEnd, uint16_t yEnd, uint16_t x, uint16_t y) { size_t i = 0; DWIN_Byte(i, 0x27); DWIN_Byte(i, 0x80 | cacheID); DWIN_Word(i, xStart); DWIN_Word(i, yStart); DWIN_Word(i, xEnd); DWIN_Word(i, yEnd); DWIN_Word(i, x); DWIN_Word(i, y); DWIN_Send(i); } #endif // DWIN_CREALITY_LCD