Пример #1
0
    virtual bool HandleInputEvent(const pp::InputEvent &event) {
        if (event.GetType() == PP_INPUTEVENT_TYPE_MOUSEMOVE) {
            pp::MouseInputEvent ev(event);
            Point p = ev.GetPosition();
            for (int dy = -4; dy <= 4; dy++) {
                int y = p.y() + dy;
                if (y < MARGIN) y = MARGIN;
                if (y > HEIGHT - MARGIN - 1) y = HEIGHT - MARGIN - 1;
                for (int dx = -4; dx <= 4; dx++) {
                    int x = p.x() + dx;
                    if (x < MARGIN) x = MARGIN;
                    if (x > WIDTH - MARGIN - 1) x = WIDTH - MARGIN - 1;
                    if (dx*dx + dy*dy < 4*4) {                        
                        uint32_t col;
                        switch (rand() & 3) {
                        case 0:
                            col = 0x000000ff;
                            break;
                        case 1:
                            col = 0x0000ffff;
                            break;
                        case 2:
                            col = 0x00ff00ff;
                            break;
                        case 3:
                            col = 0xff0000ff;
                        }
                        Point q(x, y);
                        *(im1.GetAddr32(q)) = col;
                        *(im2.GetAddr32(q)) = col;
                    }
                }
            }

            return true;
        }
        return false;
    }