private void mergeDynProp(Drawable prop, int offsetX, int offsetY) {
        byte[] pixels = ((DataBufferByte) 
                            screen
                            .getRaster()
                            .getDataBuffer())
                            .getData();
        Rectangle r = prop.getBounds();
        byte[] hPixels = prop.getData();
        
        int col = 0;
        int row = 0;
        double mix;
        double mixa;
        int pi;
        for (int i = 0; i < hPixels.length; i += Util.CHANNELS) {
            pi = col + ((r.x - offsetX) << 2) 
                 +  (row * screen.getWidth() << 2)
                 +  ((screen.getHeight() 
                     - (r.y - offsetY + r.height)) 
                     * screen.getWidth() << 2);
            if (pi < 0 || pi > pixels.length) {
                System.out.println("caught a " + pi);
                break;
            }
            if (hPixels[i] == (byte) -1) {
                pixels[pi + Util.B] = hPixels[i + Util.B];
                pixels[pi + Util.G] = hPixels[i + Util.G];
                pixels[pi + Util.R] = hPixels[i + Util.R];
            } else {
                mix = (double) (hPixels[i] & Util.B_MAX) / Util.B_MAX;
                mixa = 1.0 - mix;
                pixels[pi + Util.B] = (byte)
                        ((hPixels[i + Util.B] & Util.B_MAX) * mix 
                       + (pixels[pi + Util.B] & Util.B_MAX) * mixa);
                pixels[pi + Util.G] = (byte)
                        ((hPixels[i + Util.G] & Util.B_MAX) * mix 
                       + (pixels[pi + Util.G] & Util.B_MAX) * mixa);
                pixels[pi + Util.R] = (byte)
                        ((hPixels[i + Util.R] & Util.B_MAX) * mix 
                       + (pixels[pi + Util.R] & Util.B_MAX) * mixa);
            }
            
            col += Util.CHANNELS;
            if (col >= r.width * Util.CHANNELS) {
                col = 0;
                row++;
            }
            
            //System.out.println("Row: " + row + "; Col: " + col);
        }
    }