Starting on screen impl
This commit is contained in:
		
							
								
								
									
										16
									
								
								libs/core/dal.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								libs/core/dal.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -344,6 +344,22 @@ declare const enum DAL {
 | 
			
		||||
    DISPLAY_ERASE_LINE = 0x05,
 | 
			
		||||
    DISPLAY_FILL_REGION = 0x06,
 | 
			
		||||
    DISPLAY_FRAME = 0x07,
 | 
			
		||||
    DRAW_OPT_NORMAL = (0x0000),
 | 
			
		||||
    DRAW_OPT_CLEAR_WHOLE_SCREEN = (0x0001),
 | 
			
		||||
    DRAW_OPT_CLEAR_EXCEPT_STATUS_SCREEN = (0x0002),
 | 
			
		||||
    DRAW_OPT_CLEAR_PIXELS = (0x0004),
 | 
			
		||||
    DRAW_OPT_CLEAR = (0x0004),
 | 
			
		||||
    DRAW_OPT_INVERT = (0x0004),
 | 
			
		||||
    DRAW_OPT_LOGICAL_COPY = (0x0000),
 | 
			
		||||
    DRAW_OPT_LOGICAL_AND = (0x0008),
 | 
			
		||||
    DRAW_OPT_LOGICAL_OR = (0x0010),
 | 
			
		||||
    DRAW_OPT_LOGICAL_XOR = (0x0018),
 | 
			
		||||
    DRAW_OPT_FILL_SHAPE = (0x0020),
 | 
			
		||||
    DRAW_OPT_CLEAR_SCREEN_MODES = (0x0003),
 | 
			
		||||
    DRAW_OPT_LOGICAL_OPERATIONS = (0x0018),
 | 
			
		||||
    DRAW_OPT_POLYGON_POLYLINE = (0x0400),
 | 
			
		||||
    DRAW_OPT_CLEAR_LINE = (0x0800),
 | 
			
		||||
    DRAW_OPT_CLEAR_EOL = (0x1000),
 | 
			
		||||
    CS_TIMER_1 = 0,
 | 
			
		||||
    CS_TIMER_2 = 1,
 | 
			
		||||
    CS_TIMER_3 = 2,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								libs/core/enums.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								libs/core/enums.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -34,4 +34,16 @@
 | 
			
		||||
    OrangePulse = 9,  // LED_ORANGE_PULSE
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Drawing modes
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    declare enum Draw {
 | 
			
		||||
    Normal = (0x0000),  // DRAW_OPT_NORMAL
 | 
			
		||||
    Clear = (0x0004),  // DRAW_OPT_CLEAR_PIXELS
 | 
			
		||||
    Xor = (0x0018),  // DRAW_OPT_LOGICAL_XOR
 | 
			
		||||
    Fill = (0x0020),  // DRAW_OPT_FILL_SHAPE
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
// Auto-generated. Do not edit. Really.
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,8 @@
 | 
			
		||||
        "pxtcore.h",
 | 
			
		||||
        "linux.cpp",
 | 
			
		||||
        "buttons.cpp",
 | 
			
		||||
        "screen.cpp",
 | 
			
		||||
        "screen.ts",
 | 
			
		||||
        "shims.d.ts",
 | 
			
		||||
        "enums.d.ts",
 | 
			
		||||
        "dal.d.ts",
 | 
			
		||||
@@ -17,10 +19,10 @@
 | 
			
		||||
        "test.ts"
 | 
			
		||||
    ],
 | 
			
		||||
    "npmDependencies": {
 | 
			
		||||
      "ev3api-bin": "1.0.0"
 | 
			
		||||
        "ev3api-bin": "1.0.0"
 | 
			
		||||
    },
 | 
			
		||||
    "public": true,
 | 
			
		||||
    "dependencies": {
 | 
			
		||||
        "base": "file:../base"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								libs/core/screen.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								libs/core/screen.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
#include "pxt.h"
 | 
			
		||||
#include "ev3.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
* Drawing modes
 | 
			
		||||
*/
 | 
			
		||||
enum class Draw {
 | 
			
		||||
    Normal = DRAW_OPT_NORMAL, // set pixels to black, no fill
 | 
			
		||||
    Clear = DRAW_OPT_CLEAR_PIXELS,
 | 
			
		||||
    Xor = DRAW_OPT_LOGICAL_XOR,
 | 
			
		||||
    Fill = DRAW_OPT_FILL_SHAPE,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#define XX(v) ((uint32_t)(v)&0xffff)
 | 
			
		||||
#define YY(v) ((uint32_t)(v) >> 16)
 | 
			
		||||
 | 
			
		||||
// We only support up to 4 arguments for C++ functions - need to pack them on the TS side
 | 
			
		||||
namespace screen {
 | 
			
		||||
//%
 | 
			
		||||
void _drawLine(uint32_t p0, uint32_t p1, Draw mode) {
 | 
			
		||||
    LineOutEx(XX(p0), YY(p0), XX(p1), YY(p1), (uint32_t)mode);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//%
 | 
			
		||||
void _drawRect(uint32_t p0, uint32_t p1, Draw mode) {
 | 
			
		||||
    RectOutEx(XX(p0), YY(p0), XX(p1), YY(p1), (uint32_t)mode);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//%
 | 
			
		||||
void _drawEllipse(uint32_t p0, uint32_t p1, Draw mode) {
 | 
			
		||||
    EllipseOutEx(XX(p0), YY(p0), XX(p1), YY(p1), (uint32_t)mode);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Draw text. */
 | 
			
		||||
//%
 | 
			
		||||
void drawText(int x, int y, String text, Draw mode) {
 | 
			
		||||
    LcdText((int)mode & (int)Draw::Clear ? 0 : 1, x, y, text->data);
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								libs/core/screen.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								libs/core/screen.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
namespace screen {
 | 
			
		||||
    //% shim=screen::_drawLine
 | 
			
		||||
    function _drawLine(p0: uint32, p1: uint32, mode: Draw): void {}
 | 
			
		||||
 | 
			
		||||
    //% shim=screen::_drawRect
 | 
			
		||||
    function _drawRect(p0: uint32, p1: uint32, mode: Draw): void {}
 | 
			
		||||
 | 
			
		||||
    //% shim=screen::_drawEllipse
 | 
			
		||||
    function _drawEllipse(p0: uint32, p1: uint32, mode: Draw): void {}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								libs/core/shims.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								libs/core/shims.d.ts
									
									
									
									
										vendored
									
									
								
							@@ -38,6 +38,14 @@ declare namespace input {
 | 
			
		||||
    //% block="button exit" weight=95 fixedInstance shim=pxt::getButton(5)
 | 
			
		||||
    const buttonExit: Button;
 | 
			
		||||
}
 | 
			
		||||
declare namespace control {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Determine the version of system software currently running.
 | 
			
		||||
     */
 | 
			
		||||
    //% shim=control::deviceFirmwareVersion
 | 
			
		||||
    function deviceFirmwareVersion(): string;
 | 
			
		||||
}
 | 
			
		||||
declare namespace output {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -95,5 +103,11 @@ declare interface Button {
 | 
			
		||||
    //% button.fieldOptions.columns=3 shim=ButtonMethods::wasPressed
 | 
			
		||||
    wasPressed(): boolean;
 | 
			
		||||
}
 | 
			
		||||
declare namespace screen {
 | 
			
		||||
 | 
			
		||||
    /** Draw text. */
 | 
			
		||||
    //% shim=screen::drawText
 | 
			
		||||
    function drawText(x: int32, y: int32, text: string, mode: Draw): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Auto-generated. Do not edit. Really.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								libs/core/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								libs/core/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
    "compilerOptions": {
 | 
			
		||||
        "target": "es5",
 | 
			
		||||
        "noImplicitAny": true,
 | 
			
		||||
        "outDir": "built",
 | 
			
		||||
        "rootDir": "."
 | 
			
		||||
    },
 | 
			
		||||
    "exclude": ["pxt_modules/**/*test.ts"]
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user