@ AWSOMEDEVSIGNER.
Below is the code I am running.
BTW: I found 1 error in your for loop.
@ Architect.
Not sure why the tool you suggested creates a reverse cursor.
using System;
using Microsoft.SPOT;
using GHI.Glide;
using GHI.Glide.Display;
using GHI.Glide.UI;
using GHI.Glide.Geom;
using System.Threading;
using Microsoft.SPOT.Touch;
using GHI.Processor;
using System.IO;
using GHI.Pins;
using Microsoft.SPOT.Presentation.Media; //Colors
using System.Collections;
using Microsoft.SPOT.Presentation;
using Microsoft.SPOT.Hardware;
namespace MouseCur
{
public class Cursor
{
//const uint LCD_BASE_ADDR = 0xFFE10000; //LPC24xx
const uint LCD_BASE_ADDR = 0x20088000; //LPC178x : G120
static uint CRSR_CTRL = (LCD_BASE_ADDR + 0xC00);
uint CRSR_CFG = (LCD_BASE_ADDR + 0xC04);
uint CRSR_PAL0 = (LCD_BASE_ADDR + 0xC08);
uint CRSR_PAL1 = (LCD_BASE_ADDR + 0xC0C);
static uint CRSR_XY = (LCD_BASE_ADDR + 0xC10);
uint CRSR_IMGBASE0 = (LCD_BASE_ADDR + 0x800);
uint[] uicursor = new uint[] {
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xa9aaaaaa,
0xaaaaaaaa,0xa5aaaaaa,
0xaaaaaaaa,0x95aaaaaa,
0xaaaaaaaa,0x55aaaaaa,
0xaaaaaaaa,0x55a9aaaa,
0xaaaaaaaa,0x55a5aaaa,
0xaaaaaaaa,0x5595aaaa,
0xaaaaaaaa,0x55a9aaaa,
0xaaaaaaaa,0x55a9aaaa,
0xaaaaaaaa,0x69a5aaaa,
0xaaaaaaaa,0xaaa5aaaa,
0xaaaaaaaa,0xaa95aaaa,
0xaaaaaaaa,0xaa96aaaa,
0xaaaaaaaa,0xaa56aaaa,
0xaaaaaaaa,0xaa9aaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa,
0xaaaaaaaa,0xaaaaaaaa
};
static Int32 X = 0;
static Int32 Y = 0;
public void Init()
{
Register cursor0Reg = new Register(CRSR_IMGBASE0);
SetPosition(0, 0);
Register crsControl = new Register(CRSR_CTRL, 0x00); //enable the cursor's display
for (Int32 i = 0; i < uicursor.Length; i++)
{
cursor0Reg.Value = uicursor[i];
cursor0Reg.Address += 4;
}
Register crsCfg = new Register(CRSR_CFG, 0x02); //synchronized to frame synchronization
Register pal1Reg = new Register(CRSR_PAL0, 0x0000FF00);
Register pal2Reg = new Register(CRSR_PAL1, 0x00FF00FF);
}
public static void SetPosition(Int32 iX, Int32 iY)
{
X += iX;
Y += iY;
if (X < 0) X = 0;
if (Y < 0) Y = 0;
if (X > SystemMetrics.ScreenWidth) X = SystemMetrics.ScreenWidth;
if (Y > SystemMetrics.ScreenHeight) Y = SystemMetrics.ScreenHeight;
Register crsXYRegister = new Register(CRSR_XY, (Y << 16) | (X << 0));
}
public static void ClickPosition(Int32 Button, Boolean Click)
{
Point touch = new Point(0, 0);
touch.X = X;
touch.Y = Y;
Program.DB_Print("*******Point X:" + X + " Y:" + Y);
if (Click)
{
GlideTouch.RaiseTouchDownEvent(null, new TouchEventArgs(touch));
}
else
{
GlideTouch.RaiseTouchUpEvent(null, new TouchEventArgs(touch));
}
}
public static void cursor_On()
{
Register crsControl = new Register(CRSR_CTRL, 0x01); //enable the cursor's display
}
}
}