Click here to Skip to main content
15,890,512 members
Home / Discussions / Algorithms
   

Algorithms

 
GeneralRe: How is BitBlt implemented [modified] Pin
Force Code15-Nov-07 13:19
Force Code15-Nov-07 13:19 
GeneralRe: How is BitBlt implemented Pin
Luc Pattyn15-Nov-07 14:01
sitebuilderLuc Pattyn15-Nov-07 14:01 
GeneralI Completely agree with DQNOK Pin
CPallini16-Nov-07 4:25
mveCPallini16-Nov-07 4:25 
GeneralRe: I Completely agree with DQNOK Pin
Luc Pattyn16-Nov-07 6:08
sitebuilderLuc Pattyn16-Nov-07 6:08 
GeneralRe: How is BitBlt implemented Pin
Dan Neely15-Nov-07 10:48
Dan Neely15-Nov-07 10:48 
GeneralRe: How is BitBlt implemented Pin
DQNOK16-Nov-07 3:46
professionalDQNOK16-Nov-07 3:46 
GeneralRe: How is BitBlt implemented Pin
Luc Pattyn16-Nov-07 3:55
sitebuilderLuc Pattyn16-Nov-07 3:55 
GeneralRe: How is BitBlt implemented Pin
Force Code16-Nov-07 7:49
Force Code16-Nov-07 7:49 
Luc Pattyn wrote:
So what I am saying is this: on modern CPUs (Pentium class, RISC, and many others)
u= x&y | x^z | !y&z would be faster than u=ROP[x][y][z]
without any doubt, (say by a factor of 1.33 to 2)


#include < iostream >
#include < windows.h >

using namespace std;

BYTE ROP[256][256][256];

int main(int argc, char *argv[])
{
  DWORD time = GetCurrentTime();
  for (int x=0; x<256; x++)
    for (int y=0; y<256; y++)
      for (int z=0; z<256; z++)
        ROP[x][y][z] = (x&y) | (x^z) | (!y&z);
  cout << "test 1: " << GetCurrentTime()-time << endl;
        
  BYTE n;
  time = GetCurrentTime();
  for (int x=0; x<256; x++)
    for (int y=0; y<256; y++)
      for (int z=0; z<256; z++)  
        n = ROP[x][y][z];      
  cout << "test 2: " << GetCurrentTime()-time << endl;
}

And the results:

C:\dev-cpp\examples\test>test
test 1: 240
test 2: 60
GeneralRe: How is BitBlt implemented Pin
Luc Pattyn16-Nov-07 8:27
sitebuilderLuc Pattyn16-Nov-07 8:27 
GeneralRe: How is BitBlt implemented Pin
Skippums16-Nov-07 9:02
Skippums16-Nov-07 9:02 
GeneralRe: How is BitBlt implemented Pin
Force Code16-Nov-07 9:59
Force Code16-Nov-07 9:59 
GeneralRe: How is BitBlt implemented Pin
Jheriko++17-Nov-07 17:18
Jheriko++17-Nov-07 17:18 
GeneralRe: How is BitBlt implemented Pin
Alan Balkany29-Nov-07 4:46
Alan Balkany29-Nov-07 4:46 
GeneralRe: How is BitBlt implemented Pin
Mark Churchill19-Nov-07 14:58
Mark Churchill19-Nov-07 14:58 
GeneralRe: How is BitBlt implemented Pin
Force Code19-Nov-07 20:24
Force Code19-Nov-07 20:24 
AnswerRe: How is BitBlt implemented Pin
Chris Losinger19-Nov-07 4:36
professionalChris Losinger19-Nov-07 4:36 
AnswerRe: How is BitBlt implemented Pin
El Corazon20-Nov-07 5:04
El Corazon20-Nov-07 5:04 
GeneralRe: How is BitBlt implemented Pin
Force Code20-Nov-07 6:14
Force Code20-Nov-07 6:14 
GeneralRe: How is BitBlt implemented Pin
El Corazon20-Nov-07 6:30
El Corazon20-Nov-07 6:30 
GeneralRe: How is BitBlt implemented Pin
Force Code20-Nov-07 7:05
Force Code20-Nov-07 7:05 
GeneralRe: How is BitBlt implemented Pin
El Corazon20-Nov-07 7:12
El Corazon20-Nov-07 7:12 
GeneralRe: How is BitBlt implemented Pin
Force Code20-Nov-07 7:35
Force Code20-Nov-07 7:35 
GeneralRe: How is BitBlt implemented Pin
El Corazon20-Nov-07 7:50
El Corazon20-Nov-07 7:50 
GeneralRe: How is BitBlt implemented Pin
Force Code20-Nov-07 8:07
Force Code20-Nov-07 8:07 
GeneralRe: How is BitBlt implemented Pin
Dexterus29-Nov-07 4:18
Dexterus29-Nov-07 4:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.