def render(self, surface, viewPortRect ):
        for eachEntity in self.gameEntities.values():
            if eachEntity.activeDirectionIndex != -1:
                
                currentMode = eachEntity.currentMode 
                max = self.myImgMngr.getMaxAnimationScenes( eachEntity.name, currentMode )
                
                if int(max) > 0:
                    rotationMode = int( eachEntity.activeDirectionIndex ) % int( max )
                else:
                    rotationMode = int( eachEntity.activeDirectionIndex )
                    
                someStr = str( rotationMode )
                #rotationMode   = eachEntity.getRotationModeAsString()
                strAnimationMode = eachEntity.getAnimationModeAsString()
                
                # Which mode?
                if len( someStr ) == 1:
                    someStr = "000" + someStr
                else:
                    someStr = "00"  + someStr 

                activeImage = self.myImgMngr.getImage( eachEntity.name, currentMode,  someStr, strAnimationMode )
                
                if activeImage is not None:
                    # Set activeImage to entity 
                    eachEntity.setImage( activeImage )  
                
            renderRect = Utils.transformRectPosition( eachEntity.rect, viewPortRect )
            
            # Visibility test to avoid unnescary rendering
            if eachEntity.checkVisibility is True:
                entityRect = eachEntity.rect
                if viewPortRect.collidepoint( entityRect.topleft ) or viewPortRect.collidepoint( entityRect.bottomright ):
                   eachEntity.render( surface, renderRect )                 
            else:
                eachEntity.render( surface, renderRect )