Subversion Repositories Kolibri OS

Rev

Rev 8407 | Rev 8789 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8407 Rev 8780
Line 98... Line 98...
98
    dword delay;    // used iff Image.IsAnimated is set in Flags
98
    dword delay;    // used iff Image.IsAnimated is set in Flags
99
    dword image;
99
    dword image;
100
    void load();
100
    void load();
101
    void convert_into();
101
    void convert_into();
102
    void replace_color();
102
    void replace_color();
-
 
103
    void replace_2colors();
103
    void set_vars();
104
    void set_vars();
104
    void draw();
105
    void draw();
105
};
106
};
Line 106... Line 107...
106
 
107
 
Line 134... Line 135...
134
}
135
}
Line 135... Line 136...
135
 
136
 
136
:void libimg_image::replace_color(dword old_color, new_color)
137
:void libimg_image::replace_color(dword old_color, new_color)
137
{
138
{
-
 
139
    EDX =  w * h * 4 + imgsrc;
-
 
140
    ESI = old_color;
138
    EDX =  w * h * 4 + imgsrc;
141
    ECX = new_color;
-
 
142
    FOR (EDI = imgsrc; EDI < EDX; EDI += 4) IF (DSDWORD[EDI]==ESI) DSDWORD[EDI] = ECX;
-
 
143
}
-
 
144
 
-
 
145
:void libimg_image::replace_2colors(dword old_color1, new_color1, old_color2, new_color2)
-
 
146
{
-
 
147
    EDX =  w * h * 4 + imgsrc;
-
 
148
    ESI = old_color1;
-
 
149
    ECX = new_color1;
-
 
150
    EBX = old_color2;
-
 
151
    EAX = new_color2;
-
 
152
    FOR (EDI = imgsrc; EDI < EDX; EDI += 4) {
-
 
153
        IF (DSDWORD[EDI]==ESI) DSDWORD[EDI] = ECX;
-
 
154
        ELSE IF (DSDWORD[EDI]==EBX) DSDWORD[EDI] = EAX;
139
    for (ESI = imgsrc; ESI < EDX; ESI += 4) if (DSDWORD[ESI]==old_color) DSDWORD[ESI] = new_color;
155
    }
Line 140... Line 156...
140
}
156
}
141
 
157
 
142
:void libimg_image::draw(dword _x, _y, _w, _h, _xoff, _yoff)
158
:void libimg_image::draw(dword _x, _y, _w, _h, _xoff, _yoff)