Several things. You describe symptoms that can only be honestly assessed by your doctor in his or her office. Only after a thorough evauation will he/she be able to come up with what's wrong and what to do to get you better.
Many causes. An ophthalmologist can help you with this.